From d318d960ea07829e013948fb1e2b6f67b6d84510 Mon Sep 17 00:00:00 2001 From: Garth Vander Houwen Date: Thu, 8 May 2025 08:59:24 -0700 Subject: [PATCH] More localization key --- Localizable.xcstrings | 1602 ++++++++--------- Meshtastic/Enums/SerialConfigEnums.swift | 10 +- Meshtastic/Extensions/Date.swift | 10 +- Meshtastic/Tips/MessagesTips.swift | 2 +- Meshtastic/Views/Messages/UserList.swift | 2 +- Meshtastic/Views/Nodes/PaxCounterLog.swift | 22 +- .../Views/Settings/Config/PowerConfig.swift | 8 +- .../Settings/Config/SaveConfigButton.swift | 2 +- Meshtastic/Views/Settings/UserConfig.swift | 2 +- 9 files changed, 776 insertions(+), 884 deletions(-) diff --git a/Localizable.xcstrings b/Localizable.xcstrings index 0df57c57..7f6a5ef9 100644 --- a/Localizable.xcstrings +++ b/Localizable.xcstrings @@ -30,7 +30,8 @@ "value" : "\t%@" } } - } + }, + "shouldTranslate" : false }, " %@" : { "localizations" : { @@ -58,7 +59,8 @@ "value" : "%@" } } - } + }, + "shouldTranslate" : false }, " %@%%" : { "localizations" : { @@ -74,7 +76,8 @@ "value" : " %@%%" } } - } + }, + "shouldTranslate" : false }, ": %@" : { "localizations" : { @@ -102,7 +105,8 @@ "value" : ": %@" } } - } + }, + "shouldTranslate" : false }, ": %d" : { "localizations" : { @@ -130,7 +134,8 @@ "value" : ": %d" } } - } + }, + "shouldTranslate" : false }, "(Re)define PIN_GPS_EN for your board." : { "localizations" : { @@ -186,7 +191,8 @@ "value" : "%@" } } - } + }, + "shouldTranslate" : false }, "%@ - %@" : { "localizations" : { @@ -1983,6 +1989,52 @@ } } }, + "ADC Override" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "ADC Override" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "ADC Override" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Override ADC" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "ADC Override" + } + }, + "se" : { + "stringUnit" : { + "state" : "translated", + "value" : "ADC-överskrivning" + } + }, + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Преписивање ADC-а" + } + }, + "zh-Hant-TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "ADC校正" + } + } + } + }, "Add Channel" : { "localizations" : { "it" : { @@ -2322,6 +2374,92 @@ } } }, + "After config values save the node will reboot." : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nach dem Ändern der Einstellungen wird das Gerät neu starten." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Une fois la configuration sauvegardée, le noeud redémarrera." + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "לאחר שמירת הגדרות המכשיר יתחיל מחדש." + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dopo il salvataggio dei valori di configurazione, il nodo si riavvia." + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Po zapisaniu wartości konfiguracji węzeł zostanie zrestartowany." + } + }, + "se" : { + "stringUnit" : { + "state" : "translated", + "value" : "Efter att konfigurationsvärdena sparats kommer noden att starta om." + } + }, + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Након што сачувате вредности конфигурације, чвор ће се поново покренути." + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "节点将会在保存配置后重启。" + } + }, + "zh-Hant-TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "節點將會在設定儲存後重啟。" + } + } + } + }, + "Afternoon" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nachmittag" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pomeriggio" + } + }, + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Пре подне" + } + }, + "zh-Hant-TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "上午" + } + } + } + }, "Airtime" : { "localizations" : { "de" : { @@ -3684,6 +3822,58 @@ } } }, + "Battery" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Batterie" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "Battery" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Batteria" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Battery" + } + }, + "se" : { + "stringUnit" : { + "state" : "translated", + "value" : "Batteri" + } + }, + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Батерија" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "电池" + } + }, + "zh-Hant-TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "電池" + } + } + } + }, "Battery Level" : { "localizations" : { "de" : { @@ -3798,6 +3988,34 @@ } } }, + "BLE" : { + "localizations" : { + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "BLE" + } + }, + "se" : { + "stringUnit" : { + "state" : "translated", + "value" : "BLE" + } + }, + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "БЛЕ" + } + }, + "zh-Hant-TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "BLE" + } + } + } + }, "BLE Name" : { "localizations" : { "de" : { @@ -5985,110 +6203,6 @@ } } }, - "config.power.adc.multiplier" : { - "localizations" : { - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Multiplier" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Multiplier" - } - }, - "he" : { - "stringUnit" : { - "state" : "translated", - "value" : "Multiplier" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Moltiplicatore" - } - }, - "pl" : { - "stringUnit" : { - "state" : "translated", - "value" : "Multiplier" - } - }, - "se" : { - "stringUnit" : { - "state" : "translated", - "value" : "Multiplikator" - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Мултипликатор" - } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "修正倍數" - } - } - } - }, - "config.power.adc.override" : { - "localizations" : { - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "ADC Override" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "ADC Override" - } - }, - "he" : { - "stringUnit" : { - "state" : "translated", - "value" : "ADC Override" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Override ADC" - } - }, - "pl" : { - "stringUnit" : { - "state" : "translated", - "value" : "ADC Override" - } - }, - "se" : { - "stringUnit" : { - "state" : "translated", - "value" : "ADC-överskrivning" - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Преписивање ADC-а" - } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "ADC校正" - } - } - } - }, "config.power.saving" : { "localizations" : { "de" : { @@ -6199,64 +6313,6 @@ } } }, - "config.power.section.battery" : { - "localizations" : { - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Batterie" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Battery" - } - }, - "he" : { - "stringUnit" : { - "state" : "translated", - "value" : "Battery" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Batteria" - } - }, - "pl" : { - "stringUnit" : { - "state" : "translated", - "value" : "Battery" - } - }, - "se" : { - "stringUnit" : { - "state" : "translated", - "value" : "Batteri" - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Батерија" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "电池" - } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "電池" - } - } - } - }, "config.power.shutdown.on.power.loss" : { "localizations" : { "de" : { @@ -6535,70 +6591,6 @@ } } }, - "config.save.confirm" : { - "localizations" : { - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Nach dem Ändern der Einstellungen wird das Gerät neu starten." - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "After config values save the node will reboot." - } - }, - "fr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Une fois la configuration sauvegardée, le noeud redémarrera." - } - }, - "he" : { - "stringUnit" : { - "state" : "translated", - "value" : "לאחר שמירת הגדרות המכשיר יתחיל מחדש." - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Dopo il salvataggio dei valori di configurazione, il nodo si riavvia." - } - }, - "pl" : { - "stringUnit" : { - "state" : "translated", - "value" : "Po zapisaniu wartości konfiguracji węzeł zostanie zrestartowany." - } - }, - "se" : { - "stringUnit" : { - "state" : "translated", - "value" : "Efter att konfigurationsvärdena sparats kommer noden att starta om." - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Након што сачувате вредности конфигурације, чвор ће се поново покренути." - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "节点将会在保存配置后重启。" - } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "節點將會在設定儲存後重啟。" - } - } - } - }, "Configuration for: %@" : { "localizations" : { "de" : { @@ -7113,7 +7105,7 @@ } } }, - "contacts %@" : { + "Contacts (%@)" : { "localizations" : { "de" : { "stringUnit" : { @@ -7121,12 +7113,6 @@ "value" : "Kontakte (%@)" } }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Contacts (%@)" - } - }, "fr" : { "stringUnit" : { "state" : "translated", @@ -11913,6 +11899,34 @@ } } }, + "Evening" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abend" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sera" + } + }, + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Вече" + } + }, + "zh-Hant-TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "下午" + } + } + } + }, "Exchange Positions" : { "localizations" : { "it" : { @@ -20554,6 +20568,40 @@ } } }, + "Midday" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mittag" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Midday" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mezzogiorno" + } + }, + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Подне" + } + }, + "zh-Hant-TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "中午" + } + } + } + }, "Minimum Distance" : { "localizations" : { "de" : { @@ -20832,6 +20880,34 @@ } } }, + "Morning" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Morgen" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mattina" + } + }, + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Јутро" + } + }, + "zh-Hant-TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "早晨" + } + } + } + }, "MQTT" : { "localizations" : { "it" : { @@ -20988,6 +21064,52 @@ } } }, + "Multiplier" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Multiplier" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "Multiplier" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Moltiplicatore" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Multiplier" + } + }, + "se" : { + "stringUnit" : { + "state" : "translated", + "value" : "Multiplikator" + } + }, + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Мултипликатор" + } + }, + "zh-Hant-TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "修正倍數" + } + } + } + }, "Must be a single emoji" : { "localizations" : { "it" : { @@ -21462,6 +21584,92 @@ } } }, + "Nighttime" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nacht" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Notte" + } + }, + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ноћ" + } + }, + "zh-Hant-TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "夜晚" + } + } + } + }, + "NMEA Positions" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "NMEA Positionen" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Positions NMEA" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "מיקומי NMEA" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Posizioni NMEA" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pozycje NMEA" + } + }, + "se" : { + "stringUnit" : { + "state" : "translated", + "value" : "NMEA-positioner" + } + }, + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "NMEA позиције" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "NMEA 位置" + } + }, + "zh-Hant-TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "NMEA 位置" + } + } + } + }, "No Channel" : { "localizations" : { "de" : { @@ -22888,61 +23096,55 @@ "localizations" : { "de" : { "stringUnit" : { - "state" : "translated", + "state" : "needs_review", "value" : "Eine Stunde" } }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "One Hour" - } - }, "fr" : { "stringUnit" : { - "state" : "translated", + "state" : "needs_review", "value" : "Une heure" } }, "he" : { "stringUnit" : { - "state" : "translated", + "state" : "needs_review", "value" : "שעה אחת" } }, "it" : { "stringUnit" : { - "state" : "translated", + "state" : "needs_review", "value" : "Un'ora" } }, "pl" : { "stringUnit" : { - "state" : "translated", + "state" : "needs_review", "value" : "Jedna Godzina" } }, "se" : { "stringUnit" : { - "state" : "translated", + "state" : "needs_review", "value" : "En Timme" } }, "sr" : { "stringUnit" : { - "state" : "translated", + "state" : "needs_review", "value" : "Један сат" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", + "state" : "needs_review", "value" : "一小时" } }, "zh-Hant-TW" : { "stringUnit" : { - "state" : "translated", + "state" : "needs_review", "value" : "1 小時" } } @@ -23786,40 +23988,6 @@ } } }, - "paxcounter.ble" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "BLE" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "BLE" - } - }, - "se" : { - "stringUnit" : { - "state" : "translated", - "value" : "BLE" - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "БЛЕ" - } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "BLE" - } - } - } - }, "paxcounter.content.unavailable" : { "localizations" : { "en" : { @@ -23922,74 +24090,6 @@ } } }, - "paxcounter.total" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Total PAX" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Totale PAX" - } - }, - "se" : { - "stringUnit" : { - "state" : "translated", - "value" : "Totalt PAX" - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Укупно PAX" - } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "PAX 總數" - } - } - } - }, - "paxcounter.wifi" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "WiFi" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "WiFi" - } - }, - "se" : { - "stringUnit" : { - "state" : "translated", - "value" : "WiFi" - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "ВајФај" - } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "WiFi" - } - } - } - }, "Perform a factory reset on the node you are connected to" : { "localizations" : { "de" : { @@ -25312,6 +25412,64 @@ } } }, + "Protobufs" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Protobufs" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Protobufs" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "Protobufs" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Protobufs" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Protobufy" + } + }, + "se" : { + "stringUnit" : { + "state" : "translated", + "value" : "Protobufs" + } + }, + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Протобафови" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "Protobufs" + } + }, + "zh-Hant-TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "Protobufs" + } + } + } + }, "Public Key" : { "localizations" : { "de" : { @@ -26286,176 +26444,6 @@ } } }, - "relativetimeofday.afternoon" : { - "localizations" : { - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Nachmittag" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Afternoon" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Pomeriggio" - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Пре подне" - } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "上午" - } - } - } - }, - "relativetimeofday.evening" : { - "localizations" : { - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Abend" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Evening" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Sera" - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Вече" - } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "下午" - } - } - } - }, - "relativetimeofday.midday" : { - "localizations" : { - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Mittag" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Midday" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Mezzogiorno" - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Подне" - } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "中午" - } - } - } - }, - "relativetimeofday.morning" : { - "localizations" : { - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Morgen" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Morning" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Mattina" - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Јутро" - } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "早晨" - } - } - } - }, - "relativetimeofday.nighttime" : { - "localizations" : { - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Nacht" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Nighttime" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Notte" - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Ноћ" - } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "夜晚" - } - } - } - }, "Release Notes" : { "localizations" : { "it" : { @@ -29551,262 +29539,6 @@ } } }, - "serial.mode.nmea" : { - "localizations" : { - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "NMEA Positionen" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "NMEA Positions" - } - }, - "fr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Positions NMEA" - } - }, - "he" : { - "stringUnit" : { - "state" : "translated", - "value" : "מיקומי NMEA" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Posizioni NMEA" - } - }, - "pl" : { - "stringUnit" : { - "state" : "translated", - "value" : "Pozycje NMEA" - } - }, - "se" : { - "stringUnit" : { - "state" : "translated", - "value" : "NMEA-positioner" - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "NMEA позиције" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "NMEA 位置" - } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "NMEA 位置" - } - } - } - }, - "serial.mode.proto" : { - "localizations" : { - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Protobufs" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Protobufs" - } - }, - "fr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Protobufs" - } - }, - "he" : { - "stringUnit" : { - "state" : "translated", - "value" : "Protobufs" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Protobufs" - } - }, - "pl" : { - "stringUnit" : { - "state" : "translated", - "value" : "Protobufy" - } - }, - "se" : { - "stringUnit" : { - "state" : "translated", - "value" : "Protobufs" - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Протобафови" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "Protobufs" - } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "Protobufs" - } - } - } - }, - "serial.mode.simple" : { - "localizations" : { - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Einfach" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Simple" - } - }, - "fr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Simple" - } - }, - "he" : { - "stringUnit" : { - "state" : "translated", - "value" : "פשוט" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Semplice" - } - }, - "pl" : { - "stringUnit" : { - "state" : "translated", - "value" : "Prosty" - } - }, - "se" : { - "stringUnit" : { - "state" : "translated", - "value" : "Enkel" - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Једноставни" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "简单" - } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "簡易" - } - } - } - }, - "serial.mode.txtmsg" : { - "localizations" : { - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Textnachricht" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Text Message" - } - }, - "fr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Message texte" - } - }, - "he" : { - "stringUnit" : { - "state" : "translated", - "value" : "הודעת טקסט" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Messaggio di testo" - } - }, - "pl" : { - "stringUnit" : { - "state" : "translated", - "value" : "Wiadomość tekstowa" - } - }, - "se" : { - "stringUnit" : { - "state" : "translated", - "value" : "Textmeddelande" - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Текстуална порука" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "文本消息" - } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "文字訊息" - } - } - } - }, "Series" : { "localizations" : { "it" : { @@ -30709,6 +30441,64 @@ } } }, + "Simple" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Einfach" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Simple" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "פשוט" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Semplice" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Prosty" + } + }, + "se" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enkel" + } + }, + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Једноставни" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "简单" + } + }, + "zh-Hant-TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "簡易" + } + } + } + }, "Singapore 923mhz" : { "localizations" : { "en" : { @@ -32021,6 +31811,64 @@ } } }, + "Text Message" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Textnachricht" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Message texte" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "הודעת טקסט" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Messaggio di testo" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wiadomość tekstowa" + } + }, + "se" : { + "stringUnit" : { + "state" : "translated", + "value" : "Textmeddelande" + } + }, + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Текстуална порука" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "文本消息" + } + }, + "zh-Hant-TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "文字訊息" + } + } + } + }, "tft.full.color.displays" : { "localizations" : { "en" : { @@ -33797,70 +33645,6 @@ } } }, - "tip.messages.message" : { - "localizations" : { - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Du kannst Kanalnachrichten (Gruppenchats) und Direktnachrichten senden und empfangen. Bei jeder Nachricht kannst du lange drücken, um verfügbare Aktionen wie Kopieren, Antworten, Tapback und Löschen sowie Zustelldetails anzuzeigen." - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "You can send and receive channel (group chats) and direct messages. From any message you can long press to see available actions like copy, reply, tapback and delete as well as delivery details." - } - }, - "fr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Vous pouvez envoyer et recevoir des canaux (chats de groupe) et des messages directs. Depuis n’importe quel message, vous pouvez faire un appui long pour voir les actions possibles comme copier, répondre, tapback et supprimer ainsi que les détails de l'envoi." - } - }, - "he" : { - "stringUnit" : { - "state" : "translated", - "value" : "ניתן לשלוח הודעות ערוץ (קבוצות צ'אט) והודעות פרטיות. על הודעה ניתן לעשות לחיצה ארוכה בכדי לראות פעולות אפשריות כגון העתק, הגב, תגובה מהירה, מחק ובנוסף לראות מצב שליחה." - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "È possibile inviare e ricevere messaggi di canale (chat di gruppo) e messaggi diretti. Da qualsiasi messaggio è possibile premere a lungo per visualizzare le azioni disponibili, come copia, risposta, tapback e cancellazione, nonché i dettagli di consegna." - } - }, - "pl" : { - "stringUnit" : { - "state" : "translated", - "value" : "You can send and receive channel (group chats) and direct messages. From any message you can long press to see available actions like copy, reply, tapback and delete as well as delivery details." - } - }, - "se" : { - "stringUnit" : { - "state" : "translated", - "value" : "Du kan skicka och ta emot kanalmeddelanden (gruppchatt) och direkta meddelanden. Från alla meddelanden kan du långtrycka för att se tillgängliga åtgärder som kopiera, svara, tapback och radera samt leveransdetaljer." - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Можете слати и примати поруке у каналима (групним четовима) и директне поруке. Из било које поруке можете дуго притиснути да бисте видели доступне радње као што су копирање, одговор, реакција и брисање, као и детаље о испоруци." - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "您可以发送和接收群聊或私聊消息。在任何消息中,您都可以长按查看可用的操作,如复制、回复、拍一拍、删除以及投递详情。" - } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "您可以傳送及接收頻道(群組聊天)和私人訊息。對任何訊息長按,可顯示操作選單,包括複製、回覆、表情回應、刪除及傳送詳情等功能。" - } - } - } - }, "TLS Enabled" : { "localizations" : { "it" : { @@ -33949,6 +33733,34 @@ } } }, + "Total PAX" : { + "localizations" : { + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Totale PAX" + } + }, + "se" : { + "stringUnit" : { + "state" : "translated", + "value" : "Totalt PAX" + } + }, + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Укупно PAX" + } + }, + "zh-Hant-TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "PAX 總數" + } + } + } + }, "Trace Route" : { "localizations" : { "it" : { @@ -34645,27 +34457,21 @@ }, "Unhealthy" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Unhealthy" - } - }, "it" : { "stringUnit" : { - "state" : "translated", + "state" : "needs_review", "value" : "Non sano" } }, "sr" : { "stringUnit" : { - "state" : "translated", + "state" : "needs_review", "value" : "Нездраво" } }, "zh-Hant-TW" : { "stringUnit" : { - "state" : "translated", + "state" : "needs_review", "value" : "不健康" } } @@ -36441,6 +36247,34 @@ } } }, + "WiFi" : { + "localizations" : { + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "WiFi" + } + }, + "se" : { + "stringUnit" : { + "state" : "translated", + "value" : "WiFi" + } + }, + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "ВајФај" + } + }, + "zh-Hant-TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "WiFi" + } + } + } + }, "WiFi Options" : { "localizations" : { "de" : { @@ -36752,6 +36586,64 @@ } } }, + "You can send and receive channel (group chats) and direct messages. From any message you can long press to see available actions like copy, reply, tapback and delete as well as delivery details." : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Du kannst Kanalnachrichten (Gruppenchats) und Direktnachrichten senden und empfangen. Bei jeder Nachricht kannst du lange drücken, um verfügbare Aktionen wie Kopieren, Antworten, Tapback und Löschen sowie Zustelldetails anzuzeigen." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous pouvez envoyer et recevoir des canaux (chats de groupe) et des messages directs. Depuis n’importe quel message, vous pouvez faire un appui long pour voir les actions possibles comme copier, répondre, tapback et supprimer ainsi que les détails de l'envoi." + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "ניתן לשלוח הודעות ערוץ (קבוצות צ'אט) והודעות פרטיות. על הודעה ניתן לעשות לחיצה ארוכה בכדי לראות פעולות אפשריות כגון העתק, הגב, תגובה מהירה, מחק ובנוסף לראות מצב שליחה." + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "È possibile inviare e ricevere messaggi di canale (chat di gruppo) e messaggi diretti. Da qualsiasi messaggio è possibile premere a lungo per visualizzare le azioni disponibili, come copia, risposta, tapback e cancellazione, nonché i dettagli di consegna." + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "You can send and receive channel (group chats) and direct messages. From any message you can long press to see available actions like copy, reply, tapback and delete as well as delivery details." + } + }, + "se" : { + "stringUnit" : { + "state" : "translated", + "value" : "Du kan skicka och ta emot kanalmeddelanden (gruppchatt) och direkta meddelanden. Från alla meddelanden kan du långtrycka för att se tillgängliga åtgärder som kopiera, svara, tapback och radera samt leveransdetaljer." + } + }, + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Можете слати и примати поруке у каналима (групним четовима) и директне поруке. Из било које поруке можете дуго притиснути да бисте видели доступне радње као што су копирање, одговор, реакција и брисање, као и детаље о испоруци." + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "您可以发送和接收群聊或私聊消息。在任何消息中,您都可以长按查看可用的操作,如复制、回复、拍一拍、删除以及投递详情。" + } + }, + "zh-Hant-TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "您可以傳送及接收頻道(群組聊天)和私人訊息。對任何訊息長按,可顯示操作選單,包括複製、回覆、表情回應、刪除及傳送詳情等功能。" + } + } + } + }, "Your current location will be set as the fixed position and broadcast over the mesh on the position interval." : { "localizations" : { "it" : { diff --git a/Meshtastic/Enums/SerialConfigEnums.swift b/Meshtastic/Enums/SerialConfigEnums.swift index fe81d91a..681ef89e 100644 --- a/Meshtastic/Enums/SerialConfigEnums.swift +++ b/Meshtastic/Enums/SerialConfigEnums.swift @@ -120,15 +120,15 @@ enum SerialModeTypes: Int, CaseIterable, Identifiable { case .default: return "Default".localized case .simple: - return "serial.mode.simple".localized + return "Simple".localized case .proto: - return "serial.mode.proto".localized + return "Protobufs".localized case .txtmsg: - return "serial.mode.txtmsg".localized + return "Text Message".localized case .nmea: - return "serial.mode.nmea".localized + return "NMEA Positions".localized case .caltopo: - return "serial.mode.caltopo".localized + return "CALTOPO".localized } } func protoEnumValue() -> ModuleConfig.SerialConfig.Serial_Mode { diff --git a/Meshtastic/Extensions/Date.swift b/Meshtastic/Extensions/Date.swift index 25bf034d..f0b27331 100644 --- a/Meshtastic/Extensions/Date.swift +++ b/Meshtastic/Extensions/Date.swift @@ -30,11 +30,11 @@ extension Date { let hour = Calendar.current.component(.hour, from: self) switch hour { - case 6..<12: return "relativetimeofday.morning".localized - case 12: return "relativetimeofday.midday".localized - case 13..<17: return "relativetimeofday.afternoon".localized - case 17..<22: return "relativetimeofday.evening".localized - default: return "relativetimeofday.nighttime".localized + case 6..<12: return "Morning".localized + case 12: return "Midday".localized + case 13..<17: return "Afternoon".localized + case 17..<22: return "Evening".localized + default: return "Nighttime".localized } } } diff --git a/Meshtastic/Tips/MessagesTips.swift b/Meshtastic/Tips/MessagesTips.swift index a470dcaa..1e5ac07c 100644 --- a/Meshtastic/Tips/MessagesTips.swift +++ b/Meshtastic/Tips/MessagesTips.swift @@ -16,7 +16,7 @@ struct MessagesTip: Tip { Text("Messages") } var message: Text? { - Text("tip.messages.message") + Text("You can send and receive channel (group chats) and direct messages. From any message you can long press to see available actions like copy, reply, tapback and delete as well as delivery details.") } var image: Image? { Image(systemName: "bubble.left.and.bubble.right") diff --git a/Meshtastic/Views/Messages/UserList.swift b/Meshtastic/Views/Messages/UserList.swift index 7a7193f2..7e57ce8c 100644 --- a/Meshtastic/Views/Messages/UserList.swift +++ b/Meshtastic/Views/Messages/UserList.swift @@ -194,7 +194,7 @@ struct UserList: View { } } .listStyle(.plain) - .navigationTitle(String.localizedStringWithFormat("contacts %@".localized, String(users.count == 0 ? 0 : users.count))) + .navigationTitle(String.localizedStringWithFormat("Contacts (%@)".localized, String(users.count == 0 ? 0 : users.count))) .sheet(isPresented: $editingFilters) { NodeListFilter(filterTitle: "Contact Filters", viaLora: $viaLora, viaMqtt: $viaMqtt, isOnline: $isOnline, isPkiEncrypted: $isPkiEncrypted, isFavorite: $isFavorite, isIgnored: $isIgnored, isEnvironment: $isEnvironment, distanceFilter: $distanceFilter, maximumDistance: $maxDistance, hopsAway: $hopsAway, roleFilter: $roleFilter, deviceRoles: $deviceRoles) } diff --git a/Meshtastic/Views/Nodes/PaxCounterLog.swift b/Meshtastic/Views/Nodes/PaxCounterLog.swift index 58d68bb1..ed5a87c8 100644 --- a/Meshtastic/Views/Nodes/PaxCounterLog.swift +++ b/Meshtastic/Views/Nodes/PaxCounterLog.swift @@ -44,7 +44,7 @@ struct PaxCounterLog: View { y: .value("y", (point.wifi + point.ble)) ) } - .accessibilityLabel("paxcounter.total") + .accessibilityLabel("Total PAX") .accessibilityValue("X: \(point.time!), Y: \(point.wifi + point.ble)") .foregroundStyle(paxChartColor) .interpolationMethod(.cardinal) @@ -55,7 +55,7 @@ struct PaxCounterLog: View { y: .value("y", point.wifi) ) } - .accessibilityLabel("paxcounter.wifi") + .accessibilityLabel("WiFi") .accessibilityValue("X: \(point.time!), Y: \(point.wifi)") .foregroundStyle(wifiChartColor) @@ -65,7 +65,7 @@ struct PaxCounterLog: View { y: .value("y", point.ble) ) } - .accessibilityLabel("paxcounter.ble") + .accessibilityLabel("BLE") .accessibilityValue("X: \(point.time!), Y: \(point.ble)") .foregroundStyle(bleChartColor) } @@ -76,9 +76,9 @@ struct PaxCounterLog: View { .chartXAxis(.automatic) .chartYScale(domain: 0...maxValue) .chartForegroundStyleScale([ - "paxcounter.ble".localized: .blue, - "paxcounter.wifi".localized: .orange, - "paxcounter.total".localized: .green + "BLE".localized: .blue, + "WiFi".localized: .orange, + "Total PAX".localized: .green ]) .chartLegend(position: .automatic, alignment: .bottom) } @@ -89,13 +89,13 @@ struct PaxCounterLog: View { if UIScreen.main.bounds.size.width > 768 && (UIDevice.current.userInterfaceIdiom == .pad || UIDevice.current.userInterfaceIdiom == .mac) { // Add a table for mac and ipad Table(pax) { - TableColumn("paxcounter.ble") { pc in + TableColumn("BLE") { pc in Text("\(pc.ble)") } - TableColumn("paxcounter.wifi") { pc in + TableColumn("WiFi") { pc in Text("\(pc.wifi)") } - TableColumn("paxcounter.total") { pc in + TableColumn("Total PAX") { pc in Text("\(pc.wifi + pc.ble)") } TableColumn("Uptime") { pc in @@ -120,10 +120,10 @@ struct PaxCounterLog: View { ] LazyVGrid(columns: columns, alignment: .leading, spacing: 1) { GridRow { - Text("paxcounter.ble") + Text("BLE") .font(.caption) .fontWeight(.bold) - Text("paxcounter.wifi") + Text("WiFi") .font(.caption) .fontWeight(.bold) Text("Total") diff --git a/Meshtastic/Views/Settings/Config/PowerConfig.swift b/Meshtastic/Views/Settings/Config/PowerConfig.swift index 0c94e646..5fde379c 100644 --- a/Meshtastic/Views/Settings/Config/PowerConfig.swift +++ b/Meshtastic/Views/Settings/Config/PowerConfig.swift @@ -55,15 +55,15 @@ struct PowerConfig: View { if currentDevice?.architecture == .esp32 || currentDevice?.architecture == .esp32S3 { Section { Toggle(isOn: $adcOverride) { - Text("config.power.adc.override") + Text("ADC Override") } .toggleStyle(SwitchToggleStyle(tint: .accentColor)) if adcOverride { HStack { - Text("config.power.adc.multiplier") + Text("Multiplier") Spacer() - FloatField(title: "config.power.adc.multiplier", number: $adcMultiplier) { + FloatField(title: "Multiplier", number: $adcMultiplier) { (2.0 ... 6.0).contains($0) } .focused($isFocused) @@ -71,7 +71,7 @@ struct PowerConfig: View { } } } header: { - Text("config.power.section.battery") + Text("Battery") } // Section { // Picker("config.power.wait.bluetooth.secs", selection: $waitBluetoothSecs) { diff --git a/Meshtastic/Views/Settings/Config/SaveConfigButton.swift b/Meshtastic/Views/Settings/Config/SaveConfigButton.swift index 36b92443..6cba6785 100644 --- a/Meshtastic/Views/Settings/Config/SaveConfigButton.swift +++ b/Meshtastic/Views/Settings/Config/SaveConfigButton.swift @@ -30,7 +30,7 @@ struct SaveConfigButton: View { onConfirmation() } } message: { - Text("config.save.confirm") + Text("After config values save the node will reboot.") } } } diff --git a/Meshtastic/Views/Settings/UserConfig.swift b/Meshtastic/Views/Settings/UserConfig.swift index 51f55dbe..4a47255c 100644 --- a/Meshtastic/Views/Settings/UserConfig.swift +++ b/Meshtastic/Views/Settings/UserConfig.swift @@ -186,7 +186,7 @@ struct UserConfig: View { } } } message: { - Text("config.save.confirm") + Text("After config values save the node will reboot.") } } Spacer()