From 2d8d2fcf01494173c2133c527d1c45d5110c82a7 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 28 Aug 2023 12:16:00 +0200 Subject: [PATCH] feat: MIN constant as a source option (#3639) * feature request #1635 - added MIN (-MAX -> -1024) as source * fix rebase * fix rebase * change to use language strings for MIN/MAX instead of instance updated CN and TX language file for MIN use -RESX for MIN instead of magi number code cleanup * updated test sources * updated JP language * JP language: changed translation text * updated HE language translations --- .../src/datamodels/compounditemmodels.cpp | 1 + .../src/firmwares/edgetx/yaml_rawsource.cpp | 8 + companion/src/firmwares/rawsource.cpp | 3 + companion/src/firmwares/rawsource.h | 1 + companion/src/translations/companion_cs.ts | 5 + companion/src/translations/companion_da.ts | 8 +- companion/src/translations/companion_de.ts | 7 +- companion/src/translations/companion_en.ts | 5 + companion/src/translations/companion_es.ts | 7 +- companion/src/translations/companion_fi.ts | 7 +- companion/src/translations/companion_fr.ts | 7 +- companion/src/translations/companion_he.ts | 5 + companion/src/translations/companion_it.ts | 5 + companion/src/translations/companion_ja.ts | 5 + companion/src/translations/companion_nl.ts | 5 + companion/src/translations/companion_pl.ts | 5 + companion/src/translations/companion_pt.ts | 5 + companion/src/translations/companion_ru.ts | 5 + companion/src/translations/companion_sv.ts | 5 + companion/src/translations/companion_zh_CN.ts | 5 + companion/src/translations/companion_zh_TW.ts | 5 + radio/src/dataconstants.h | 1 + radio/src/gui/colorlcd/sourcechoice.cpp | 2 +- radio/src/gui/gui_common.cpp | 3 +- radio/src/gui/navigation/common.cpp | 2 + radio/src/gui/navigation/navigation_x7.cpp | 3 +- radio/src/gui/navigation/navigation_x9d.cpp | 3 +- radio/src/gui/navigation/navigation_xlite.cpp | 3 +- radio/src/lua/api_general.cpp | 4 +- radio/src/mixer.cpp | 3 + .../storage/yaml/yaml_datastructs_128x64.cpp | 1 + .../storage/yaml/yaml_datastructs_nv14.cpp | 2 + .../src/storage/yaml/yaml_datastructs_t20.cpp | 1 + .../storage/yaml/yaml_datastructs_tpro.cpp | 1 + .../src/storage/yaml/yaml_datastructs_x10.cpp | 1 + .../storage/yaml/yaml_datastructs_x12s.cpp | 1 + .../src/storage/yaml/yaml_datastructs_x9d.cpp | 1 + .../src/storage/yaml/yaml_datastructs_x9e.cpp | 1 + .../storage/yaml/yaml_datastructs_x9lite.cpp | 1 + .../storage/yaml/yaml_datastructs_xlites.cpp | 1 + radio/src/strhelpers.cpp | 5 +- radio/src/tests/sources.cpp | 3 +- radio/src/translations.cpp | 1 + radio/src/translations.h | 1 + radio/src/translations/cn.h | 1 + radio/src/translations/cz.h | 1 + radio/src/translations/da.h | 1 + radio/src/translations/de.h | 1 + radio/src/translations/en.h | 1 + radio/src/translations/es.h | 1 + radio/src/translations/fi.h | 1 + radio/src/translations/fr.h | 1 + radio/src/translations/he.h | 158 ++++++++---------- radio/src/translations/it.h | 1 + radio/src/translations/jp.h | 1 + radio/src/translations/nl.h | 1 + radio/src/translations/pl.h | 1 + radio/src/translations/pt.h | 1 + radio/src/translations/se.h | 1 + radio/src/translations/tw.h | 1 + 60 files changed, 223 insertions(+), 104 deletions(-) diff --git a/companion/src/datamodels/compounditemmodels.cpp b/companion/src/datamodels/compounditemmodels.cpp index 2c3edbf02..84405d957 100644 --- a/companion/src/datamodels/compounditemmodels.cpp +++ b/companion/src/datamodels/compounditemmodels.cpp @@ -111,6 +111,7 @@ RawSourceItemModel::RawSourceItemModel(const GeneralSettings * const generalSett addItems(SOURCE_TYPE_STICK, RawSource::SourcesGroup, board->getCapability(Board::MaxAnalogs)); addItems(SOURCE_TYPE_TRIM, RawSource::TrimsGroup, board->getCapability(Board::NumTrims)); addItems(SOURCE_TYPE_SPACEMOUSE, RawSource::SourcesGroup, CPN_MAX_SPACEMOUSE); + addItems(SOURCE_TYPE_MIN, RawSource::SourcesGroup, 1); addItems(SOURCE_TYPE_MAX, RawSource::SourcesGroup, 1); addItems(SOURCE_TYPE_SWITCH, RawSource::SwitchesGroup, board->getCapability(Board::Switches)); addItems(SOURCE_TYPE_FUNCTIONSWITCH, RawSource::SwitchesGroup, board->getCapability(Board::FunctionSwitches)); diff --git a/companion/src/firmwares/edgetx/yaml_rawsource.cpp b/companion/src/firmwares/edgetx/yaml_rawsource.cpp index 2ac287dac..d61ffc4bf 100644 --- a/companion/src/firmwares/edgetx/yaml_rawsource.cpp +++ b/companion/src/firmwares/edgetx/yaml_rawsource.cpp @@ -52,6 +52,9 @@ std::string YamlRawSourceEncode(const RawSource& rhs) case SOURCE_TYPE_TRIM: src_str = getCurrentFirmware()->getTrimSourcesTag(rhs.index); break; + case SOURCE_TYPE_MIN: + src_str += "MIN"; + break; case SOURCE_TYPE_MAX: src_str += "MAX"; break; @@ -309,6 +312,11 @@ RawSource YamlRawSourceDecode(const std::string& src_str) } } + if (node.IsScalar() && node.as() == "MIN") { + rhs.type = SOURCE_TYPE_MIN; + rhs.index = 0; + } + if (node.IsScalar() && node.as() == "MAX") { rhs.type = SOURCE_TYPE_MAX; rhs.index = 0; diff --git a/companion/src/firmwares/rawsource.cpp b/companion/src/firmwares/rawsource.cpp index 10d18ba98..d9729b15d 100644 --- a/companion/src/firmwares/rawsource.cpp +++ b/companion/src/firmwares/rawsource.cpp @@ -186,6 +186,9 @@ QString RawSource::toString(const ModelData * model, const GeneralSettings * con case SOURCE_TYPE_ROTARY_ENCODER: return CHECK_IN_ARRAY(rotary, index); + case SOURCE_TYPE_MIN: + return tr("MIN"); + case SOURCE_TYPE_MAX: return tr("MAX"); diff --git a/companion/src/firmwares/rawsource.h b/companion/src/firmwares/rawsource.h index c77e3a71a..7e3876491 100644 --- a/companion/src/firmwares/rawsource.h +++ b/companion/src/firmwares/rawsource.h @@ -167,6 +167,7 @@ enum RawSourceType { SOURCE_TYPE_STICK, // and POTS SOURCE_TYPE_ROTARY_ENCODER, SOURCE_TYPE_TRIM, + SOURCE_TYPE_MIN, SOURCE_TYPE_MAX, SOURCE_TYPE_SWITCH, SOURCE_TYPE_FUNCTIONSWITCH, diff --git a/companion/src/translations/companion_cs.ts b/companion/src/translations/companion_cs.ts index e67c871b8..98ef6a8b1 100644 --- a/companion/src/translations/companion_cs.ts +++ b/companion/src/translations/companion_cs.ts @@ -11285,6 +11285,11 @@ s + MIN + + + + MAX diff --git a/companion/src/translations/companion_da.ts b/companion/src/translations/companion_da.ts index d126034b8..f20bad0f7 100644 --- a/companion/src/translations/companion_da.ts +++ b/companion/src/translations/companion_da.ts @@ -9022,8 +9022,14 @@ x + + MIN + + + + MAX - + CYC%1 diff --git a/companion/src/translations/companion_de.ts b/companion/src/translations/companion_de.ts index 1ade811ca..40dd05e00 100644 --- a/companion/src/translations/companion_de.ts +++ b/companion/src/translations/companion_de.ts @@ -11284,8 +11284,13 @@ r + MIN + + + + MAX - MAX + diff --git a/companion/src/translations/companion_en.ts b/companion/src/translations/companion_en.ts index f69624c82..97923578e 100644 --- a/companion/src/translations/companion_en.ts +++ b/companion/src/translations/companion_en.ts @@ -11158,6 +11158,11 @@ s + MIN + + + + MAX diff --git a/companion/src/translations/companion_es.ts b/companion/src/translations/companion_es.ts index 73958dde1..a7282c79e 100644 --- a/companion/src/translations/companion_es.ts +++ b/companion/src/translations/companion_es.ts @@ -11336,8 +11336,13 @@ s + MIN + + + + MAX - + diff --git a/companion/src/translations/companion_fi.ts b/companion/src/translations/companion_fi.ts index 010edc2e6..a7e9edf25 100644 --- a/companion/src/translations/companion_fi.ts +++ b/companion/src/translations/companion_fi.ts @@ -11305,8 +11305,13 @@ s + MIN + + + + MAX - MAX + diff --git a/companion/src/translations/companion_fr.ts b/companion/src/translations/companion_fr.ts index dfb2d4006..8c8b7bf01 100644 --- a/companion/src/translations/companion_fr.ts +++ b/companion/src/translations/companion_fr.ts @@ -11342,8 +11342,13 @@ E + MIN + + + + MAX - + diff --git a/companion/src/translations/companion_he.ts b/companion/src/translations/companion_he.ts index db5808bf3..75e1f3346 100644 --- a/companion/src/translations/companion_he.ts +++ b/companion/src/translations/companion_he.ts @@ -11160,6 +11160,11 @@ s + MIN + + + + MAX diff --git a/companion/src/translations/companion_it.ts b/companion/src/translations/companion_it.ts index de8589486..a86a155bd 100644 --- a/companion/src/translations/companion_it.ts +++ b/companion/src/translations/companion_it.ts @@ -11310,6 +11310,11 @@ s + MIN + + + + MAX diff --git a/companion/src/translations/companion_ja.ts b/companion/src/translations/companion_ja.ts index 45903a896..6f128f2bd 100644 --- a/companion/src/translations/companion_ja.ts +++ b/companion/src/translations/companion_ja.ts @@ -11327,6 +11327,11 @@ X + MIN + + + + MAX 最大 diff --git a/companion/src/translations/companion_nl.ts b/companion/src/translations/companion_nl.ts index 01429e0fa..43bcc05e7 100644 --- a/companion/src/translations/companion_nl.ts +++ b/companion/src/translations/companion_nl.ts @@ -11158,6 +11158,11 @@ s + MIN + + + + MAX diff --git a/companion/src/translations/companion_pl.ts b/companion/src/translations/companion_pl.ts index a03647d93..f0f2b9583 100644 --- a/companion/src/translations/companion_pl.ts +++ b/companion/src/translations/companion_pl.ts @@ -11318,6 +11318,11 @@ s + MIN + + + + MAX diff --git a/companion/src/translations/companion_pt.ts b/companion/src/translations/companion_pt.ts index 3b33fe6a2..a32619941 100644 --- a/companion/src/translations/companion_pt.ts +++ b/companion/src/translations/companion_pt.ts @@ -11160,6 +11160,11 @@ s + MIN + + + + MAX diff --git a/companion/src/translations/companion_ru.ts b/companion/src/translations/companion_ru.ts index 579eb0921..f1fdae507 100644 --- a/companion/src/translations/companion_ru.ts +++ b/companion/src/translations/companion_ru.ts @@ -11252,6 +11252,11 @@ s + MIN + + + + MAX diff --git a/companion/src/translations/companion_sv.ts b/companion/src/translations/companion_sv.ts index a1abbcfea..8e8c9a620 100644 --- a/companion/src/translations/companion_sv.ts +++ b/companion/src/translations/companion_sv.ts @@ -11525,6 +11525,11 @@ r + MIN + + + + MAX diff --git a/companion/src/translations/companion_zh_CN.ts b/companion/src/translations/companion_zh_CN.ts index 7c1f51f8c..f7ca8e5fa 100644 --- a/companion/src/translations/companion_zh_CN.ts +++ b/companion/src/translations/companion_zh_CN.ts @@ -11403,6 +11403,11 @@ s + MIN + + + + MAX MAX 最大 diff --git a/companion/src/translations/companion_zh_TW.ts b/companion/src/translations/companion_zh_TW.ts index 31516bb8d..e03316b5f 100644 --- a/companion/src/translations/companion_zh_TW.ts +++ b/companion/src/translations/companion_zh_TW.ts @@ -11403,6 +11403,11 @@ s + MIN + + + + MAX MAX 最大 diff --git a/radio/src/dataconstants.h b/radio/src/dataconstants.h index 08ea06e26..9dadcc0f6 100644 --- a/radio/src/dataconstants.h +++ b/radio/src/dataconstants.h @@ -501,6 +501,7 @@ enum MixSources { MIXSRC_LAST_SPACEMOUSE SKIP = MIXSRC_SPACEMOUSE_F, #endif + MIXSRC_MIN, MIXSRC_MAX, MIXSRC_FIRST_HELI SKIP, diff --git a/radio/src/gui/colorlcd/sourcechoice.cpp b/radio/src/gui/colorlcd/sourcechoice.cpp index c884206ac..7c4884b42 100644 --- a/radio/src/gui/colorlcd/sourcechoice.cpp +++ b/radio/src/gui/colorlcd/sourcechoice.cpp @@ -42,7 +42,7 @@ class SourceChoiceMenuToolbar : public MenuToolbar #endif addButton(STR_CHAR_STICK, MIXSRC_FIRST_STICK, MIXSRC_LAST_STICK); addButton(STR_CHAR_POT, MIXSRC_FIRST_POT, MIXSRC_LAST_POT); - addButton(STR_CHAR_FUNCTION, MIXSRC_MAX, MIXSRC_MAX); + addButton(STR_CHAR_FUNCTION, MIXSRC_MIN, MIXSRC_MAX); #if defined(HELI) if (modelHeliEnabled()) addButton(STR_CHAR_CYC, MIXSRC_FIRST_HELI, MIXSRC_LAST_HELI); diff --git a/radio/src/gui/gui_common.cpp b/radio/src/gui/gui_common.cpp index cccf88c5f..7069efc00 100644 --- a/radio/src/gui/gui_common.cpp +++ b/radio/src/gui/gui_common.cpp @@ -313,8 +313,7 @@ bool isSourceAvailableInInputs(int source) if (source >= MIXSRC_FIRST_SPACEMOUSE && source <= MIXSRC_LAST_SPACEMOUSE) return true; #endif - - if (source == MIXSRC_MAX) + if (source == MIXSRC_MIN || source == MIXSRC_MAX) return true; if (source >= MIXSRC_FIRST_TRIM && source <= MIXSRC_LAST_TRIM) { diff --git a/radio/src/gui/navigation/common.cpp b/radio/src/gui/navigation/common.cpp index e4feec27d..64436d6ad 100644 --- a/radio/src/gui/navigation/common.cpp +++ b/radio/src/gui/navigation/common.cpp @@ -91,6 +91,8 @@ void onSourceLongEnterPress(const char * result) checkIncDecSelection = MIXSRC_FIRST_STICK; else if (result == STR_MENU_POTS) checkIncDecSelection = MIXSRC_FIRST_POT; + else if (result == STR_MENU_MIN) + checkIncDecSelection = MIXSRC_MIN; else if (result == STR_MENU_MAX) checkIncDecSelection = MIXSRC_MAX; else if (result == STR_MENU_HELI) diff --git a/radio/src/gui/navigation/navigation_x7.cpp b/radio/src/gui/navigation/navigation_x7.cpp index 72bc5b42c..6e2018810 100644 --- a/radio/src/gui/navigation/navigation_x7.cpp +++ b/radio/src/gui/navigation/navigation_x7.cpp @@ -146,6 +146,7 @@ int checkIncDec(event_t event, int val, int i_min, int i_max, #endif if (i_min <= MIXSRC_FIRST_STICK && i_max >= MIXSRC_FIRST_STICK) POPUP_MENU_ADD_ITEM(STR_MENU_STICKS); if (i_min <= MIXSRC_FIRST_POT && i_max >= MIXSRC_FIRST_POT) POPUP_MENU_ADD_ITEM(STR_MENU_POTS); + if (i_min <= MIXSRC_MIN && i_max >= MIXSRC_MIN) POPUP_MENU_ADD_ITEM(STR_MENU_MIN); if (i_min <= MIXSRC_MAX && i_max >= MIXSRC_MAX) POPUP_MENU_ADD_ITEM(STR_MENU_MAX); #if defined(HELI) if (modelHeliEnabled()) @@ -173,7 +174,7 @@ int checkIncDec(event_t event, int val, int i_min, int i_max, } if (checkIncDecSelection != 0) { newval = checkIncDecSelection; - if (checkIncDecSelection != MIXSRC_MAX) + if (checkIncDecSelection != MIXSRC_MIN && checkIncDecSelection != MIXSRC_MAX) s_editMode = EDIT_MODIFY_FIELD; checkIncDecSelection = 0; } diff --git a/radio/src/gui/navigation/navigation_x9d.cpp b/radio/src/gui/navigation/navigation_x9d.cpp index 343b9126f..ba1315853 100644 --- a/radio/src/gui/navigation/navigation_x9d.cpp +++ b/radio/src/gui/navigation/navigation_x9d.cpp @@ -159,6 +159,7 @@ int checkIncDec(event_t event, int val, int i_min, int i_max, #endif if (i_min <= MIXSRC_FIRST_STICK && i_max >= MIXSRC_FIRST_STICK) POPUP_MENU_ADD_ITEM(STR_MENU_STICKS); if (i_min <= MIXSRC_FIRST_POT && i_max >= MIXSRC_FIRST_POT) POPUP_MENU_ADD_ITEM(STR_MENU_POTS); + if (i_min <= MIXSRC_MIN && i_max >= MIXSRC_MIN) POPUP_MENU_ADD_ITEM(STR_MENU_MIN); if (i_min <= MIXSRC_MAX && i_max >= MIXSRC_MAX) POPUP_MENU_ADD_ITEM(STR_MENU_MAX); #if defined(HELI) if (modelHeliEnabled()) @@ -186,7 +187,7 @@ int checkIncDec(event_t event, int val, int i_min, int i_max, } if (checkIncDecSelection != 0) { newval = checkIncDecSelection; - if (checkIncDecSelection != MIXSRC_MAX) + if (checkIncDecSelection != MIXSRC_MIN && checkIncDecSelection != MIXSRC_MAX) s_editMode = EDIT_MODIFY_FIELD; checkIncDecSelection = 0; } diff --git a/radio/src/gui/navigation/navigation_xlite.cpp b/radio/src/gui/navigation/navigation_xlite.cpp index cf801b814..029cab28b 100644 --- a/radio/src/gui/navigation/navigation_xlite.cpp +++ b/radio/src/gui/navigation/navigation_xlite.cpp @@ -155,6 +155,7 @@ int checkIncDec(event_t event, int val, int i_min, int i_max, #endif if (i_min <= MIXSRC_FIRST_STICK && i_max >= MIXSRC_FIRST_STICK) POPUP_MENU_ADD_ITEM(STR_MENU_STICKS); if (i_min <= MIXSRC_FIRST_POT && i_max >= MIXSRC_FIRST_POT) POPUP_MENU_ADD_ITEM(STR_MENU_POTS); + if (i_min <= MIXSRC_MIN && i_max >= MIXSRC_MIN) POPUP_MENU_ADD_ITEM(STR_MENU_MIN); if (i_min <= MIXSRC_MAX && i_max >= MIXSRC_MAX) POPUP_MENU_ADD_ITEM(STR_MENU_MAX); #if defined(HELI) if (modelHeliEnabled()) @@ -182,7 +183,7 @@ int checkIncDec(event_t event, int val, int i_min, int i_max, } if (checkIncDecSelection != 0) { newval = checkIncDecSelection; - if (checkIncDecSelection != MIXSRC_MAX) + if (checkIncDecSelection != MIXSRC_MIN && checkIncDecSelection != MIXSRC_MAX) s_editMode = EDIT_MODIFY_FIELD; checkIncDecSelection = 0; } diff --git a/radio/src/lua/api_general.cpp b/radio/src/lua/api_general.cpp index e5c714489..427486ad6 100644 --- a/radio/src/lua/api_general.cpp +++ b/radio/src/lua/api_general.cpp @@ -382,7 +382,8 @@ const LuaSingleField luaSingleFields[] = { {MIXSRC_SPACEMOUSE_E, "sme", "SpaceMouse E"}, {MIXSRC_SPACEMOUSE_F, "smf", "SpaceMouse F"}, #endif - + + {MIXSRC_MAX, "min", "MIN"}, {MIXSRC_MAX, "max", "MAX"}, {MIXSRC_TrimRud, "trim-rud", "Rudder trim"}, @@ -2893,6 +2894,7 @@ LROT_BEGIN(etxcst, NULL, 0) LROT_NUMENTRY( VALUE, INPUT_TYPE_VALUE ) LROT_NUMENTRY( SOURCE, INPUT_TYPE_SOURCE ) LROT_NUMENTRY( REPLACE, MLTPX_REPL ) + LROT_NUMENTRY( MIXSRC_MIN, MIXSRC_MIN ) LROT_NUMENTRY( MIXSRC_MAX, MIXSRC_MAX ) LROT_NUMENTRY( MIXSRC_FIRST_INPUT, MIXSRC_FIRST_INPUT ) #include "lua_mixsrc.inc" diff --git a/radio/src/mixer.cpp b/radio/src/mixer.cpp index 03fbc83bd..92743f466 100644 --- a/radio/src/mixer.cpp +++ b/radio/src/mixer.cpp @@ -361,6 +361,9 @@ getvalue_t getValue(mixsrc_t i, bool* valid) } #endif + else if (i == MIXSRC_MIN) { + return -RESX; + } else if (i == MIXSRC_MAX) { return RESX; } diff --git a/radio/src/storage/yaml/yaml_datastructs_128x64.cpp b/radio/src/storage/yaml/yaml_datastructs_128x64.cpp index cd48c94e6..542fb6cf4 100644 --- a/radio/src/storage/yaml/yaml_datastructs_128x64.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_128x64.cpp @@ -100,6 +100,7 @@ const struct YamlIdStr enum_MixerMultiplex[] = { }; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, + { MIXSRC_MIN, "MIN" }, { MIXSRC_MAX, "MAX" }, { MIXSRC_TrimRud, "TrimRud" }, { MIXSRC_TrimEle, "TrimEle" }, diff --git a/radio/src/storage/yaml/yaml_datastructs_nv14.cpp b/radio/src/storage/yaml/yaml_datastructs_nv14.cpp index 2417bfe15..eb871e456 100644 --- a/radio/src/storage/yaml/yaml_datastructs_nv14.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_nv14.cpp @@ -111,6 +111,8 @@ const struct YamlIdStr enum_MixerMultiplex[] = { }; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, + + { MIXSRC_MIN, "MIN" }, { MIXSRC_MAX, "MAX" }, { MIXSRC_TrimRud, "TrimRud" }, { MIXSRC_TrimEle, "TrimEle" }, diff --git a/radio/src/storage/yaml/yaml_datastructs_t20.cpp b/radio/src/storage/yaml/yaml_datastructs_t20.cpp index 3cb3d7571..a3df17a2d 100644 --- a/radio/src/storage/yaml/yaml_datastructs_t20.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_t20.cpp @@ -100,6 +100,7 @@ const struct YamlIdStr enum_MixerMultiplex[] = { }; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, + { MIXSRC_MIN, "MIN" }, { MIXSRC_MAX, "MAX" }, { MIXSRC_TrimRud, "TrimRud" }, { MIXSRC_TrimEle, "TrimEle" }, diff --git a/radio/src/storage/yaml/yaml_datastructs_tpro.cpp b/radio/src/storage/yaml/yaml_datastructs_tpro.cpp index 18458320d..63a5e0fc7 100644 --- a/radio/src/storage/yaml/yaml_datastructs_tpro.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_tpro.cpp @@ -100,6 +100,7 @@ const struct YamlIdStr enum_MixerMultiplex[] = { }; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, + { MIXSRC_MIN, "MIN" }, { MIXSRC_MAX, "MAX" }, { MIXSRC_TrimRud, "TrimRud" }, { MIXSRC_TrimEle, "TrimEle" }, diff --git a/radio/src/storage/yaml/yaml_datastructs_x10.cpp b/radio/src/storage/yaml/yaml_datastructs_x10.cpp index 54ba13f5f..605a4b0ca 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x10.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x10.cpp @@ -119,6 +119,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_SPACEMOUSE_D, "SPACEMOUSE_D" }, { MIXSRC_SPACEMOUSE_E, "SPACEMOUSE_E" }, { MIXSRC_SPACEMOUSE_F, "SPACEMOUSE_F" }, + { MIXSRC_MIN, "MIN" }, { MIXSRC_MAX, "MAX" }, { MIXSRC_TrimRud, "TrimRud" }, { MIXSRC_TrimEle, "TrimEle" }, diff --git a/radio/src/storage/yaml/yaml_datastructs_x12s.cpp b/radio/src/storage/yaml/yaml_datastructs_x12s.cpp index 54ba13f5f..605a4b0ca 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x12s.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x12s.cpp @@ -119,6 +119,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_SPACEMOUSE_D, "SPACEMOUSE_D" }, { MIXSRC_SPACEMOUSE_E, "SPACEMOUSE_E" }, { MIXSRC_SPACEMOUSE_F, "SPACEMOUSE_F" }, + { MIXSRC_MIN, "MIN" }, { MIXSRC_MAX, "MAX" }, { MIXSRC_TrimRud, "TrimRud" }, { MIXSRC_TrimEle, "TrimEle" }, diff --git a/radio/src/storage/yaml/yaml_datastructs_x9d.cpp b/radio/src/storage/yaml/yaml_datastructs_x9d.cpp index d06903e3a..bdf972d3e 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9d.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9d.cpp @@ -100,6 +100,7 @@ const struct YamlIdStr enum_MixerMultiplex[] = { }; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, + { MIXSRC_MIN, "MIN" }, { MIXSRC_MAX, "MAX" }, { MIXSRC_TrimRud, "TrimRud" }, { MIXSRC_TrimEle, "TrimEle" }, diff --git a/radio/src/storage/yaml/yaml_datastructs_x9e.cpp b/radio/src/storage/yaml/yaml_datastructs_x9e.cpp index 86e2aeef5..f6bd5ab17 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9e.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9e.cpp @@ -100,6 +100,7 @@ const struct YamlIdStr enum_MixerMultiplex[] = { }; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, + { MIXSRC_MIN, "MIN" }, { MIXSRC_MAX, "MAX" }, { MIXSRC_TrimRud, "TrimRud" }, { MIXSRC_TrimEle, "TrimEle" }, diff --git a/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp b/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp index a3a4dd488..23fc7284d 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp @@ -100,6 +100,7 @@ const struct YamlIdStr enum_MixerMultiplex[] = { }; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, + { MIXSRC_MIN, "MIN" }, { MIXSRC_MAX, "MAX" }, { MIXSRC_TrimRud, "TrimRud" }, { MIXSRC_TrimEle, "TrimEle" }, diff --git a/radio/src/storage/yaml/yaml_datastructs_xlites.cpp b/radio/src/storage/yaml/yaml_datastructs_xlites.cpp index a27f02d07..cbbccfb41 100644 --- a/radio/src/storage/yaml/yaml_datastructs_xlites.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_xlites.cpp @@ -102,6 +102,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, { MIXSRC_TILT_X, "TILT_X" }, { MIXSRC_TILT_Y, "TILT_Y" }, + { MIXSRC_MIN, "MIN" }, { MIXSRC_MAX, "MAX" }, { MIXSRC_TrimRud, "TrimRud" }, { MIXSRC_TrimEle, "TrimEle" }, diff --git a/radio/src/strhelpers.cpp b/radio/src/strhelpers.cpp index 0f648cc9d..c521e4b32 100644 --- a/radio/src/strhelpers.cpp +++ b/radio/src/strhelpers.cpp @@ -699,8 +699,11 @@ char *getSourceString(char (&dest)[L], mixsrc_t idx) getStringAtIndex(dest, STR_SM_VSRCRAW, idx); } #endif + else if (idx == MIXSRC_MIN) { + strncpy(dest, STR_MENU_MIN, dest_len - 1); + } else if (idx == MIXSRC_MAX) { - copyToTerminated(dest, "MAX"); + strncpy(dest, STR_MENU_MAX, dest_len - 1); } else if (idx <= MIXSRC_LAST_HELI) { idx -= MIXSRC_FIRST_HELI; getStringAtIndex(dest, STR_CYC_VSRCRAW, idx); diff --git a/radio/src/tests/sources.cpp b/radio/src/tests/sources.cpp index 6a655bb58..077ec2928 100644 --- a/radio/src/tests/sources.cpp +++ b/radio/src/tests/sources.cpp @@ -99,7 +99,8 @@ TEST(Sources, getSourceString) EXPECT_STREQ(getSourceString(MIXSRC_SPACEMOUSE_F), "smF"); #endif - EXPECT_STREQ(getSourceString(MIXSRC_MAX), "MAX"); + EXPECT_STREQ(getSourceString(MIXSRC_MIN), STR_MENU_MIN); + EXPECT_STREQ(getSourceString(MIXSRC_MAX), STR_MENU_MAX); #if defined(HELI) EXPECT_STREQ(getSourceString(MIXSRC_FIRST_HELI), "CYC1"); diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index d9ce70ba9..a5ddaf282 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -715,6 +715,7 @@ const char STR_MENU_INPUTS[] = TR_MENU_INPUTS; const char STR_MENU_LUA[] = TR_MENU_LUA; const char STR_MENU_STICKS[] = TR_MENU_STICKS; const char STR_MENU_POTS[] = TR_MENU_POTS; +const char STR_MENU_MIN[] = TR_MENU_MIN; const char STR_MENU_MAX[] = TR_MENU_MAX; const char STR_MENU_HELI[] = TR_MENU_HELI; const char STR_MENU_TRIMS[] = TR_MENU_TRIMS; diff --git a/radio/src/translations.h b/radio/src/translations.h index 5d7c0daa0..50ff082c2 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -1110,6 +1110,7 @@ extern const char STR_MENU_INPUTS[]; extern const char STR_MENU_LUA[]; extern const char STR_MENU_STICKS[]; extern const char STR_MENU_POTS[]; +extern const char STR_MENU_MIN[]; extern const char STR_MENU_MAX[]; extern const char STR_MENU_HELI[]; extern const char STR_MENU_TRIMS[]; diff --git a/radio/src/translations/cn.h b/radio/src/translations/cn.h index 74eca2d69..2fdd7dfac 100644 --- a/radio/src/translations/cn.h +++ b/radio/src/translations/cn.h @@ -1092,6 +1092,7 @@ #define TR_MENU_LUA STR_CHAR_LUA "LUA脚本" #define TR_MENU_STICKS STR_CHAR_STICK "摇杆" #define TR_MENU_POTS STR_CHAR_POT "旋钮" +#define TR_MENU_MIN STR_CHAR_FUNCTION "固定值MIN" #define TR_MENU_MAX STR_CHAR_FUNCTION "固定值MAX" #define TR_MENU_HELI STR_CHAR_CYC "斜盘混控CYC" #define TR_MENU_TRIMS STR_CHAR_TRIM "微调" diff --git a/radio/src/translations/cz.h b/radio/src/translations/cz.h index bd593437f..443dc118b 100644 --- a/radio/src/translations/cz.h +++ b/radio/src/translations/cz.h @@ -1108,6 +1108,7 @@ #define TR_MENU_LUA STR_CHAR_LUA "Lua skripty" #define TR_MENU_STICKS STR_CHAR_STICK "Páky" #define TR_MENU_POTS STR_CHAR_POT "Potenciometry" +#define TR_MENU_MIN STR_CHAR_FUNCTION "MIN" #define TR_MENU_MAX STR_CHAR_FUNCTION "MAX" #define TR_MENU_HELI STR_CHAR_CYC "Cyklika" #define TR_MENU_TRIMS STR_CHAR_TRIM "Trimy" diff --git a/radio/src/translations/da.h b/radio/src/translations/da.h index 1826e5c39..7994a0797 100644 --- a/radio/src/translations/da.h +++ b/radio/src/translations/da.h @@ -1108,6 +1108,7 @@ #define TR_MENU_LUA STR_CHAR_LUA "Lua script" #define TR_MENU_STICKS STR_CHAR_STICK "Pinde" #define TR_MENU_POTS STR_CHAR_POT "Drejekontakt" +#define TR_MENU_MIN STR_CHAR_FUNCTION "MIN" #define TR_MENU_MAX STR_CHAR_FUNCTION "MAX" #define TR_MENU_HELI STR_CHAR_CYC "Cyklisk" #define TR_MENU_TRIMS STR_CHAR_TRIM "Trim" diff --git a/radio/src/translations/de.h b/radio/src/translations/de.h index 894c50cf5..20529a50f 100644 --- a/radio/src/translations/de.h +++ b/radio/src/translations/de.h @@ -1098,6 +1098,7 @@ #define TR_MENU_LUA STR_CHAR_LUA "Lua Skripte" #define TR_MENU_STICKS STR_CHAR_STICK "Knüppel" #define TR_MENU_POTS STR_CHAR_POT "Potis" +#define TR_MENU_MIN STR_CHAR_FUNCTION "MIN" #define TR_MENU_MAX STR_CHAR_FUNCTION "MAX" #define TR_MENU_HELI STR_CHAR_CYC "Heli-TS CYC1-3" #define TR_MENU_TRIMS STR_CHAR_TRIM "Trimmung" diff --git a/radio/src/translations/en.h b/radio/src/translations/en.h index 4bcfc59d9..5e10fa22b 100644 --- a/radio/src/translations/en.h +++ b/radio/src/translations/en.h @@ -1096,6 +1096,7 @@ #define TR_MENU_LUA STR_CHAR_LUA "Lua scripts" #define TR_MENU_STICKS STR_CHAR_STICK "Sticks" #define TR_MENU_POTS STR_CHAR_POT "Pots" +#define TR_MENU_MIN STR_CHAR_FUNCTION "MIN" #define TR_MENU_MAX STR_CHAR_FUNCTION "MAX" #define TR_MENU_HELI STR_CHAR_CYC "Cyclic" #define TR_MENU_TRIMS STR_CHAR_TRIM "Trims" diff --git a/radio/src/translations/es.h b/radio/src/translations/es.h index d531105e0..6acce7824 100644 --- a/radio/src/translations/es.h +++ b/radio/src/translations/es.h @@ -1100,6 +1100,7 @@ #define TR_MENU_LUA STR_CHAR_LUA "Lua scripts" #define TR_MENU_STICKS STR_CHAR_STICK "Sticks" #define TR_MENU_POTS STR_CHAR_POT "Pots" +#define TR_MENU_MIN STR_CHAR_FUNCTION "MIN" #define TR_MENU_MAX STR_CHAR_FUNCTION "MAX" #define TR_MENU_HELI STR_CHAR_CYC "Cíclico" #define TR_MENU_TRIMS STR_CHAR_TRIM "Trims" diff --git a/radio/src/translations/fi.h b/radio/src/translations/fi.h index d4e87bcf2..465296f1e 100644 --- a/radio/src/translations/fi.h +++ b/radio/src/translations/fi.h @@ -1112,6 +1112,7 @@ #define TR_MENU_LUA STR_CHAR_LUA "Lua scripts" #define TR_MENU_STICKS STR_CHAR_STICK "Sticks" #define TR_MENU_POTS STR_CHAR_POT "Pots" +#define TR_MENU_MIN STR_CHAR_FUNCTION "MIN" #define TR_MENU_MAX STR_CHAR_FUNCTION "MAX" #define TR_MENU_HELI STR_CHAR_CYC "Cyclic" #define TR_MENU_TRIMS STR_CHAR_TRIM "Trims" diff --git a/radio/src/translations/fr.h b/radio/src/translations/fr.h index 40dd59c9b..3270506eb 100644 --- a/radio/src/translations/fr.h +++ b/radio/src/translations/fr.h @@ -1116,6 +1116,7 @@ #define TR_MENU_LUA STR_CHAR_LUA "Scripts Lua" #define TR_MENU_STICKS STR_CHAR_STICK "Manches" #define TR_MENU_POTS STR_CHAR_POT "Pots" +#define TR_MENU_MIN STR_CHAR_FUNCTION "MIN" #define TR_MENU_MAX STR_CHAR_FUNCTION "MAX" #define TR_MENU_HELI STR_CHAR_CYC "Cyclique" #define TR_MENU_TRIMS STR_CHAR_TRIM "Trims" diff --git a/radio/src/translations/he.h b/radio/src/translations/he.h index ead9740a3..5f5d6ab39 100644 --- a/radio/src/translations/he.h +++ b/radio/src/translations/he.h @@ -53,7 +53,8 @@ #define TR_AUX_SERIAL_MODES "OFF","Telem Mirror","Telemetry In","SBUS Trainer","LUA","CLI","GPS","Debug","SpaceMouse","External module" #define TR_SWTYPES "None","Toggle","2POS","3POS" -#define TR_POTTYPES "None",TR("Pot w. det","Pot with detent"),TR("Multipos","Multipos Switch"),"Pot","Slider" +#define TR_POTTYPES "None",TR("Pot w. det","Pot with detent"),TR("Multipos","Multipos Switch"),"Pot" +#define TR_SLIDERTYPES "None","Slider" #define TR_VPERSISTENT "OFF","Flight","Manual Reset" #define TR_COUNTRY_CODES TR("US","America"),TR("JP","Japan"),TR("EU","Europe") #define TR_USBMODES "הצג לי אופציות",TR("Joyst","חיבור משחק קבוע"),TR("SDCard","העברת נתונים קבוע"),"חיבור סיריילי קבוע" @@ -61,6 +62,7 @@ #define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT","FrSky D","FrSky D (cable)","TBS Crossfire","Spektrum","AFHDS2A IBUS","Multi Telemetry" #define TR_SBUS_INVERSION_VALUES "normal","not inverted" +#define TR_MULTI_TELEMETRY_MODE "Off","On","Off+Aux","On+Aux" #define TR_MULTI_CUSTOM "עיצוב מיוחד" #define TR_VTRIMINC TR("Expo","הולך ומתעצם"),TR("ExFine","זז ב-1"),"זז ב-2","זז ב-3","זז ב-6" #define TR_VDISPLAYTRIMS "אל תציג","הצג שינוי בלבד","הצג" @@ -345,7 +347,6 @@ #define TR_WARN_5VOLTS "Warning: output level is 5 volts" #define TR_MS "ms" #define TR_SWITCH "מתג" -#define TR_FUNCTION_SWITCHES "מפסקים בהתאמה אישית" #define TR_SF_SWITCH "הדק" #define TR_TRIMS "קיזוזים" #define TR_FADEIN "Fade in" @@ -440,7 +441,6 @@ #define TR_KEYS_BACKLIGHT "Keys backlight" #define TR_BLCOLOR "צבע" #define TR_SPLASHSCREEN "Splash screen" -#define TR_PLAY_HELLO "צליל אתחול" #define TR_PWR_ON_DELAY "השהיית הפעלה פעיל" #define TR_PWR_OFF_DELAY "משך לחיצה לכיבוי השלט" #define TR_THROTTLE_WARNING TR(INDENT "T-Warning", INDENT "התראת מצערת פתוחה") @@ -490,11 +490,11 @@ #define TR_HEARTBEAT_LABEL "Heartbeat" #define TR_LUA_SCRIPTS_LABEL "Lua scripts" #define TR_FREE_MEM_LABEL "Free mem" -#define TR_DURATION_MS TR("[D]","Duration(ms): ") -#define TR_INTERVAL_MS TR("[I]","Interval(ms): ") -#define TR_MEM_USED_SCRIPT "Script(B): " -#define TR_MEM_USED_WIDGET "Widget(B): " -#define TR_MEM_USED_EXTRA "Extra(B): " +#define TR_DURATION_MS TR("[D]","Duration(ms): ") +#define TR_INTERVAL_MS TR("[I]","Interval(ms): ") +#define TR_MEM_USED_SCRIPT "Script(B): " +#define TR_MEM_USED_WIDGET "Widget(B): " +#define TR_MEM_USED_EXTRA "Extra(B): " #define TR_STACK_MIX "Mix: " #define TR_STACK_AUDIO "Audio: " #define TR_GPS_FIX_YES "Fix: Yes" @@ -503,7 +503,7 @@ #define TR_GPS_HDOP "Hdop: " #define TR_STACK_MENU "Menu: " #define TR_TIMER_LABEL "שעון" -#define TR_THROTTLE_PERCENT_LABEL "מצערת %" +#define TR_THROTTLE_PERCENT_LABEL "Throttle %" #define TR_BATT_LABEL "סוללה" #define TR_SESSION "Session" #define TR_MENUTORESET TR_ENTER " to reset" @@ -531,8 +531,7 @@ #define TR_MENU_RADIO_ANALOGS TR("ANALOGS", "בדיקת אנלוגיות") #define TR_MENU_RADIO_ANALOGS_CALIB "בדיקת אנלוגיות סטיקים ומגע" #define TR_MENU_RADIO_ANALOGS_RAWLOWFPS "RAW ANALOGS (5 Hz)" -#define TR_MENUCALIBRATION "כיול" -#define TR_MENU_FSWITCH "מפסקים בהתאמה אישית" +#define TR_MENUCALIBRATION "כיול" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trims => Subtrims" #else @@ -683,12 +682,7 @@ #define TR_POWER_METER_INT "Power Meter (INT)" #define TR_SPECTRUM_ANALYSER_EXT "Spectrum (EXT)" #define TR_SPECTRUM_ANALYSER_INT "Spectrum (INT)" -#define TR_SDCARD_FULL "הדיסק מלא״ -#if defined(COLORLCD) -#define TR_SDCARD_FULL_EXT TR_SDCARD_FULL "\לוגים ושמירת צילומי מסך מושבתים" -#else -#define TR_SDCARD_FULL_EXT TR_SDCARD_FULL "\036לוגים" LCDW_128_480_LINEBREAK "ושמירת צילומי מסך מושבתים" -#endif +#define TR_SDCARD_FULL "SD card full" #define TR_NEEDS_FILE "NEEDS FILE" #define TR_EXT_MULTI_SPEC "opentx-inv" #define TR_INT_MULTI_SPEC "stm-opentx-noinv" @@ -762,16 +756,16 @@ #define TR_DELETE_THEME "?למחוק את הערכה" #define TR_SAVE_THEME "?לשמור את הערכה" #define TR_EDIT_COLOR "עריכת צבע" -#define TR_NO_THEME_IMAGE "תמונת ערכת נושא" -#define TR_BACKLIGHT_TIMER "זמן אי פעילות" +#define TR_NO_THEME_IMAGE "No theme image" +#define TR_BACKLIGHT_TIMER "Inactivity timeout" #if defined(COLORLCD) - #define TR_MODEL_QUICK_SELECT "בחירת מודל מהירה" + #define TR_MODEL_QUICK_SELECT "Model quick select" #endif -#define TR_SELECT_TEMPLATE_FOLDER "בחר ספרית תבנית" -#define TR_SELECT_TEMPLATE "בחר מודל מתבנית:" -#define TR_NO_TEMPLATES "אין מודל בספריית התבניות" +#define TR_SELECT_TEMPLATE_FOLDER "Select a template folder" +#define TR_SELECT_TEMPLATE "SELECT A MODEL TEMPLATE:" +#define TR_NO_TEMPLATES "No model templates were found in this folder" #define TR_SAVE_TEMPLATE "שמור כשמירת בסיס" #define TR_BLANK_MODEL "מודל ריק" #define TR_BLANK_MODEL_INFO "יצירת מודל ריק" @@ -799,10 +793,10 @@ #define TR_SD_SECTORS ":סקטורים" #define TR_SD_SIZE ":גודל" #define TR_TYPE INDENT "סוג" -#define TR_GLOBAL_VARS "משתנים גלובלים" +#define TR_GLOBAL_VARS "Global variables" #define TR_GVARS "GVARS" -#define TR_GLOBAL_VAR "משתנה גלובלי" -#define TR_MENU_GLOBAL_VARS "משתנים גלובלים" +#define TR_GLOBAL_VAR "Global variable" +#define TR_MENU_GLOBAL_VARS "GLOBAL VARIABLES" #define TR_OWN "בעלים" #define TR_DATE "תאריך" #define TR_MONTHS { "ינו", "פבו", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ" } @@ -922,7 +916,6 @@ #define TR_DEBUG "איבחון" #define TR_KEYS_BTN BUTTON("בדיקת מתגים") #define TR_ANALOGS_BTN BUTTON(TR("Anas", "בדיקת אנלוגיות")) -#define TR_FS_BTN BUTTON(TR("Custom sw", TR_FUNCTION_SWITCHES)) #define TR_TOUCH_NOTFOUND "!מסך זה אינו מסך מגע" #define TR_TOUCH_EXIT "גע במסך כדי לצאת" #define TR_SET BUTTON("הגדר") @@ -1057,6 +1050,7 @@ #endif // Bootloader common - Ascii only +#define TR_BL_USB_CONNECT_BOOT CENTER "\011חיבור חוטי חובר" #define TR_BL_USB_CONNECTED "חיבור חוטי חובר" #define TR_BL_USB_PLUGIN "Or plug in a USB cable" #define TR_BL_USB_MASS_STORE "for mass storage" @@ -1068,8 +1062,6 @@ #define TR_BL_EXIT "יציאה" #define TR_BL_DIR_MISSING " ארכיון חסר" #define TR_BL_DIR_EMPTY " ארכיון ריק" -#define TR_BL_WRITING_FW "... כותב תוכנה" -#define TR_BL_WRITING_COMPL "כתיבה הושלמה" #if LCD_W >= 480 #define TR_BL_INVALID_FIRMWARE "Not a valid firmware file" @@ -1088,17 +1080,23 @@ #if defined(PCBTARANIS) // Bootloader Taranis specific - Ascii only #define TR_BL_RESTORE_EEPROM "Restore EEPROM" + #define TR_BL_WRITING_FW CENTER "\015...ממתין" + #define TR_BL_WRITING_COMPL CENTER "\007כתיבה הושלמה" #if defined(RADIO_COMMANDO8) #define TR_BL_POWER_KEY "לחץ על כפתור ההפעלה" #define TR_BL_FLASH_EXIT "Exit the flashing mode." #endif #elif defined(PCBHORUS) // Bootloader Horus specific - Ascii only + #define TR_BL_WRITING_FW "... כותב תוכנה" + #define TR_BL_WRITING_COMPL "כתיבה הושלמה" #define TR_BL_SELECT_KEY "[ENT] לבחירת קובץ" #define TR_BL_FLASH_KEY "Hold [ENT] long to flash" #define TR_BL_EXIT_KEY "[RTN] ליציאה" #elif defined(PCBNV14) // Bootloader NV14 specific - Ascii only + #define TR_BL_WRITING_FW "Writing Firmware ..." + #define TR_BL_WRITING_COMPL "Writing Completed" #define TR_BL_RF_USB_ACCESS "RF USB access" #define TR_BL_CURRENT_FW "Current Firmware:" #define TR_BL_SELECT_KEY "[R TRIM] to select file" @@ -1134,12 +1132,12 @@ #define TR_MODEL_SELECT "בחר מודל" #define TR_ID "ID" #define TR_PRECISION "קירוב עישריות" -#define TR_RATIO "יחס" -#define TR_FORMULA "נוסחה" -#define TR_CELLINDEX "מיקום תא" +#define TR_RATIO "Ratio" +#define TR_FORMULA "Formula" +#define TR_CELLINDEX "Cell index" #define TR_LOGS "לוגים" #define TR_OPTIONS "אופציות" -#define TR_FIRMWARE_OPTIONS "אופציןת קושחה" +#define TR_FIRMWARE_OPTIONS "Firmware options" #define TR_ALTSENSOR "Alt sensor" #define TR_CELLSENSOR "Cell sensor" @@ -1151,7 +1149,7 @@ #define TR_TELEMETRYFULL TR("All slots full!", "All telemetry slots full!") #define TR_INVERTED_SERIAL INDENT "היפוך" #define TR_IGNORE_INSTANCE TR(INDENT "No inst.", INDENT "Ignore instances") -#define TR_SHOW_INSTANCE_ID "הצג מזהה" +#define TR_SHOW_INSTANCE_ID "Show instance ID" #define TR_DISCOVER_SENSORS "גלה הכל" #define TR_STOP_DISCOVER_SENSORS "עצור" #define TR_DELETE_ALL_SENSORS "מחק הכל" @@ -1177,6 +1175,7 @@ #define TR_MENU_LUA STR_CHAR_LUA "Lua סקריפטים" #define TR_MENU_STICKS STR_CHAR_STICK "סטיקים" #define TR_MENU_POTS STR_CHAR_POT "גלגלות" +#define TR_MENU_MIN STR_CHAR_FUNCTION "מינימום" #define TR_MENU_MAX STR_CHAR_FUNCTION "מקסימום" #define TR_MENU_HELI STR_CHAR_CYC "Cyclic" #define TR_MENU_TRIMS STR_CHAR_TRIM "קיזוזים" @@ -1189,7 +1188,6 @@ #define TR_MENU_DISPLAY "DISPLAY" #define TR_MENU_OTHER "Other" #define TR_MENU_INVERT "Invert" -#define TR_AUDIO_MUTE TR("השתקת קול","השתק כאשר אין סאונד") #define TR_JITTER_FILTER "ADC filter" #define TR_DEAD_ZONE "Dead zone" #define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage") @@ -1200,9 +1198,9 @@ #define TR_ADD_ALL_TRIMS_TO_SUBTRIMS "מיכרוז כל הקיזוזים" #if LCD_W > LCD_H - #define TR_OPEN_CHANNEL_MONITORS "פתח מצג ערוצים" + #define TR_OPEN_CHANNEL_MONITORS "פתח מצג ערוצים" #else - #define TR_OPEN_CHANNEL_MONITORS "פתח מצג ערוצים." + #define TR_OPEN_CHANNEL_MONITORS "פתח מצג ערוצים." #endif #define TR_DUPLICATE "שיכפול" #define TR_ACTIVATE "הגדר פעיל" @@ -1211,26 +1209,6 @@ #define TR_GREEN "ירוק" #define TR_COLOR_PICKER "בחירת צבע" #define TR_EDIT_THEME_DETAILS "עריכת ערכת נושא" -#define TR_THEME_COLOR_DEFAULT "DEFAULT" -#define TR_THEME_COLOR_PRIMARY1 "ראשי 1" -#define TR_THEME_COLOR_PRIMARY2 "ראשי 2" -#define TR_THEME_COLOR_PRIMARY3 "ראשי 3" -#define TR_THEME_COLOR_SECONDARY1 "משני 1" -#define TR_THEME_COLOR_SECONDARY2 "משני 2" -#define TR_THEME_COLOR_SECONDARY3 "משני 3" -#define TR_THEME_COLOR_FOCUS "מיקוד" -#define TR_THEME_COLOR_EDIT "עריכה" -#define TR_THEME_COLOR_ACTIVE "פעיל" -#define TR_THEME_COLOR_WARNING "אזהרה" -#define TR_THEME_COLOR_DISABLED "לא פעיל" -#define TR_THEME_COLOR_CUSTOM "מתקדם" -#define TR_THEME_CHECKBOX "Checkbox" -#define TR_THEME_ACTIVE "פעיל" -#define TR_THEME_REGULAR "רגיל" -#define TR_THEME_WARNING "אזהרה" -#define TR_THEME_DISABLED "לא פעיל" -#define TR_THEME_EDIT "עריכה" -#define TR_THEME_FOCUS "מיקוד" #define TR_AUTHOR "Author" #define TR_DESCRIPTION "תיאור" #define TR_SAVE "שמור" @@ -1272,38 +1250,38 @@ #define TR_VOICE_TAIWANESE "Taiwanese" #define TR_VOICE_JAPANESE "Japanese" -#define TR_USBJOYSTICK_LABEL "חיבור מצב משחק" -#define TR_USBJOYSTICK_EXTMODE "מצב" -#define TR_VUSBJOYSTICK_EXTMODE "רגיל","מתקדם" -#define TR_USBJOYSTICK_SETTINGS "הגדרות ערוץ" -#define TR_USBJOYSTICK_IF_MODE TR("If. mode","Interface mode") -#define TR_VUSBJOYSTICK_IF_MODE "Joystick","Gamepad","MultiAxis" -#define TR_USBJOYSTICK_CH_MODE "Mode" -#define TR_VUSBJOYSTICK_CH_MODE "None","Btn","Axis","Sim" -#define TR_VUSBJOYSTICK_CH_MODE_S "-","B","A","S" -#define TR_USBJOYSTICK_CH_BTNMODE "Button Mode" -#define TR_VUSBJOYSTICK_CH_BTNMODE "Normal","Pulse","SWEmu","Delta","Companion" -#define TR_VUSBJOYSTICK_CH_BTNMODE_S TR("Norm","Normal"),TR("Puls","Pulse"),TR("SWEm","SWEmul"),TR("Delt","Delta"),TR("CPN","Companion") -#define TR_USBJOYSTICK_CH_SWPOS "מיקומים" -#define TR_VUSBJOYSTICK_CH_SWPOS "Push","2POS","3POS","4POS","5POS","6POS","7POS","8POS" -#define TR_USBJOYSTICK_CH_AXIS "צירים" -#define TR_VUSBJOYSTICK_CH_AXIS "X","Y","Z","rotX","rotY","rotZ","Slider","Dial","Wheel" -#define TR_USBJOYSTICK_CH_SIM "ציר סימולטור" -#define TR_VUSBJOYSTICK_CH_SIM "מאזנות","ה.גובה","ה.כיוון","מנוע" -#define TR_USBJOYSTICK_CH_INVERSION "היפוך" -#define TR_USBJOYSTICK_CH_BTNNUM "Button no." -#define TR_USBJOYSTICK_BTN_COLLISION "!Button no. collision!" -#define TR_USBJOYSTICK_AXIS_COLLISION "!Axis collision!" -#define TR_USBJOYSTICK_CIRC_COUTOUT TR("Circ. cut", "Circular cutout") -#define TR_VUSBJOYSTICK_CIRC_COUTOUT "None","X-Y, Z-rX","X-Y, rX-rY" -#define TR_USBJOYSTICK_APPLY_CHANGES "החל שינויים" +#define TR_USBJOYSTICK_LABEL "חיבור מצב משחק" +#define TR_USBJOYSTICK_EXTMODE "מצב" +#define TR_VUSBJOYSTICK_EXTMODE "Classic","Advanced" +#define TR_USBJOYSTICK_SETTINGS "הגדרות ערוץ" +#define TR_USBJOYSTICK_IF_MODE TR("If. mode","Interface mode") +#define TR_VUSBJOYSTICK_IF_MODE "Joystick","Gamepad","MultiAxis" +#define TR_USBJOYSTICK_CH_MODE "Mode" +#define TR_VUSBJOYSTICK_CH_MODE "None","Btn","Axis","Sim" +#define TR_VUSBJOYSTICK_CH_MODE_S "-","B","A","S" +#define TR_USBJOYSTICK_CH_BTNMODE "Button Mode" +#define TR_VUSBJOYSTICK_CH_BTNMODE "Normal","Pulse","SWEmu","Delta","Companion" +#define TR_VUSBJOYSTICK_CH_BTNMODE_S TR("Norm","Normal"),TR("Puls","Pulse"),TR("SWEm","SWEmul"),TR("Delt","Delta"),TR("CPN","Companion") +#define TR_USBJOYSTICK_CH_SWPOS "Positions" +#define TR_VUSBJOYSTICK_CH_SWPOS "Push","2POS","3POS","4POS","5POS","6POS","7POS","8POS" +#define TR_USBJOYSTICK_CH_AXIS "Axis" +#define TR_VUSBJOYSTICK_CH_AXIS "X","Y","Z","rotX","rotY","rotZ","Slider","Dial","Wheel" +#define TR_USBJOYSTICK_CH_SIM "Sim axis" +#define TR_VUSBJOYSTICK_CH_SIM "מאזנות","ה.גובה","ה.כיוון","מנוע" +#define TR_USBJOYSTICK_CH_INVERSION "Inversion" +#define TR_USBJOYSTICK_CH_BTNNUM "Button no." +#define TR_USBJOYSTICK_BTN_COLLISION "!Button no. collision!" +#define TR_USBJOYSTICK_AXIS_COLLISION "!Axis collision!" +#define TR_USBJOYSTICK_CIRC_COUTOUT TR("Circ. cut", "Circular cutout") +#define TR_VUSBJOYSTICK_CIRC_COUTOUT "None","X-Y, Z-rX","X-Y, rX-rY" +#define TR_USBJOYSTICK_APPLY_CHANGES "Apply changes" -#define TR_DIGITAL_SERVO "333HZ סרוו דיגיטאלי" -#define TR_ANALOG_SERVO "50HZ סרוו אנלוגי" -#define TR_SIGNAL_OUTPUT "יציאת סיגנל" -#define TR_SERIAL_BUS "ערוץ טורי" -#define TR_SYNC "סינכרון" +#define TR_DIGITAL_SERVO "Servo333HZ" +#define TR_ANALOG_SERVO "Servo 50HZ" +#define TR_SIGNAL_OUTPUT "Signal output" +#define TR_SERIAL_BUS "Serial bus" +#define TR_SYNC "Sync" -#define TR_ENABLED_FEATURES "אפשר יכולות" -#define TR_RADIO_MENU_TABS "לשוניות תפריט רדיו" -#define TR_MODEL_MENU_TABS "לשוניות תפריט מודל" +#define TR_VIEW_OPTIONS "Enabled Features" +#define TR_RADIO_MENU_TABS "Radio Menu Tabs" +#define TR_MODEL_MENU_TABS "Model Menu Tabs" diff --git a/radio/src/translations/it.h b/radio/src/translations/it.h index e2b84635a..9d135b99d 100644 --- a/radio/src/translations/it.h +++ b/radio/src/translations/it.h @@ -1095,6 +1095,7 @@ #define TR_MENU_LUA STR_CHAR_LUA "Lua scripts" #define TR_MENU_STICKS STR_CHAR_STICK "Sticks" #define TR_MENU_POTS STR_CHAR_POT "Potenziometri" +#define TR_MENU_MIN STR_CHAR_FUNCTION "MIN" #define TR_MENU_MAX STR_CHAR_FUNCTION "MAX" #define TR_MENU_HELI STR_CHAR_CYC "Ciclico" #define TR_MENU_TRIMS STR_CHAR_TRIM "Trims" diff --git a/radio/src/translations/jp.h b/radio/src/translations/jp.h index 2dd967f9c..fa2fe70a3 100644 --- a/radio/src/translations/jp.h +++ b/radio/src/translations/jp.h @@ -1097,6 +1097,7 @@ #define TR_MENU_LUA STR_CHAR_LUA "LUAスクリプト" #define TR_MENU_STICKS STR_CHAR_STICK "スティック" #define TR_MENU_POTS STR_CHAR_POT "ダイヤル" +#define TR_MENU_MIN STR_CHAR_FUNCTION "最小" #define TR_MENU_MAX STR_CHAR_FUNCTION "最大" #define TR_MENU_HELI STR_CHAR_CYC "サイクリック" #define TR_MENU_TRIMS STR_CHAR_TRIM "トリム" diff --git a/radio/src/translations/nl.h b/radio/src/translations/nl.h index bc4100fe3..a7714c325 100644 --- a/radio/src/translations/nl.h +++ b/radio/src/translations/nl.h @@ -1107,6 +1107,7 @@ #define TR_MENU_LUA STR_CHAR_LUA "Lua Scripts" #define TR_MENU_STICKS STR_CHAR_STICK "Sticks" #define TR_MENU_POTS STR_CHAR_POT "Pots" +#define TR_MENU_MIN STR_CHAR_FUNCTION "MIN" #define TR_MENU_MAX STR_CHAR_FUNCTION "MAX" #define TR_MENU_HELI STR_CHAR_CYC "HeliCyclic" #define TR_MENU_TRIMS STR_CHAR_TRIM "Trims" diff --git a/radio/src/translations/pl.h b/radio/src/translations/pl.h index f9d43dd5d..aa029c305 100644 --- a/radio/src/translations/pl.h +++ b/radio/src/translations/pl.h @@ -1095,6 +1095,7 @@ #define TR_MENU_LUA STR_CHAR_LUA "SkryptyLUA" #define TR_MENU_STICKS STR_CHAR_STICK "Drążki" #define TR_MENU_POTS STR_CHAR_POT "Pots" +#define TR_MENU_MIN STR_CHAR_FUNCTION "MIN" #define TR_MENU_MAX STR_CHAR_FUNCTION "MAX" #define TR_MENU_HELI STR_CHAR_CYC "Cyclic" #define TR_MENU_TRIMS STR_CHAR_TRIM "Trymy" diff --git a/radio/src/translations/pt.h b/radio/src/translations/pt.h index ddc6fc024..9ecebd0e6 100644 --- a/radio/src/translations/pt.h +++ b/radio/src/translations/pt.h @@ -1099,6 +1099,7 @@ #define TR_MENU_LUA STR_CHAR_LUA "Lua scripts" #define TR_MENU_STICKS STR_CHAR_STICK "Sticks" #define TR_MENU_POTS STR_CHAR_POT "Pots" +#define TR_MENU_MIN STR_CHAR_FUNCTION "MIN" #define TR_MENU_MAX STR_CHAR_FUNCTION "MAX" #define TR_MENU_HELI STR_CHAR_CYC "Cyclic" #define TR_MENU_TRIMS STR_CHAR_TRIM "Trims" diff --git a/radio/src/translations/se.h b/radio/src/translations/se.h index fa7c1df74..97ff9af06 100644 --- a/radio/src/translations/se.h +++ b/radio/src/translations/se.h @@ -1133,6 +1133,7 @@ #define TR_MENU_LUA STR_CHAR_LUA "Lua-skript" #define TR_MENU_STICKS STR_CHAR_STICK "Spakar" #define TR_MENU_POTS STR_CHAR_POT "Vred" +#define TR_MENU_MIN STR_CHAR_FUNCTION "MIN" #define TR_MENU_MAX STR_CHAR_FUNCTION "MAX" #define TR_MENU_HELI STR_CHAR_CYC "Cyklisk" #define TR_MENU_TRIMS STR_CHAR_TRIM "Trimm" diff --git a/radio/src/translations/tw.h b/radio/src/translations/tw.h index af3ff5ad0..32d156dd6 100644 --- a/radio/src/translations/tw.h +++ b/radio/src/translations/tw.h @@ -1096,6 +1096,7 @@ #define TR_MENU_LUA STR_CHAR_LUA "LUA腳本" #define TR_MENU_STICKS STR_CHAR_STICK "搖桿" #define TR_MENU_POTS STR_CHAR_POT "旋鈕" +#define TR_MENU_MIN STR_CHAR_FUNCTION "固定值MIN" #define TR_MENU_MAX STR_CHAR_FUNCTION "固定值MAX" #define TR_MENU_HELI STR_CHAR_CYC "斜盤混控CYC" #define TR_MENU_TRIMS STR_CHAR_TRIM "微調"