diff --git a/generated/ui_320x240/screens.c b/generated/ui_320x240/screens.c index 21adc1e3..e9085994 100644 --- a/generated/ui_320x240/screens.c +++ b/generated/ui_320x240/screens.c @@ -3751,7 +3751,7 @@ void create_screen_main_screen() { objects.settings_language_dropdown = obj; lv_obj_set_pos(obj, 0, 0); lv_obj_set_size(obj, 150, 30); - lv_dropdown_set_options(obj, "English\nDeutsch\nEspañol\nFrançais\nItaliano\nNederlands\nNorsk\nPolski\nPortuguês\nРусский\nSrpski\nSuomalainen\nSvenska\nTürkçe"); + lv_dropdown_set_options(obj, "English\nDeutsch\nEspañol\nFrançais\nItaliano\nNederlands\nNorsk\nPolski\nPortuguês\nРусский\nSlovenščina\nSrpski\nSuomalainen\nSvenska\nTürkçe"); add_style_drop_down_style(obj); lv_obj_set_style_align(obj, LV_ALIGN_TOP_MID, LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_border_color(obj, lv_color_hex(0xffe0e0e0), LV_PART_MAIN | LV_STATE_DEFAULT); diff --git a/locale/lv_i18n.c b/locale/lv_i18n.c index 85bddea1..12ea5f91 100644 --- a/locale/lv_i18n.c +++ b/locale/lv_i18n.c @@ -1,5 +1,6 @@ #include "./lv_i18n.h" + //////////////////////////////////////////////////////////////////////////////// // Define plural operands // http://unicode.org/reports/tr35/tr35-numbers.html#Operands @@ -8,53 +9,30 @@ #define UNUSED(x) (void)(x) -static inline uint32_t op_n(int32_t val) -{ - return (uint32_t)(val < 0 ? -val : val); -} -static inline uint32_t op_i(uint32_t val) -{ - return val; -} +static inline uint32_t op_n(int32_t val) { return (uint32_t)(val < 0 ? -val : val); } +static inline uint32_t op_i(uint32_t val) { return val; } // always zero, when decimal part not exists. -static inline uint32_t op_v(uint32_t val) -{ - UNUSED(val); - return 0; -} -static inline uint32_t op_w(uint32_t val) -{ - UNUSED(val); - return 0; -} -static inline uint32_t op_f(uint32_t val) -{ - UNUSED(val); - return 0; -} -static inline uint32_t op_t(uint32_t val) -{ - UNUSED(val); - return 0; -} +static inline uint32_t op_v(uint32_t val) { UNUSED(val); return 0;} +static inline uint32_t op_w(uint32_t val) { UNUSED(val); return 0; } +static inline uint32_t op_f(uint32_t val) { UNUSED(val); return 0; } +static inline uint32_t op_t(uint32_t val) { UNUSED(val); return 0; } static uint8_t en_plural_fn(int32_t num) { - uint32_t n = op_n(num); - UNUSED(n); - uint32_t i = op_i(n); - UNUSED(i); - uint32_t v = op_v(n); - UNUSED(v); - - if ((i == 1 && v == 0)) - return LV_I18N_PLURAL_TYPE_ONE; + uint32_t n = op_n(num); UNUSED(n); + uint32_t i = op_i(n); UNUSED(i); + uint32_t v = op_v(n); UNUSED(v); + + if ((i == 1 && v == 0)) return LV_I18N_PLURAL_TYPE_ONE; return LV_I18N_PLURAL_TYPE_OTHER; } -static const lv_i18n_lang_t en_lang = {.locale_name = "en", +static const lv_i18n_lang_t en_lang = { + .locale_name = "en", + - .locale_plural_fn = en_plural_fn}; + .locale_plural_fn = en_plural_fn +}; static lv_i18n_phrase_t de_singulars[] = { {"User name: %s", "Benutzer: %s"}, @@ -177,32 +155,34 @@ static lv_i18n_phrase_t de_singulars[] = { }; static lv_i18n_phrase_t de_plurals_one[] = { - {"%d active chat(s)", "%d aktives Gespräch"}, {"%d of %d nodes online", "1 Gerät online"}, {NULL, NULL} // End mark + {"%d active chat(s)", "%d aktives Gespräch"}, + {"%d of %d nodes online", "1 Gerät online"}, + {NULL, NULL} // End mark }; static lv_i18n_phrase_t de_plurals_other[] = { - {"%d active chat(s)", "%d aktive Gespräche"}, {"%d of %d nodes online", "%d / %d Geräte online"}, {NULL, NULL} // End mark + {"%d active chat(s)", "%d aktive Gespräche"}, + {"%d of %d nodes online", "%d / %d Geräte online"}, + {NULL, NULL} // End mark }; static uint8_t de_plural_fn(int32_t num) { - uint32_t n = op_n(num); - UNUSED(n); - uint32_t i = op_i(n); - UNUSED(i); - uint32_t v = op_v(n); - UNUSED(v); - - if ((i == 1 && v == 0)) - return LV_I18N_PLURAL_TYPE_ONE; + uint32_t n = op_n(num); UNUSED(n); + uint32_t i = op_i(n); UNUSED(i); + uint32_t v = op_v(n); UNUSED(v); + + if ((i == 1 && v == 0)) return LV_I18N_PLURAL_TYPE_ONE; return LV_I18N_PLURAL_TYPE_OTHER; } -static const lv_i18n_lang_t de_lang = {.locale_name = "de", - .singulars = de_singulars, - .plurals[LV_I18N_PLURAL_TYPE_ONE] = de_plurals_one, - .plurals[LV_I18N_PLURAL_TYPE_OTHER] = de_plurals_other, - .locale_plural_fn = de_plural_fn}; +static const lv_i18n_lang_t de_lang = { + .locale_name = "de", + .singulars = de_singulars, + .plurals[LV_I18N_PLURAL_TYPE_ONE] = de_plurals_one, + .plurals[LV_I18N_PLURAL_TYPE_OTHER] = de_plurals_other, + .locale_plural_fn = de_plural_fn +}; static lv_i18n_phrase_t es_singulars[] = { {"no new messages", "Sin mensajes nuevos"}, @@ -270,10 +250,8 @@ static lv_i18n_phrase_t es_singulars[] = { {"Start", "Iniciar"}, {"Theme: %s", "Tema: %s"}, {"Packet Statistics", "Estadísticas"}, - {"LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO", - "LONG FAST\nLONG SLOW\n-- obsoleto --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO"}, - {"Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", - "Client\nClient Mute\nRouter\n-- obsoleto --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker"}, + {"LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO", "LONG FAST\nLONG SLOW\n-- obsoleto --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO"}, + {"Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", "Client\nClient Mute\nRouter\n-- obsoleto --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker"}, {"Dark\nLight", "Oscuro\nClaro"}, {"Cancel", "Cancelar"}, {"Brightness: %d%%", "Brillo : %d%%"}, @@ -329,20 +307,23 @@ static lv_i18n_phrase_t es_singulars[] = { {NULL, NULL} // End mark }; + + static uint8_t es_plural_fn(int32_t num) { - uint32_t n = op_n(num); - UNUSED(n); + uint32_t n = op_n(num); UNUSED(n); + - if ((n == 1)) - return LV_I18N_PLURAL_TYPE_ONE; + if ((n == 1)) return LV_I18N_PLURAL_TYPE_ONE; return LV_I18N_PLURAL_TYPE_OTHER; } -static const lv_i18n_lang_t es_lang = {.locale_name = "es", - .singulars = es_singulars, +static const lv_i18n_lang_t es_lang = { + .locale_name = "es", + .singulars = es_singulars, - .locale_plural_fn = es_plural_fn}; + .locale_plural_fn = es_plural_fn +}; static lv_i18n_phrase_t fi_singulars[] = { {"no new messages", "ei uusia viestejä"}, @@ -455,117 +436,114 @@ static lv_i18n_phrase_t fi_singulars[] = { {NULL, NULL} // End mark }; + + static uint8_t fi_plural_fn(int32_t num) { - uint32_t n = op_n(num); - UNUSED(n); - uint32_t i = op_i(n); - UNUSED(i); - uint32_t v = op_v(n); - UNUSED(v); - - if ((i == 1 && v == 0)) - return LV_I18N_PLURAL_TYPE_ONE; + uint32_t n = op_n(num); UNUSED(n); + uint32_t i = op_i(n); UNUSED(i); + uint32_t v = op_v(n); UNUSED(v); + + if ((i == 1 && v == 0)) return LV_I18N_PLURAL_TYPE_ONE; return LV_I18N_PLURAL_TYPE_OTHER; } -static const lv_i18n_lang_t fi_lang = {.locale_name = "fi", - .singulars = fi_singulars, +static const lv_i18n_lang_t fi_lang = { + .locale_name = "fi", + .singulars = fi_singulars, - .locale_plural_fn = fi_plural_fn}; + .locale_plural_fn = fi_plural_fn +}; static lv_i18n_phrase_t fr_singulars[] = { {"no new messages", "0 nouveau message"}, {"1 of 1 nodes online", "1 sur 1 noeud actif"}, + {"uptime 00:00:00", "Activité: 00:00:00"}, {"DEL", "DEL"}, {"User name: ", "Nom:"}, {"Modem Preset: LONG FAST", "Préréglages: LONG FAST"}, - {"Modem Preset: %s", "Préréglages: %s"}, {"Channel: LongFast", "Canal: LongFast"}, {"Role: Client", "Rôle: Client"}, {"Screen Timeout: 60s", "Extinction Écran: 60s"}, - {"Screen Brightness: 60%", "Luminosité: 60%"}, + {"Screen Lock: off", "Verr. écran: off"}, + {"Theme: Dark", "Thème: Sombre"}, {"Screen Calibration: default", "Calibr. d'écran: défaut"}, {"Message Alert Buzzer: on", "Sonnerie: on"}, {"Language: English", "Langue: Français"}, {"Configuration Reset", "Réinitialisation"}, {"Reboot / Shutdown", "Redémarrer / Arrêter"}, + {"Mesh Detector", "Détecteur de Mesh"}, + {"Signal Scanner", "Qualité du Signal"}, + {"Trace Route", "Trace route"}, + {"Neighbors", "Voisins"}, + {"Statistics", "Statistiques"}, + {"Packet Log", "Journaux de paquets"}, {"Group Channels", "Canaux de groupes"}, {"no messages", "aucun message"}, - {"Settings", "Configuration"}, + {"Settings & Tools", "Outils et Configuration"}, {"Settings (advanced)", "Configur. avancée"}, {"Locations Map", "Carte / Localisations"}, {"no chats", "Aucune conversation"}, + {"Node Search", "Recherche noeud"}, + {"Packet Statistics", "Statistiques des paquets"}, {"Node Options", "Options Noeud"}, {"Short Name", "Nom court"}, {"Long Name", "Nom complet"}, {"", ""}, {"Brightness: 60%", "Luminosité: 60%"}, + {"Dark\nLight", "Sombre\nLumineux"}, + {"Screen Lock", "Verrou. PIN"}, + {"Lock PIN", "Code PIN"}, {"Mouse", "Souris"}, {"Keyboard", "Clavier"}, {"Message Alert", "Notifications"}, - {"NodeDB Reset\nFactory Reset", "Reinit. NodeDB\nReinit. Usine"}, - {"Channel Name", "Nom du Canal"}, - {"Pre-shared Key", "Clé pré-partagée"}, - {"New Message from\\n", "Nouveau message de\\n"}, - {"User name: %s", "Nom: %s"}, - {"Device Role: %s", "Rôle: %s"}, - {"Screen Calibration: %s", "Calibration d'écran: %s"}, - {"done", "fait"}, - {"default", "défaut"}, - {"Region: %s", "Region: %s"}, - {"Channel: %s", "Canal: %s"}, - {"Language: %s", "Langue: %s"}, - {"Screen Lock: off", "Verr. écran: off"}, - {"Theme: Dark", "Thème: Sombre"}, - {"Mesh Detector", "Détecteur de Mesh"}, - {"Signal Scanner", "Qualité du Signal"}, - {"Trace Route", "Traceroute"}, - {"Neighbors", "Voisins"}, - {"Statistics", "Statistiques"}, - {"Packet Log", "Journaux de paquets"}, - {"Settings & Tools", "Outils et Configuration"}, - {"Node Search", "Recherche noeud"}, - {"Screen Lock", "Verrou. PIN"}, - {"Lock PIN", "Code PIN"}, {"Ringtone", "Sonnerie"}, + {"Default", "défaut"}, {"Zone", "Zone"}, {"City", "Ville"}, + {"NodeDB Reset\nFactory Reset", "Reinit. NodeDB\nReinit. Usine"}, + {"Channel Name", "Nom du Canal"}, + {"Pre-shared Key", "Clé pré-partagée"}, {"Unknown", "Inconnu"}, {"Offline", "Hors ligne"}, {"Public Key", "Clé Publique"}, {"Hops away", "Sauts"}, + {"MQTT", "MQTT"}, {"Position", "Position"}, {"Name", "Nom"}, {"Active Chat", "Chat Actif"}, {"Telemetry", "Télémétrie"}, {"Start", "Marche"}, - {"Theme: %s", "Thème: %s"}, - {"Packet Statistics", "Statistiques des paquets"}, - {"LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO", - "LONG FAST\nLONG SLOW\n-- obsoleto --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO"}, - {"Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", - "Client\nClient Mute\nRouter\n-- obsoleto --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker"}, - {"Dark\nLight", "Sombre\nLumineux"}, + {"New Message from\n", "Nouveau message de\\n"}, {"Cancel", "Annuler"}, {"Brightness: %d%%", "Luminosité : %d%%"}, + {"Timeout: off", "Timeout: désactivé"}, + {"Screen Calibration: %s", "Calibration d'écran: %s"}, + {"done", "fait"}, + {"default", "défaut"}, {"Stop", "Arrêt"}, {"choose\nnode", "choix du\nnoeud"}, {"choose target node", "Choix du noeud cible"}, {"heard: !%08x", "Vu: !%08x"}, {"Packet Log: %d", "Journaux des paquets: %d"}, + {"Language: %s", "Langue: %s"}, {"Screen Timeout: off", "Extin. d'écran: off"}, {"Screen Timeout: %ds", "Écran allumé: %ds"}, {"Screen Brightness: %d%%", "Luminosité d'écran: %d%%"}, + {"Theme: %s", "Thème: %s"}, + {"User name: %s", "Nom: %s"}, + {"Device Role: %s", "Rôle: %s"}, + {"Region: %s", "Region: %s"}, + {"Modem Preset: %s", "Préréglages: %s"}, + {"Channel: %s", "Canal: %s"}, {"Screen Lock: %s", "Verrou. PIN: %s"}, {"on", "On"}, {"off", "Off"}, {"Message Alert: %s", "Notifications: %s"}, - {"Util %0.1f%% Air %0.1f%%", "Util %0.1f%% Air %0.1f%%"}, {"hops: %d", "sauts: %d"}, {"unknown", "inconnu"}, {"", ""}, - {"%d active chat(s)", "%d chat(s) actifs"}, + {"%d active chat(s)", "%d chat(s) actif(s)"}, {"New message from \n%s", "Nouveau message de:\n%s"}, {"%d of %d nodes online", "%d sur %d noeuds actifs"}, {"Filtering ...", "Filtrage ..."}, @@ -574,61 +552,52 @@ static lv_i18n_phrase_t fr_singulars[] = { {"%d new message", "%d nouveau message"}, {"%d new messages", "%d nouveaux messages"}, {"uptime: %02d:%02d:%02d", "Activité: %02d:%02d:%02d"}, - {"uptime 00:00:00", "Activité: 00:00:00"}, + {"Settings", "Configuration"}, {"Tools", "Outils"}, {"Filter", "Filtrer"}, {"Highlight", "Surbrillance"}, {"Primary Channel", "Canal Primaire"}, {"Secondary Channels", "Canaux Secondaires"}, - {"Resynch ...", "Resynch ..."}, {"Rebooting ...", "Redémarrage ..."}, {"Shutting down ...", "Arrêt..."}, {"silent", "silencieux"}, {"WiFi: ", "WiFi: "}, - {"WiFi: %s", "WiFi: %s"}, + {"Lock: off/off", "Verrouillage: non/non"}, {"LoRa TX off!", "LoRa TX off!"}, {"WiFi SSID", "SSID WiFi"}, {"WiFi pre-shared Key", "Clé WiFi"}, - {"", ""}, - {"Banner & Sound", "Visuelle et sonore"}, - {"Banner only", "Alerte Visuelle"}, - {"Sound only", "Sonnerie Seule"}, - {"Lock: off/off", "Verrouillage: non/non"}, {"Settings Lock", "Verr. des param."}, {"Lock: %s/%s", "Verrouillage: %s/%s"}, {"Enter Text ...", "Écrire votre message..."}, - {"!Enter Filter ...", "!Filtrer ..."}, - {"Enter Filter ...", "Filtrer ..."}, + {"!Enter Filter ...", "!Filtrer..."}, + {"Enter Filter ...", "Filtrer..."}, + {"WiFi: %s", "WiFi: %s"}, + {"", ""}, {"region unset", "Région non configurée"}, + {"Banner & Sound", "Visuelle et sonore"}, + {"Banner only", "Alerte Visuelle"}, + {"Sound only", "Sonnerie Seule"}, {"no signal", "aucun signal"}, {NULL, NULL} // End mark }; -static lv_i18n_phrase_t fr_plurals_one[] = { - {"%d active chat(s)", "%d chat actif"}, {"%d sur %d nodes online", "1 noeud connecté"}, {NULL, NULL} // End mark -}; -static lv_i18n_phrase_t fr_plurals_other[] = { - {"%d active chat(s)", "%d chats actifs"}, {"%d of %d nodes online", "%d/%d noeuds connectés"}, {NULL, NULL} // End mark -}; static uint8_t fr_plural_fn(int32_t num) { - uint32_t n = op_n(num); - UNUSED(n); - uint32_t i = op_i(n); - UNUSED(i); + uint32_t n = op_n(num); UNUSED(n); + uint32_t i = op_i(n); UNUSED(i); - if ((((i == 0) || (i == 1)))) - return LV_I18N_PLURAL_TYPE_ONE; + if ((((i == 0) || (i == 1)))) return LV_I18N_PLURAL_TYPE_ONE; return LV_I18N_PLURAL_TYPE_OTHER; } -static const lv_i18n_lang_t fr_lang = {.locale_name = "fr", - .singulars = fr_singulars, - .plurals[LV_I18N_PLURAL_TYPE_ONE] = fr_plurals_one, - .plurals[LV_I18N_PLURAL_TYPE_OTHER] = fr_plurals_other, - .locale_plural_fn = fr_plural_fn}; +static const lv_i18n_lang_t fr_lang = { + .locale_name = "fr", + .singulars = fr_singulars, + + .locale_plural_fn = fr_plural_fn +}; static lv_i18n_phrase_t it_singulars[] = { {"no new messages", "nessun messaggio"}, @@ -669,9 +638,7 @@ static lv_i18n_phrase_t it_singulars[] = { {"Short Name", "Nome breve"}, {"Long Name", "Nome lungo"}, {"", ""}, - {"Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", - "Client\nClient Muto\nRouter\n-- deprecato --\nRipetitore\nTracker\nSensore\nTAK\nClient Nascosto\nOggetti Smarriti\nTAK " - "Tracker"}, + {"Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", "Client\nClient Muto\nRouter\n-- deprecato --\nRipetitore\nTracker\nSensore\nTAK\nClient Nascosto\nOggetti Smarriti\nTAK Tracker"}, {"Brightness: 60%", "Luminosità: 60%"}, {"Dark\nLight", "Scuro\nChiaro"}, {"Screen Lock", "Blocco schermo"}, @@ -764,32 +731,34 @@ static lv_i18n_phrase_t it_singulars[] = { }; static lv_i18n_phrase_t it_plurals_one[] = { - {"%d active chat(s)", "%d chat attiva"}, {"%d of %d nodes online", "1 nodo online"}, {NULL, NULL} // End mark + {"%d active chat(s)", "%d chat attiva"}, + {"%d of %d nodes online", "1 nodo online"}, + {NULL, NULL} // End mark }; static lv_i18n_phrase_t it_plurals_other[] = { - {"%d active chat(s)", "%d chat attive"}, {"%d of %d nodes online", "%d di %d nodi online"}, {NULL, NULL} // End mark + {"%d active chat(s)", "%d chat attive"}, + {"%d of %d nodes online", "%d di %d nodi online"}, + {NULL, NULL} // End mark }; static uint8_t it_plural_fn(int32_t num) { - uint32_t n = op_n(num); - UNUSED(n); - uint32_t i = op_i(n); - UNUSED(i); - uint32_t v = op_v(n); - UNUSED(v); - - if ((i == 1 && v == 0)) - return LV_I18N_PLURAL_TYPE_ONE; + uint32_t n = op_n(num); UNUSED(n); + uint32_t i = op_i(n); UNUSED(i); + uint32_t v = op_v(n); UNUSED(v); + + if ((i == 1 && v == 0)) return LV_I18N_PLURAL_TYPE_ONE; return LV_I18N_PLURAL_TYPE_OTHER; } -static const lv_i18n_lang_t it_lang = {.locale_name = "it", - .singulars = it_singulars, - .plurals[LV_I18N_PLURAL_TYPE_ONE] = it_plurals_one, - .plurals[LV_I18N_PLURAL_TYPE_OTHER] = it_plurals_other, - .locale_plural_fn = it_plural_fn}; +static const lv_i18n_lang_t it_lang = { + .locale_name = "it", + .singulars = it_singulars, + .plurals[LV_I18N_PLURAL_TYPE_ONE] = it_plurals_one, + .plurals[LV_I18N_PLURAL_TYPE_OTHER] = it_plurals_other, + .locale_plural_fn = it_plural_fn +}; static lv_i18n_phrase_t nl_singulars[] = { {"no new messages", "0 nieuwe berichten"}, @@ -830,10 +799,8 @@ static lv_i18n_phrase_t nl_singulars[] = { {"Short Name", "Korte Naam"}, {"Long Name", "Lange Naam"}, {"", ""}, - {"LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO", - "LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO"}, - {"Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", - "Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker"}, + {"LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO", "LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO"}, + {"Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", "Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker"}, {"Brightness: 60%", "Helderheid: 60%"}, {"Dark\nLight", "Donker\nLicht"}, {"Timeout: 60s", "Timeout: 60s"}, @@ -932,24 +899,24 @@ static lv_i18n_phrase_t nl_singulars[] = { {NULL, NULL} // End mark }; + + static uint8_t nl_plural_fn(int32_t num) { - uint32_t n = op_n(num); - UNUSED(n); - uint32_t i = op_i(n); - UNUSED(i); - uint32_t v = op_v(n); - UNUSED(v); - - if ((i == 1 && v == 0)) - return LV_I18N_PLURAL_TYPE_ONE; + uint32_t n = op_n(num); UNUSED(n); + uint32_t i = op_i(n); UNUSED(i); + uint32_t v = op_v(n); UNUSED(v); + + if ((i == 1 && v == 0)) return LV_I18N_PLURAL_TYPE_ONE; return LV_I18N_PLURAL_TYPE_OTHER; } -static const lv_i18n_lang_t nl_lang = {.locale_name = "nl", - .singulars = nl_singulars, +static const lv_i18n_lang_t nl_lang = { + .locale_name = "nl", + .singulars = nl_singulars, - .locale_plural_fn = nl_plural_fn}; + .locale_plural_fn = nl_plural_fn +}; static lv_i18n_phrase_t no_singulars[] = { {"no new messages", "Ingen nye meldinger"}, @@ -987,10 +954,8 @@ static lv_i18n_phrase_t no_singulars[] = { {"Short Name", "Kort Navn"}, {"Long Name", "Langt Navn"}, {"", ""}, - {"LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO", - "LONG FAST\nLONG SLOW\n-- utfaset --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO"}, - {"Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", - "Klient\nKlient Stum\nRuter\n-- utfaset --\nRepeater\nSporer\nSensor\nTAK\nKlient Gjemt\nMistet & Funnet\nTAK Sporing"}, + {"LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO", "LONG FAST\nLONG SLOW\n-- utfaset --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO"}, + {"Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", "Klient\nKlient Stum\nRuter\n-- utfaset --\nRepeater\nSporer\nSensor\nTAK\nKlient Gjemt\nMistet & Funnet\nTAK Sporing"}, {"Brightness: 60%", "Lysstyrke: 60%"}, {"Dark\nLight", "Mørk\nLyst"}, {"Timeout: 60s", "Tidsavbrudd: 60s"}, @@ -1079,32 +1044,38 @@ static lv_i18n_phrase_t no_singulars[] = { {"Banner & Sound", "Banner & Lyd"}, {"Banner only", "Bare banner"}, {"Sound only", "Bare lyd"}, + {"no signal", "ingen signal"}, {NULL, NULL} // End mark }; static lv_i18n_phrase_t no_plurals_one[] = { - {"%d active chat(s)", "1 aktiv chat"}, {"%d of %d nodes online", "1 node online"}, {NULL, NULL} // End mark + {"%d active chat(s)", "1 aktiv chat"}, + {"%d of %d nodes online", "1 node online"}, + {NULL, NULL} // End mark }; static lv_i18n_phrase_t no_plurals_other[] = { - {"%d active chat(s)", "%d aktive chat"}, {"%d of %d nodes online", "%d av %d noder online"}, {NULL, NULL} // End mark + {"%d active chat(s)", "%d aktive chat"}, + {"%d of %d nodes online", "%d av %d noder online"}, + {NULL, NULL} // End mark }; static uint8_t no_plural_fn(int32_t num) { - uint32_t n = op_n(num); - UNUSED(n); + uint32_t n = op_n(num); UNUSED(n); - if ((n == 1)) - return LV_I18N_PLURAL_TYPE_ONE; + + if ((n == 1)) return LV_I18N_PLURAL_TYPE_ONE; return LV_I18N_PLURAL_TYPE_OTHER; } -static const lv_i18n_lang_t no_lang = {.locale_name = "no", - .singulars = no_singulars, - .plurals[LV_I18N_PLURAL_TYPE_ONE] = no_plurals_one, - .plurals[LV_I18N_PLURAL_TYPE_OTHER] = no_plurals_other, - .locale_plural_fn = no_plural_fn}; +static const lv_i18n_lang_t no_lang = { + .locale_name = "no", + .singulars = no_singulars, + .plurals[LV_I18N_PLURAL_TYPE_ONE] = no_plurals_one, + .plurals[LV_I18N_PLURAL_TYPE_OTHER] = no_plurals_other, + .locale_plural_fn = no_plural_fn +}; static lv_i18n_phrase_t pl_singulars[] = { {"no new messages", "Brak wiadomości"}, @@ -1210,30 +1181,27 @@ static lv_i18n_phrase_t pl_singulars[] = { {NULL, NULL} // End mark }; + + static uint8_t pl_plural_fn(int32_t num) { - uint32_t n = op_n(num); - UNUSED(n); - uint32_t i = op_i(n); - UNUSED(i); - uint32_t v = op_v(n); - UNUSED(v); + uint32_t n = op_n(num); UNUSED(n); + uint32_t i = op_i(n); UNUSED(i); + uint32_t v = op_v(n); UNUSED(v); uint32_t i10 = i % 10; uint32_t i100 = i % 100; - if ((i == 1 && v == 0)) - return LV_I18N_PLURAL_TYPE_ONE; - if ((v == 0 && (2 <= i10 && i10 <= 4) && (!(12 <= i100 && i100 <= 14)))) - return LV_I18N_PLURAL_TYPE_FEW; - if ((v == 0 && i != 1 && (0 <= i10 && i10 <= 1)) || (v == 0 && (5 <= i10 && i10 <= 9)) || - (v == 0 && (12 <= i100 && i100 <= 14))) - return LV_I18N_PLURAL_TYPE_MANY; + if ((i == 1 && v == 0)) return LV_I18N_PLURAL_TYPE_ONE; + if ((v == 0 && (2 <= i10 && i10 <= 4) && (!(12 <= i100 && i100 <= 14)))) return LV_I18N_PLURAL_TYPE_FEW; + if ((v == 0 && i != 1 && (0 <= i10 && i10 <= 1)) || (v == 0 && (5 <= i10 && i10 <= 9)) || (v == 0 && (12 <= i100 && i100 <= 14))) return LV_I18N_PLURAL_TYPE_MANY; return LV_I18N_PLURAL_TYPE_OTHER; } -static const lv_i18n_lang_t pl_lang = {.locale_name = "pl", - .singulars = pl_singulars, +static const lv_i18n_lang_t pl_lang = { + .locale_name = "pl", + .singulars = pl_singulars, - .locale_plural_fn = pl_plural_fn}; + .locale_plural_fn = pl_plural_fn +}; static lv_i18n_phrase_t pt_singulars[] = { {"no new messages", "Nenhuma mensagem"}, @@ -1273,11 +1241,8 @@ static lv_i18n_phrase_t pt_singulars[] = { {"Short Name", "Nome Curto"}, {"Long Name", "Nome Longo"}, {"", ""}, - {"LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO", - "LONG FAST\nLONG SLOW\n-- desativado --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO"}, - {"Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", - "Cliente\nCliente Mudo\nRoteador\n-- desativado --\nRepetidor\nRastreador\nSensor\nTAK\nCliente Oculto\nAchados e " - "Perdidos\nRastreador TAK"}, + {"LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO", "LONG FAST\nLONG SLOW\n-- desativado --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO"}, + {"Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", "Cliente\nCliente Mudo\nRoteador\n-- desativado --\nRepetidor\nRastreador\nSensor\nTAK\nCliente Oculto\nAchados e Perdidos\nRastreador TAK"}, {"Brightness: 60%", "Brilho de Tela: 60%"}, {"Dark\nLight", "Escuro\nClaro"}, {"Timeout: 60s", "Tempo Máximo: 60s"}, @@ -1361,50 +1326,49 @@ static lv_i18n_phrase_t pt_singulars[] = { }; static lv_i18n_phrase_t pt_plurals_one[] = { - {"%d of %d nodes online", "1 dispositivo online"}, {NULL, NULL} // End mark + {"%d of %d nodes online", "1 dispositivo online"}, + {NULL, NULL} // End mark }; static lv_i18n_phrase_t pt_plurals_other[] = { - {"%d of %d nodes online", "%d/%d dispositivos online"}, {NULL, NULL} // End mark + {"%d of %d nodes online", "%d/%d dispositivos online"}, + {NULL, NULL} // End mark }; static uint8_t pt_plural_fn(int32_t num) { - uint32_t n = op_n(num); - UNUSED(n); - uint32_t i = op_i(n); - UNUSED(i); + uint32_t n = op_n(num); UNUSED(n); + uint32_t i = op_i(n); UNUSED(i); - if (((0 <= i && i <= 1))) - return LV_I18N_PLURAL_TYPE_ONE; + if (((0 <= i && i <= 1))) return LV_I18N_PLURAL_TYPE_ONE; return LV_I18N_PLURAL_TYPE_OTHER; } -static const lv_i18n_lang_t pt_lang = {.locale_name = "pt", - .singulars = pt_singulars, - .plurals[LV_I18N_PLURAL_TYPE_ONE] = pt_plurals_one, - .plurals[LV_I18N_PLURAL_TYPE_OTHER] = pt_plurals_other, - .locale_plural_fn = pt_plural_fn}; +static const lv_i18n_lang_t pt_lang = { + .locale_name = "pt", + .singulars = pt_singulars, + .plurals[LV_I18N_PLURAL_TYPE_ONE] = pt_plurals_one, + .plurals[LV_I18N_PLURAL_TYPE_OTHER] = pt_plurals_other, + .locale_plural_fn = pt_plural_fn +}; static uint8_t ro_plural_fn(int32_t num) { - uint32_t n = op_n(num); - UNUSED(n); - uint32_t i = op_i(n); - UNUSED(i); - uint32_t v = op_v(n); - UNUSED(v); + uint32_t n = op_n(num); UNUSED(n); + uint32_t i = op_i(n); UNUSED(i); + uint32_t v = op_v(n); UNUSED(v); uint32_t n100 = n % 100; - if ((i == 1 && v == 0)) - return LV_I18N_PLURAL_TYPE_ONE; - if ((v != 0) || (n == 0) || (n != 1 && (1 <= n100 && n100 <= 19))) - return LV_I18N_PLURAL_TYPE_FEW; + if ((i == 1 && v == 0)) return LV_I18N_PLURAL_TYPE_ONE; + if ((v != 0) || (n == 0) || (n != 1 && (1 <= n100 && n100 <= 19))) return LV_I18N_PLURAL_TYPE_FEW; return LV_I18N_PLURAL_TYPE_OTHER; } -static const lv_i18n_lang_t ro_lang = {.locale_name = "ro", +static const lv_i18n_lang_t ro_lang = { + .locale_name = "ro", + - .locale_plural_fn = ro_plural_fn}; + .locale_plural_fn = ro_plural_fn +}; static lv_i18n_phrase_t ru_singulars[] = { {"no new messages", "нет новых сообщений"}, @@ -1471,10 +1435,8 @@ static lv_i18n_phrase_t ru_singulars[] = { {"Start", "Начать"}, {"Theme: %s", "Тема: %s"}, {"Packet Statistics", "Статистика пакетов"}, - {"LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO", - "LONG FAST\nLONG SLOW\n-- устарело --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO"}, - {"Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", - "Client\nClient Mute\nRouter\n-- устарело --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker"}, + {"LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO", "LONG FAST\nLONG SLOW\n-- устарело --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO"}, + {"Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", "Client\nClient Mute\nRouter\n-- устарело --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker"}, {"Dark\nLight", "Тёмная\nСветлая"}, {"Cancel", "Отмена"}, {"Brightness: %d%%", "Яркость: %d%%"}, @@ -1529,29 +1491,27 @@ static lv_i18n_phrase_t ru_singulars[] = { {NULL, NULL} // End mark }; + + static uint8_t ru_plural_fn(int32_t num) { - uint32_t n = op_n(num); - UNUSED(n); - uint32_t v = op_v(n); - UNUSED(v); - uint32_t i = op_i(n); - UNUSED(i); + uint32_t n = op_n(num); UNUSED(n); + uint32_t v = op_v(n); UNUSED(v); + uint32_t i = op_i(n); UNUSED(i); uint32_t i10 = i % 10; uint32_t i100 = i % 100; - if ((v == 0 && i10 == 1 && i100 != 11)) - return LV_I18N_PLURAL_TYPE_ONE; - if ((v == 0 && (2 <= i10 && i10 <= 4) && (!(12 <= i100 && i100 <= 14)))) - return LV_I18N_PLURAL_TYPE_FEW; - if ((v == 0 && i10 == 0) || (v == 0 && (5 <= i10 && i10 <= 9)) || (v == 0 && (11 <= i100 && i100 <= 14))) - return LV_I18N_PLURAL_TYPE_MANY; + if ((v == 0 && i10 == 1 && i100 != 11)) return LV_I18N_PLURAL_TYPE_ONE; + if ((v == 0 && (2 <= i10 && i10 <= 4) && (!(12 <= i100 && i100 <= 14)))) return LV_I18N_PLURAL_TYPE_FEW; + if ((v == 0 && i10 == 0) || (v == 0 && (5 <= i10 && i10 <= 9)) || (v == 0 && (11 <= i100 && i100 <= 14))) return LV_I18N_PLURAL_TYPE_MANY; return LV_I18N_PLURAL_TYPE_OTHER; } -static const lv_i18n_lang_t ru_lang = {.locale_name = "ru", - .singulars = ru_singulars, +static const lv_i18n_lang_t ru_lang = { + .locale_name = "ru", + .singulars = ru_singulars, - .locale_plural_fn = ru_plural_fn}; + .locale_plural_fn = ru_plural_fn +}; static lv_i18n_phrase_t se_singulars[] = { {"no new messages", "inga nya meddelanden"}, @@ -1589,12 +1549,8 @@ static lv_i18n_phrase_t se_singulars[] = { {"Short Name", "Kort Namn"}, {"Long Name", "Långt Namn"}, {"", ""}, - {"LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO", - "Lång räckvidd / Snabb\nLång räckvidd / Långsam\n-- utfasad --\nMedium Räckvidd / Långsam\nMedium räckvidd / Snabb\nKort " - "räckvidd / Långsam\nKort räckvidd / Snabb\nLång räckvidd / Måttlig\nKort räckvidd / Turbo"}, - {"Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", - "Klient\nKlient Stum\nRouter\n-- utfasad --\nRelästation\nSpårare\nSensor\nTAK\nKlient Gömd\nFörlorad & hittad\nTAK " - "Spårare"}, + {"LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO", "Lång räckvidd / Snabb\nLång räckvidd / Långsam\n-- utfasad --\nMedium Räckvidd / Långsam\nMedium räckvidd / Snabb\nKort räckvidd / Långsam\nKort räckvidd / Snabb\nLång räckvidd / Måttlig\nKort räckvidd / Turbo"}, + {"Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", "Klient\nKlient Stum\nRouter\n-- utfasad --\nRelästation\nSpårare\nSensor\nTAK\nKlient Gömd\nFörlorad & hittad\nTAK Spårare"}, {"Brightness: 60%", "Ljusstyrka: 60%"}, {"Dark\nLight", "Mörkt\nLjust"}, {"Screen Lock", "Bildskärms Lås"}, @@ -1685,30 +1641,220 @@ static lv_i18n_phrase_t se_singulars[] = { }; static lv_i18n_phrase_t se_plurals_one[] = { - {"%d active chat(s)", "1 aktiv chatt"}, {"%d of %d nodes online", "1 nod online"}, {NULL, NULL} // End mark + {"%d active chat(s)", "1 aktiv chatt"}, + {"%d of %d nodes online", "1 nod online"}, + {NULL, NULL} // End mark }; static lv_i18n_phrase_t se_plurals_other[] = { - {"%d active chat(s)", "%d aktiva chattar"}, {"%d of %d nodes online", "%d av %d noder online"}, {NULL, NULL} // End mark + {"%d active chat(s)", "%d aktiva chattar"}, + {"%d of %d nodes online", "%d av %d noder online"}, + {NULL, NULL} // End mark }; static uint8_t se_plural_fn(int32_t num) { - uint32_t n = op_n(num); - UNUSED(n); + uint32_t n = op_n(num); UNUSED(n); - if ((n == 1)) - return LV_I18N_PLURAL_TYPE_ONE; - if ((n == 2)) - return LV_I18N_PLURAL_TYPE_TWO; + + if ((n == 1)) return LV_I18N_PLURAL_TYPE_ONE; + if ((n == 2)) return LV_I18N_PLURAL_TYPE_TWO; return LV_I18N_PLURAL_TYPE_OTHER; } -static const lv_i18n_lang_t se_lang = {.locale_name = "se", - .singulars = se_singulars, - .plurals[LV_I18N_PLURAL_TYPE_ONE] = se_plurals_one, - .plurals[LV_I18N_PLURAL_TYPE_OTHER] = se_plurals_other, - .locale_plural_fn = se_plural_fn}; +static const lv_i18n_lang_t se_lang = { + .locale_name = "se", + .singulars = se_singulars, + .plurals[LV_I18N_PLURAL_TYPE_ONE] = se_plurals_one, + .plurals[LV_I18N_PLURAL_TYPE_OTHER] = se_plurals_other, + .locale_plural_fn = se_plural_fn +}; + +static lv_i18n_phrase_t sl_singulars[] = { + {"no new messages", "ni novih sporočil"}, + {"1 of 1 nodes online", "1 (od 1) vozl. povezano"}, + {"uptime 00:00:00", "prižgan 00:00:00"}, + {"Heap: 0\nLVGL: 0", "Kopica: 0\nLVGL: 0"}, + {"DEL", "Zbriši"}, + {"User name: ", "Uporabniško ime: "}, + {"Modem Preset: LONG FAST", "Modem: LONG FAST"}, + {"Channel: LongFast", "Kanal: LongFast"}, + {"Role: Client", "Vloga: Odjemalec"}, + {"Screen Timeout: 60s", "Izklop zaslona po: 60s"}, + {"Screen Lock: off", "Zaklep zaslona: izključeno"}, + {"Screen Brightness: 60%", "Svetlost zaslona: 60%"}, + {"Theme: Dark", "Tema: Temna"}, + {"Screen Calibration: default", "Kalibracija zaslona: privzeto"}, + {"Input Control: none/none", "Nadzor vnosa: -/-"}, + {"Message Alert Buzzer: on", "Opozorila za sporočila: vključeno"}, + {"Language: English", "Jezik: "}, + {"Configuration Reset", "Ponastavi nastavitve"}, + {"Reboot / Shutdown", "Ponovni zagon / Izklop"}, + {"Mesh Detector", "Detektor mreže"}, + {"Signal Scanner", "Skener signala"}, + {"Trace Route", "Iskanje poti"}, + {"Neighbors", "Sosedi"}, + {"Statistics", "Statistika"}, + {"Packet Log", "Dnevnik paketov"}, + {"Group Channels", "Skupinski kanali"}, + {"no messages", "ni sporočil"}, + {"Settings & Tools", "Nastavitve in orodja"}, + {"Settings (advanced)", "Nastavitve (napredno)"}, + {"Locations Map", "Zemljevid lokacij"}, + {"no chats", "ni pogovorov"}, + {"Node Search", "Iskanje vozlišč"}, + {"Packet Statistics", "Statistika paketov"}, + {"Node Options", "Možnosti vozlišč"}, + {"Short Name", "Kratko ime"}, + {"Long Name", "Dolgo ime"}, + {"", ""}, + {"LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO", "LONG FAST\nLONG SLOW\n-- zastarelo --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO"}, + {"Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", "Odjemalec\nNemi odjemalec\nUsmerjevalnik\n-- zastarelo --\nRepetitor\nSledilnik\nSenzor\nTAK\nSkriti odjemalec\nIzgubljeno - najdeno\nTAK sledilnik"}, + {"Client\nClient Mute\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", "Odjemalec\nNemi odjemalec\nSledilnik\nSenzor\nTAK\nSkriti odjemalec\nIzgubljeno - najdeno\nTAK sledilnik"}, + {"Brightness: 60%", "Svetlost: 60%"}, + {"Dark\nLight", "Temna\nSvetla"}, + {"Timeout: 60s", "Izklop zaslona po: 60s"}, + {"Screen Lock", "Zaklep zaslona"}, + {"Lock PIN", "PIN"}, + {"Mouse", "Miš"}, + {"none", "-"}, + {"Keyboard", "Tipkovnica"}, + {"Message Alert", "Opozorila za sporočila"}, + {"Util %0.1f%% Air %0.1f%%", "Upor. kanala %0.1f%% Čas v zraku %0.1f%%"}, + {"Ringtone", "Zvonenje"}, + {"Default", "Privzeto"}, + {"Zone", "Območje"}, + {"City", "Mesto"}, + {"NodeDB Reset\nFactory Reset", "Ponastavitev NodeDB\nTovarniška ponastavitev"}, + {"Channel Name", "Ime kanala"}, + {"Pre-shared Key", "PSK ključ"}, + {"Unknown", "Neznano"}, + {"Offline", "Ni povezave"}, + {"Public Key", "Javni ključ"}, + {"Hops away", "Skoki"}, + {"MQTT", "MQTT"}, + {"Position", "Pozicija"}, + {"Name", "Ime"}, + {"Active Chat", "Aktiven pogovor"}, + {"Telemetry", "Telemetrija"}, + {"Start", "Start"}, + {"New Message from\\n", "Novo sporočilo od\\n"}, + {"Resynch...", "Sinhronizacija..."}, + {"OK", "OK"}, + {"Cancel", "Prekliči"}, + {"FrequencySlot: %d (%g MHz)", "Frekv. okno: %d (%g MHz)"}, + {"Brightness: %d%%", "Svetlost: %d%%"}, + {"Timeout: off", "Izklop zaslona po: izključeno"}, + {"Timeout: %ds", "Izklop zaslona po: %ds"}, + {"Screen Calibration: %s", "Kalibracija zaslona %s"}, + {"done", "končano"}, + {"default", "privzeto"}, + {"Stop", "Stop"}, + {"choose\nnode", "izberi\nvozlišče"}, + {"choose target node", "izberi ciljno vozlišče"}, + {"heard: !%08x", "slišano: !%08x"}, + {"Packet Log: %d", "Dnevnik paketa: %d"}, + {"Language: %s", "Jezik: %s"}, + {"Screen Timeout: off", "Izklop zaslona po: izključeno"}, + {"Screen Timeout: %ds", "Izklop zaslona po: %ds"}, + {"Screen Brightness: %d%%", "Svetlost: %d%%"}, + {"Theme: %s", "Tema: %s"}, + {"User name: %s", "Uporabniško ime: %s"}, + {"Device Role: %s", "Vloga naprave"}, + {"Region: %s", "Regija: %s"}, + {"Modem Preset: %s", "Modem: %s"}, + {"Channel: %s", "Ime kanala: %s"}, + {"Screen Lock: %s", "Zaklep zaslona: %s"}, + {"on", "vključeno"}, + {"off", "izključeno"}, + {"Message Alert: %s", "Opozorila za sporočila: %s"}, + {"hops: %d", "skoki: %d"}, + {"unknown", "neznano"}, + {"", ""}, + {"%d active chat(s)", "%d aktivnih pogovorov"}, + {"New message from \\n%s", "Novo sporočilo od \\n%s"}, + {"Input Control: %s/%s", "Nadzor vnosa: %s/%s"}, + {"%d of %d nodes online", "%d od %d vozl. povezanih"}, + {"Filtering ...", "Filtriranje..."}, + {"Filter: %d of %d nodes", "Filter: %d od %d vozlišč"}, + {"now", "zdaj"}, + {"%d new message", "%d novih sporočil"}, + {"%d new messages", "%d novih sporočil"}, + {"uptime: %02d:%02d:%02d", "prižgan %02d:%02d:%02d"}, + {"Heap: %d (%d%%)\nLVGL: %d (%d%%)", "Kopica: %d (%d%%)\nLVGL: %d (%d%%)"}, + {"Settings", "Nastavitve"}, + {"Tools", "Orodja"}, + {"Filter", "Filter"}, + {"Highlight", "Označeno"}, + {"Primary Channel", "Primarni kanal"}, + {"Secondary Channels", "Sekundarni kanal"}, + {"Resynch ...", "Sinhronizacija ..."}, + {"Rebooting ...", "Ponovni zagon ..."}, + {"Shutting down ...", "Ugašanje ..."}, + {"silent", "tihi način"}, + {"WiFi: ", "WiFi: "}, + {"LoRa TX off!", "LoRa TX ugasnjen!"}, + {"WiFi pre-shared Key", "WiFi ključ"}, + {"", ""}, + {"Banner & Sound", "Pasica in zvok"}, + {"Banner only", "Samo pasica"}, + {"Sound only", "Samo zvok"}, + {"Lock: off/off", "Zaklep: -/-"}, + {"Settings Lock", "Zaklep nastavitev"}, + {"Lock: %s/%s", "Zaklep: %s/%s"}, + {"Enter Text ...", "Vnesi besedilo ..."}, + {"!Enter Filter ...", "!Vnesi filter ..."}, + {"Enter Filter ...", "Vnesi filter ..."}, + {"region unset", "regija ni nastavljena"}, + {"no signal", "ni signala"}, + {NULL, NULL} // End mark +}; + +static lv_i18n_phrase_t sl_plurals_one[] = { + {"%d active chat(s)", "%d aktiven pogovor"}, + {"%d of %d nodes online", "%d (od %d) vozl. povezano"}, + {NULL, NULL} // End mark +}; + +static lv_i18n_phrase_t sl_plurals_two[] = { + {"%d active chat(s)", "%d aktivna pogovora"}, + {"%d of %d nodes online", "%d (od %d) vozl. povezani"}, + {NULL, NULL} // End mark +}; + +static lv_i18n_phrase_t sl_plurals_three_four[] = { + {"%d active chat(s)", "%d aktivni pogovori"}, + {"%d of %d nodes online", "%d (od %d) vozl. povezana"}, + {NULL, NULL} // End mark +}; + +static lv_i18n_phrase_t sl_plurals_other[] = { + {"%d active chat(s)", "%d aktivnih pogovorov"}, + {"%d of %d nodes online", "%d (od %d) vozl. povezanih"}, + {NULL, NULL} // End mark +}; + +static uint8_t sl_plural_fn(int32_t num) +{ + uint32_t n = op_n(num); UNUSED(n); + uint32_t i = op_i(n); UNUSED(i); + uint32_t f = op_f(n); UNUSED(f); + + if ((n == 1)) return LV_I18N_PLURAL_TYPE_ONE; + if ((n == 2)) return LV_I18N_PLURAL_TYPE_TWO; + if ((n == 3) || (n == 4)) return LV_I18N_PLURAL_TYPE_FEW; + return LV_I18N_PLURAL_TYPE_OTHER; +} + +static const lv_i18n_lang_t sl_lang = { + .locale_name = "sl", + .singulars = sl_singulars, + .plurals[LV_I18N_PLURAL_TYPE_ONE] = sl_plurals_one, + .plurals[LV_I18N_PLURAL_TYPE_TWO] = sl_plurals_two, + .plurals[LV_I18N_PLURAL_TYPE_FEW] = sl_plurals_three_four, + .plurals[LV_I18N_PLURAL_TYPE_OTHER] = sl_plurals_other, + .locale_plural_fn = sl_plural_fn +}; static lv_i18n_phrase_t sr_singulars[] = { {"no new messages", "nema novih poruka"}, @@ -1837,58 +1983,73 @@ static lv_i18n_phrase_t sr_singulars[] = { {NULL, NULL} // End mark }; + + static uint8_t sr_plural_fn(int32_t num) { - uint32_t n = op_n(num); - UNUSED(n); - uint32_t v = op_v(n); - UNUSED(v); - uint32_t i = op_i(n); - UNUSED(i); - uint32_t f = op_f(n); - UNUSED(f); + uint32_t n = op_n(num); UNUSED(n); + uint32_t v = op_v(n); UNUSED(v); + uint32_t i = op_i(n); UNUSED(i); + uint32_t f = op_f(n); UNUSED(f); uint32_t i10 = i % 10; uint32_t i100 = i % 100; uint32_t f10 = f % 10; uint32_t f100 = f % 100; - if ((v == 0 && i10 == 1 && i100 != 11) || (f10 == 1 && f100 != 11)) - return LV_I18N_PLURAL_TYPE_ONE; - if ((v == 0 && (2 <= i10 && i10 <= 4) && (!(12 <= i100 && i100 <= 14))) || - ((2 <= f10 && f10 <= 4) && (!(12 <= f100 && f100 <= 14)))) - return LV_I18N_PLURAL_TYPE_FEW; + if ((v == 0 && i10 == 1 && i100 != 11) || (f10 == 1 && f100 != 11)) return LV_I18N_PLURAL_TYPE_ONE; + if ((v == 0 && (2 <= i10 && i10 <= 4) && (!(12 <= i100 && i100 <= 14))) || ((2 <= f10 && f10 <= 4) && (!(12 <= f100 && f100 <= 14)))) return LV_I18N_PLURAL_TYPE_FEW; return LV_I18N_PLURAL_TYPE_OTHER; } -static const lv_i18n_lang_t sr_lang = {.locale_name = "sr", - .singulars = sr_singulars, +static const lv_i18n_lang_t sr_lang = { + .locale_name = "sr", + .singulars = sr_singulars, - .locale_plural_fn = sr_plural_fn}; + .locale_plural_fn = sr_plural_fn +}; static uint8_t tr_plural_fn(int32_t num) { - uint32_t n = op_n(num); - UNUSED(n); + uint32_t n = op_n(num); UNUSED(n); + - if ((n == 1)) - return LV_I18N_PLURAL_TYPE_ONE; + if ((n == 1)) return LV_I18N_PLURAL_TYPE_ONE; return LV_I18N_PLURAL_TYPE_OTHER; } -static const lv_i18n_lang_t tr_lang = {.locale_name = "tr", +static const lv_i18n_lang_t tr_lang = { + .locale_name = "tr", - .locale_plural_fn = tr_plural_fn}; + + .locale_plural_fn = tr_plural_fn +}; const lv_i18n_language_pack_t lv_i18n_language_pack[] = { - &en_lang, &de_lang, &es_lang, &fi_lang, &fr_lang, &it_lang, &nl_lang, &no_lang, - &pl_lang, &pt_lang, &ro_lang, &ru_lang, &se_lang, &sr_lang, &tr_lang, + &en_lang, + &de_lang, + &es_lang, + &fi_lang, + &fr_lang, + &it_lang, + &nl_lang, + &no_lang, + &pl_lang, + &pt_lang, + &ro_lang, + &ru_lang, + &se_lang, + &sl_lang, + &sr_lang, + &tr_lang, NULL // End mark }; //////////////////////////////////////////////////////////////////////////////// + // Internal state -static const lv_i18n_language_pack_t *current_lang_pack; -static const lv_i18n_lang_t *current_lang; +static const lv_i18n_language_pack_t * current_lang_pack; +static const lv_i18n_lang_t * current_lang; + /** * Reset internal state. For testing. @@ -1903,15 +2064,13 @@ void __lv_i18n_reset(void) * Set the languages for internationalization * @param langs pointer to the array of languages. (Last element has to be `NULL`) */ -int lv_i18n_init(const lv_i18n_language_pack_t *langs) +int lv_i18n_init(const lv_i18n_language_pack_t * langs) { - if (langs == NULL) - return -1; - if (langs[0] == NULL) - return -1; + if(langs == NULL) return -1; + if(langs[0] == NULL) return -1; current_lang_pack = langs; - current_lang = langs[0]; /*Automatically select the first language*/ + current_lang = langs[0]; /*Automatically select the first language*/ return 0; } @@ -1919,16 +2078,15 @@ int lv_i18n_init(const lv_i18n_language_pack_t *langs) * Change the localization (language) * @param l_name name of the translation locale to use. E.g. "en-GB" */ -int lv_i18n_set_locale(const char *l_name) +int lv_i18n_set_locale(const char * l_name) { - if (current_lang_pack == NULL) - return -1; + if(current_lang_pack == NULL) return -1; uint16_t i; - for (i = 0; current_lang_pack[i] != NULL; i++) { + for(i = 0; current_lang_pack[i] != NULL; i++) { // Found -> finish - if (strcmp(current_lang_pack[i]->locale_name, l_name) == 0) { + if(strcmp(current_lang_pack[i]->locale_name, l_name) == 0) { current_lang = current_lang_pack[i]; return 0; } @@ -1937,50 +2095,47 @@ int lv_i18n_set_locale(const char *l_name) return -1; } -static const char *__lv_i18n_get_text_core(lv_i18n_phrase_t *trans, const char *msg_id) + +static const char * __lv_i18n_get_text_core(lv_i18n_phrase_t * trans, const char * msg_id) { uint16_t i; - for (i = 0; trans[i].msg_id != NULL; i++) { - if (strcmp(trans[i].msg_id, msg_id) == 0) { + for(i = 0; trans[i].msg_id != NULL; i++) { + if(strcmp(trans[i].msg_id, msg_id) == 0) { /*The msg_id has found. Check the translation*/ - if (trans[i].translation) - return trans[i].translation; + if(trans[i].translation) return trans[i].translation; } } return NULL; } + /** * Get the translation from a message ID * @param msg_id message ID * @return the translation of `msg_id` on the set local */ -const char *lv_i18n_get_text(const char *msg_id) +const char * lv_i18n_get_text(const char * msg_id) { - if (current_lang == NULL) - return msg_id; + if(current_lang == NULL) return msg_id; - const lv_i18n_lang_t *lang = current_lang; - const void *txt; + const lv_i18n_lang_t * lang = current_lang; + const void * txt; // Search in current locale - if (lang->singulars != NULL) { + if(lang->singulars != NULL) { txt = __lv_i18n_get_text_core(lang->singulars, msg_id); - if (txt != NULL) - return txt; + if (txt != NULL) return txt; } // Try to fallback - if (lang == current_lang_pack[0]) - return msg_id; + if(lang == current_lang_pack[0]) return msg_id; lang = current_lang_pack[0]; // Repeat search for default locale - if (lang->singulars != NULL) { + if(lang->singulars != NULL) { txt = __lv_i18n_get_text_core(lang->singulars, msg_id); - if (txt != NULL) - return txt; + if (txt != NULL) return txt; } return msg_id; @@ -1992,39 +2147,35 @@ const char *lv_i18n_get_text(const char *msg_id) * @param num an integer to select the correct plural form * @return the translation of `msg_id` on the set local */ -const char *lv_i18n_get_text_plural(const char *msg_id, int32_t num) +const char * lv_i18n_get_text_plural(const char * msg_id, int32_t num) { - if (current_lang == NULL) - return msg_id; + if(current_lang == NULL) return msg_id; - const lv_i18n_lang_t *lang = current_lang; - const void *txt; + const lv_i18n_lang_t * lang = current_lang; + const void * txt; lv_i18n_plural_type_t ptype; // Search in current locale - if (lang->locale_plural_fn != NULL) { + if(lang->locale_plural_fn != NULL) { ptype = lang->locale_plural_fn(num); - if (lang->plurals[ptype] != NULL) { + if(lang->plurals[ptype] != NULL) { txt = __lv_i18n_get_text_core(lang->plurals[ptype], msg_id); - if (txt != NULL) - return txt; + if (txt != NULL) return txt; } } // Try to fallback - if (lang == current_lang_pack[0]) - return msg_id; + if(lang == current_lang_pack[0]) return msg_id; lang = current_lang_pack[0]; // Repeat search for default locale - if (lang->locale_plural_fn != NULL) { + if(lang->locale_plural_fn != NULL) { ptype = lang->locale_plural_fn(num); - if (lang->plurals[ptype] != NULL) { + if(lang->plurals[ptype] != NULL) { txt = __lv_i18n_get_text_core(lang->plurals[ptype], msg_id); - if (txt != NULL) - return txt; + if (txt != NULL) return txt; } } @@ -2035,9 +2186,8 @@ const char *lv_i18n_get_text_plural(const char *msg_id, int32_t num) * Get the name of the currently used locale. * @return name of the currently used locale. E.g. "en-GB" */ -const char *lv_i18n_get_current_locale(void) +const char * lv_i18n_get_current_locale(void) { - if (!current_lang) - return NULL; + if(!current_lang) return NULL; return current_lang->locale_name; } diff --git a/locale/sl.yml b/locale/sl.yml new file mode 100644 index 00000000..907f8bc8 --- /dev/null +++ b/locale/sl.yml @@ -0,0 +1,152 @@ +sl: + no new messages: ni novih sporočil + 1 of 1 nodes online: 1 od 1 vozlišč povezanih + 'uptime 00:00:00': 'prižgan 00:00:00' + "Heap: 0\nLVGL: 0": |- + Kopica: 0 + LVGL: 0 + DEL: Zbriši + 'User name: ': 'Uporabniško ime: ' + 'Modem Preset: LONG FAST': 'Modem: LONG FAST' + 'Channel: LongFast': 'Kanal: LongFast' + 'Role: Client': 'Vloga: Odjemalec' + 'Screen Timeout: 60s': 'Izklop zaslona po: 60s' + 'Screen Lock: off': 'Zaklepanje zaslona: izključeno' + 'Screen Brightness: 60%': 'Svetlost zaslona: 60%' + 'Theme: Dark': 'Tema: Temna' + 'Screen Calibration: default': 'Kalibracija zaslona: privzeto' + 'Input Control: none/none': 'Nadzor vnosa: nič/nič' + 'Message Alert Buzzer: on': 'Opozorila za sporočila: vključeno' + 'Language: English': 'Jezik: ' + Configuration Reset: Ponastavi nastavitve + Reboot / Shutdown: Ponovni zagon / Izklop + Mesh Detector: Detektor mreže + Signal Scanner: Skener signala + Trace Route: Iskanje poti + Neighbors: Sosedi + Statistics: Statistika + Packet Log: Dnevnik paketov + Meshtastic: ~ + Group Channels: Skupinski kanali + no messages: ni sporočil + Settings & Tools: Nastavitve in orodja + Settings (advanced): Nastavitve (napredno) + Locations Map: Zemljevid lokacij + no chats: ni pogovorov + Node Search: Iskanje vozlišč + Packet Statistics: Statistika paketov + Node Options: Možnosti vozlišč + Short Name: Kratko ime + Long Name: Dolgo ime + : + "LONG FAST\nLONG SLOW\n-- zastarelo --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO": "LONG FAST\nLONG SLOW\n-- zastarelo --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO" + "Odjemalec\nNemi odjemalec\nUsmerjevalnik\n-- zastarelo --\nRepetitor\nSledilnik\nSenzor\nTAK\nSkriti odjemalec\nIzgubljeno - najdeno\nTAK sledilnik": ~ + 'Brightness: 60%': 'Svetlost: 60%' + "Dark\nLight": Temna\nSvetla + 'Timeout: 60s': 'Izklop zaslona po: 60s' + Screen Lock: Zaklepanje zaslona + Lock PIN: PIN koda za zaklep + Mouse: Miš + none: nič + Keyboard: Tipkovnica + Message Alert: Opozorila za sporočila + Ringtone: Zvonenje + Default: Privzeto + Zone: Območje + City: Mesto + "NodeDB Reset\nFactory Reset": |- + Ponastavitev NodeDB + Tovarniška ponastavitev + Channel Name: Ime kanala + Pre-shared Key: PSK ključ + Unknown: Neznano + Offline: Ni povezave + Public Key: Javni ključ + Hops away: Skoki + MQTT: MQTT + Position: Pozicija + Name: Ime + Active Chat: Aktiven pogovor + Telemetry: Telemetrija + IAQ: ~ + Start: Start + New Message from\n: |- + Novo sporočilo od + : + Resynch...: Sinhronizacija... + OK: OK + Cancel: Prekliči + 'FrequencySlot: %d (%g MHz)': 'Frekvenčno okno: %d (%g MHz)' + 'Brightness: %d%%': 'Svetlost: %d%%' + 'Timeout: off': 'Izklop zaslona po: izključeno' + 'Timeout: %ds': 'Izklop zaslona po: %ds' + 'Screen Calibration: %s': Kalibracija zaslona %s + done: končano + default: privzeto + Stop: Stop + "choose\nnode": |- + izberi + vozlišče + choose target node: izberi ciljno vozlišče + 'heard: !%08x': 'slišano: !%08x' + 'Packet Log: %d': 'Dnevnik paketa: %d' + 'Language: %s': 'Jezik: %s' + 'Screen Timeout: off': 'Izklop zaslona po: izključeno' + 'Screen Timeout: %ds': 'Izklop zaslona po: %ds' + 'Screen Brightness: %d%%': 'Svetlost: %d%%' + 'Theme: %s': 'Tema: %s' + 'User name: %s': 'Uporabniško ime: %s' + 'Device Role: %s': Vloga naprave + 'Region: %s': 'Regija: %s' + 'Modem Preset: %s': 'Modem: %s' + 'Channel: %s': 'Ime kanala: %s' + 'Screen Lock: %s': 'Zaklepanje zaslona: %s' + 'on': vključeno + 'off': izključeno + 'Message Alert: %s': 'Opozorila za sporočila: %s' + Util %0.1f%% Air %0.1f%%: ~ + 'hops: %d': 'skoki: %d' + unknown: neznano + : + '%d active chat(s)': '%d aktivnih pogovorov' + New message from \n%s: |- + Novo sporočilo od + %s + 'Input Control: %s/%s': 'Nadzor vnosa: %s/%s' + '%d of %d nodes online': '%d od %d vozlišč povezanih' + Filtering ...: Filtriranje... + 'Filter: %d of %d nodes': 'Filter: %d od %d vozlišč' + now: zdaj + '%d new message': '%d novih sporočil' + '%d new messages': '%d novih sporočil' + 'uptime: %02d:%02d:%02d': 'prižgan %02d:%02d:%02d' + "Heap: %d (%d%%)\nLVGL: %d (%d%%)": |- + Kopica: %d (%d%%) + LVGL: %d (%d%%) + Settings: Nastavitve + Tools: Orodja + Filter: Filter + Highlight: Označeno + Primary Channel: Primarni kanal + Secondary Channels: Sekundarni kanal + Resynch ...: Sinhronizacija ... + Rebooting ...: Ponovni zagon ... + Shutting down ...: Ugašanje ... + LoRa 0.0 MHz: ~ + silent: tihi način + 'WiFi: ': 'WiFi: ' + LoRa TX off!: LoRa TX ugasnjen! + WiFi SSID: ~ + WiFi pre-shared Key: WiFi PSK ključ + 'WiFi: %s': ~ + : + Banner & Sound: Pasica in zvok + Banner only: Samo pasica + Sound only: Samo zvok + 'Lock: off/off': 'Zaklep: izključeno/izključeno' + Settings Lock: Zaklep nastavitev + 'Lock: %s/%s': 'Zaklep: %s/%s' + Enter Text ...: Vnesi besedilo ... + '!Enter Filter ...': '!Vnesi filter ...' + Enter Filter ...: Vnesi filter ... + region unset: regija ni nastavljena diff --git a/source/TFTView_320x240.cpp b/source/TFTView_320x240.cpp index b23627c7..60fa3efc 100644 --- a/source/TFTView_320x240.cpp +++ b/source/TFTView_320x240.cpp @@ -2455,25 +2455,27 @@ uint32_t TFTView_320x240::language2val(meshtastic_Language lang) case meshtastic_Language_SPANISH: return 2; case meshtastic_Language_SWEDISH: - return 12; + return 13; case meshtastic_Language_FINNISH: - return 11; + return 12; case meshtastic_Language_POLISH: return 7; case meshtastic_Language_TURKISH: - return 13; + return 14; case meshtastic_Language_SERBIAN: - return 10; + return 11; case meshtastic_Language_RUSSIAN: return 9; case meshtastic_Language_DUTCH: return 5; case meshtastic_Language_NORWEGIAN: return 6; + case meshtastic_Language_SLOVENIAN: + return 10; case meshtastic_Language_SIMPLIFIED_CHINESE: - return 15; - case meshtastic_Language_TRADITIONAL_CHINESE: return 16; + case meshtastic_Language_TRADITIONAL_CHINESE: + return 17; case meshtastic_Language_GREEK: default: ILOG_WARN("unknown language uiconfig: %d", lang); @@ -2499,15 +2501,15 @@ meshtastic_Language TFTView_320x240::val2language(uint32_t val) return meshtastic_Language_PORTUGUESE; case 2: return meshtastic_Language_SPANISH; - case 12: + case 13: return meshtastic_Language_SWEDISH; - case 11: + case 12: return meshtastic_Language_FINNISH; case 7: return meshtastic_Language_POLISH; - case 13: + case 14: return meshtastic_Language_TURKISH; - case 10: + case 11: return meshtastic_Language_SERBIAN; case 9: return meshtastic_Language_RUSSIAN; @@ -2517,9 +2519,11 @@ meshtastic_Language TFTView_320x240::val2language(uint32_t val) // return meshtastic_Language_GREEK; case 6: return meshtastic_Language_NORWEGIAN; - case 15: - return meshtastic_Language_SIMPLIFIED_CHINESE; + case 10: + return meshtastic_Language_SLOVENIAN; case 16: + return meshtastic_Language_SIMPLIFIED_CHINESE; + case 17: return meshtastic_Language_TRADITIONAL_CHINESE; default: ILOG_WARN("unknown language val: %d", val); @@ -2593,6 +2597,10 @@ void TFTView_320x240::setLocale(meshtastic_Language lang) lv_i18n_set_locale("no"); locale = "el_GR.UTF-8"; break; + case meshtastic_Language_SLOVENIAN: + lv_i18n_set_locale("sl"); + locale = "sl_SI.UTF-8"; + break; case meshtastic_Language_SIMPLIFIED_CHINESE: lv_i18n_set_locale("cn"); locale = "zh_CN.UTF-8";