diff --git a/Localizable.xcstrings b/Localizable.xcstrings index 758d0559..d6927e7f 100644 --- a/Localizable.xcstrings +++ b/Localizable.xcstrings @@ -2,14 +2,7 @@ "sourceLanguage" : "en", "strings" : { "" : { - "localizations" : { - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : " " - } - } - } + }, "\t%@" : { "localizations" : { @@ -19,7 +12,7 @@ "value" : "\t%@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "\t%@" @@ -35,10 +28,10 @@ "value" : "%@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@" + "value" : " %@" } } } @@ -51,7 +44,7 @@ "value" : "%@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : " %@" @@ -67,10 +60,10 @@ "value" : "Да ли желите да користите режим INPUT_PULLUP за GPIO пин. Применљиво само ако плоча користи pull-up отпорнике на пиновима" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "是否使用 GPIO 腳位的 INPUT_PULLUP 模式,僅適用於板子上該腳位使用上拉電阻的情況。\n" + "value" : "是否为 GPIO 引脚使用输入上拉模式。仅适用于电路板在引脚上使用上拉电阻的情况" } } } @@ -83,7 +76,7 @@ "value" : ": %@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : ": %@" @@ -99,7 +92,7 @@ "value" : ": %d" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : ": %d" @@ -115,10 +108,10 @@ "value" : "(Поново)дефинишите PIN_GPS_EN за своју плочу." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "為您的板子重新定義 PIN_GPS_EN。" + "value" : "为你的电路板重新定义 PIN_GPS_EN" } } } @@ -131,7 +124,7 @@ "value" : "%@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "%@" @@ -153,7 +146,7 @@ "value" : "%1$@ - %2$@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "%1$@ - %2$@" @@ -175,7 +168,7 @@ "value" : "%1$@ - %2$@ - %3$@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "%1$@ - %2$@ - %3$@" @@ -197,10 +190,44 @@ "value" : "%1$@ - %2$@ Одлазних скокова %3$@ Долазних скокова" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ - %2$@ 朝向 %3$@ 背面\n" + "value" : "%1$@ - %2$@ Towards %3$@ Back" + } + } + } + }, + "%@ - 1 Hop" : { + "extractionState" : "stale", + "localizations" : { + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ - 1 Скок" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ - 1 跳" + } + } + } + }, + "%@ - Direct" : { + "extractionState" : "stale", + "localizations" : { + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ - Директно" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ - 直接" } } } @@ -219,10 +246,10 @@ "value" : "%@ - Нема одговора" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ - 無回應" + "value" : "%@ - 没有响应" } } } @@ -241,10 +268,10 @@ "value" : "%@ - Није послато" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ - 未傳送" + "value" : "%@ - 未发送" } } } @@ -263,7 +290,7 @@ "value" : "%1$@ (%2$@)" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "%1$@ (%2$@)" @@ -285,7 +312,7 @@ "value" : "%1$@ %2$@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "%1$@ %2$@" @@ -307,7 +334,7 @@ "value" : "%1$@ %2$lld" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "%1$@ %2$lld" @@ -329,10 +356,10 @@ "value" : "%@ удаљено" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@離開" + "value" : "%@ 离开" } } } @@ -351,10 +378,10 @@ "value" : "%1$@ може имати до %2$@ бајтова." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ 的長度最多可達 %2$@ 位元組。" + "value" : "%1$@ 的长度可达 %2$@ 字节" } } } @@ -367,10 +394,10 @@ "value" : "%@ Канали?" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 頻道?" + "value" : "%@ 频道?" } } } @@ -383,10 +410,10 @@ "value" : "%@ конфигурациони подаци су затражени преко административног канала, али никакав одговор није враћен са удаљеног чвора." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通過管理通道請求了 %@ 配置數據,但遠程節點未返回任何響應。\n" + "value" : "已通过管理频道请求 %@ 配置数据,但远程节点未返回任何响应。" } } } @@ -399,7 +426,7 @@ "value" : "%@ dB" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "%@ dB" @@ -407,6 +434,23 @@ } } }, + "%@ hPa" : { + "extractionState" : "stale", + "localizations" : { + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ hPa" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ hPa" + } + } + } + }, "%@, %@" : { "localizations" : { "en" : { @@ -421,7 +465,7 @@ "value" : "%1$@, %2$@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "%1$@, %2$@" @@ -443,7 +487,7 @@ "value" : "%1$@: %2$lld / %3$lld" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "%1$@: %2$lld / %3$lld" @@ -459,7 +503,7 @@ "value" : "%@%%" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "%@%%" @@ -475,7 +519,7 @@ "value" : "%@°F" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "%@°F" @@ -491,7 +535,7 @@ "value" : "%d" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "%d" @@ -555,19 +599,19 @@ } } }, - "zh-Hant-TW" : { + "zh-Hans" : { "variations" : { "plural" : { "other" : { "stringUnit" : { - "state" : "translated", - "value" : "%d 跳數" + "state" : "new", + "value" : "%d Hops" } }, "zero" : { "stringUnit" : { "state" : "translated", - "value" : "直接" + "value" : "Direct" } } } @@ -583,7 +627,7 @@ "value" : "%d%%" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "%d%%" @@ -599,7 +643,7 @@ "value" : "%lf" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "%lf" @@ -615,7 +659,7 @@ "value" : "%lld" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "%lld" @@ -636,12 +680,6 @@ "state" : "translated", "value" : "%lld или мање скокова" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "%lld 或更少跳數的距離\n" - } } } }, @@ -652,12 +690,6 @@ "state" : "translated", "value" : "Укупно %lld читања" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "%lld 閱讀總數" - } } } }, @@ -668,12 +700,6 @@ "state" : "translated", "value" : "Укупно %lld догађаја детекције" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "%lld偵測事件總數" - } } } }, @@ -685,7 +711,7 @@ "value" : "%lld%%" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "%lld%%" @@ -707,10 +733,10 @@ "value" : "%llddb снага преноса" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%llddb Transmit Power" + "value" : "发射功率 %llddb" } } } @@ -728,12 +754,6 @@ "state" : "translated", "value" : "%llddBm снага преноса" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "%llddBm 傳輸功率" - } } } }, @@ -745,7 +765,7 @@ "value" : "< 1%" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "< 1%" @@ -760,12 +780,6 @@ "state" : "translated", "value" : "🦕 Верзија за крај живота 🦖 ☄" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "🦕 生命結束版本 🦖 ☄️" - } } } }, @@ -777,7 +791,7 @@ "value" : "1 byte" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "1 byte" @@ -793,10 +807,10 @@ "value" : "1 hop away" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "1 跳就能到" + "value" : "1 跳" } } } @@ -815,12 +829,6 @@ "state" : "translated", "value" : "2.4 GHz" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "2.4 GHz" - } } } }, @@ -832,7 +840,7 @@ "value" : "7" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "7" @@ -848,7 +856,7 @@ "value" : "8" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "8" @@ -864,7 +872,7 @@ "value" : "25" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "25" @@ -880,7 +888,7 @@ "value" : "50" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "50" @@ -896,7 +904,7 @@ "value" : "75" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "75" @@ -912,7 +920,7 @@ "value" : "100" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "100" @@ -928,10 +936,10 @@ "value" : "128 bit" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "128bit" + "value" : "128 bit" } } } @@ -944,10 +952,10 @@ "value" : "256 bit" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "256bit" + "value" : "256 bit" } } } @@ -959,12 +967,6 @@ "state" : "translated", "value" : "Трејсрут је послат, али одговор није примљен." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "已發送追蹤路由,但未收到任何回應。" - } } } }, @@ -1109,12 +1111,6 @@ "state" : "translated", "value" : "Прецизност %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "準確度 %@" - } } } }, @@ -1125,12 +1121,6 @@ "state" : "translated", "value" : "Ack SNR: %@ dB" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "Ack SNR: %@ dB" - } } } }, @@ -1141,12 +1131,6 @@ "state" : "translated", "value" : "Ack време: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "Ack 時間: %@" - } } } }, @@ -1157,12 +1141,6 @@ "state" : "translated", "value" : "Потврђен од стране другог чвора" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "被另一個節點確認" - } } } }, @@ -1179,12 +1157,6 @@ "state" : "translated", "value" : "Акције" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "動作" - } } } }, @@ -1201,12 +1173,6 @@ "state" : "translated", "value" : "Активан" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "活躍" - } } } }, @@ -1269,7 +1235,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "活動" + "value" : "Activity" } } } @@ -1287,12 +1253,6 @@ "state" : "translated", "value" : "Активност" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "活動" - } } } }, @@ -1303,12 +1263,6 @@ "state" : "translated", "value" : "Додај канал" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "添加頻道" - } } } }, @@ -1319,12 +1273,6 @@ "state" : "translated", "value" : "Додај канале" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "添加頻道" - } } } }, @@ -1341,12 +1289,6 @@ "state" : "translated", "value" : "Додај у омиљене" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "加入最愛" - } } } }, @@ -1358,10 +1300,10 @@ "value" : "Додатна помоћ" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "其他協助" + "value" : "其他帮助" } } } @@ -1374,7 +1316,7 @@ "value" : "Адреса" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "地址" @@ -1449,16 +1391,22 @@ }, "Admin & Direct Message Keys" : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Schlüssel für Administrator und Direktnachrichten" + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Админ и кључеви директних порука" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "管理與直接訊息金鑰" + "value" : "管理员 & 私信密钥" } } } @@ -1537,10 +1485,10 @@ "value" : "Администрација" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "管理" + "value" : "管理员" } } } @@ -1553,10 +1501,10 @@ "value" : "Напредно" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "進階" + "value" : "高级" } } } @@ -1569,10 +1517,10 @@ "value" : "Напредне поставке GPS уређаја" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "進階裝置 GPS" + "value" : "高级设备 GPS" } } } @@ -1585,10 +1533,10 @@ "value" : "Напредне GPIO опције" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "進階 GPIO 選項" + "value" : "高级 GPIO 选项" } } } @@ -1601,10 +1549,10 @@ "value" : "Напредне поставке позиционих заставица" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "進階位置標誌" + "value" : "高级位置标志" } } } @@ -1670,7 +1618,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "之前" + "value" : "ago" } } } @@ -1747,10 +1695,10 @@ "value" : "Време емитовања" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "廣播時間" + "value" : "广播时间" } } } @@ -1763,10 +1711,10 @@ "value" : "Време емитовања %@%%" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "廣播時間 %@%%" + "value" : "广播时间 %@%%" } } } @@ -1778,12 +1726,6 @@ "state" : "translated", "value" : "Узбуна" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "警示" - } } } }, @@ -1795,10 +1737,10 @@ "value" : "Упозорите GPIO зујалицу када примите звоно" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "收到鈴聲時警示 GPIO 蜂鳴器" + "value" : "收到铃声时发出警报 GPIO 蜂鸣器" } } } @@ -1810,12 +1752,6 @@ "state" : "translated", "value" : "Упозорите GPIO зујалицу када примите поруку" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "收到訊息時警示 GPIO 蜂鳴器" - } } } }, @@ -1827,10 +1763,10 @@ "value" : "Упозорите GPIO вибра мотор када примите звоно" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "收到鈴聲時警示 GPIO 震動馬達" + "value" : "收到铃声时提醒 GPIO 振动电机" } } } @@ -1842,12 +1778,6 @@ "state" : "translated", "value" : "Упозорите GPIO вибра мотор када примите поруку" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "收到訊息時警示 GPIO 震動馬達" - } } } }, @@ -1859,10 +1789,10 @@ "value" : "Упозори када примиш звоно" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "收到鈴聲時發出警示" + "value" : "收到铃声时发出警报" } } } @@ -1874,12 +1804,6 @@ "state" : "translated", "value" : "Упозори када примиш поруку" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "收到訊息時發出警示" - } } } }, @@ -1897,7 +1821,7 @@ "value" : "Сви" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "全部" @@ -1913,27 +1837,27 @@ "value" : "Сви подаци о уређају и апликацији ће бити избрисани." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有裝置和應用程式資料將被刪除。" + "value" : "所有设备以及 App 数据都会被删除。" } } } }, "Allow incoming device control over the insecure legacy admin channel." : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erlaubt die eingehende Gerätesteuerung über den unsicheren Legacy-Admin-Kanal." + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Дозволите контролу долазног уређаја над небезбедним старим администраторским каналом." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "允許傳入裝置透過不安全的舊版管理通道進行控制。" - } } } }, @@ -1944,12 +1868,6 @@ "state" : "translated", "value" : "Дозволи захтеве позиција" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "允許位置請求" - } } } }, @@ -1960,12 +1878,6 @@ "state" : "translated", "value" : "Висина" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "高度" - } } } }, @@ -1982,12 +1894,6 @@ "state" : "translated", "value" : "Висина" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "海拔" - } } } }, @@ -2004,12 +1910,6 @@ "state" : "translated", "value" : "Висина %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "海拔 %@" - } } } }, @@ -2020,12 +1920,6 @@ "state" : "translated", "value" : "Висинска геоидна сепарација" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "海拔幾何分離" - } } } }, @@ -2036,12 +1930,6 @@ "state" : "translated", "value" : "Надморска висина је средњи ниво мора" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "海拔高度為平均海平面" - } } } }, @@ -2058,12 +1946,6 @@ "state" : "translated", "value" : "Увек усмеравајте на север" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "永遠指向北方" - } } } }, @@ -2274,10 +2156,10 @@ "value" : "Отворена, off-grid, децентрализована, меш мрежа која ради на приступачним радио уређајима мале снаге." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "一個開放原始碼、離網、分散式的網狀網路,可在經濟實惠的低功率無線電上運作。" + "value" : "这是一个开源、离网、分布式 Mesh 网络,可在价格低廉的低功率无线电设备上运行。" } } } @@ -2290,10 +2172,10 @@ "value" : "Све пропуштене поруке ће бити поново испоручене." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "任何遺漏的訊息都會再次傳送。" + "value" : "任何错过的信息都会再次发送。" } } } @@ -2306,10 +2188,10 @@ "value" : "Подаци апликације" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "應用程式資料" + "value" : "App 数据" } } } @@ -2322,10 +2204,10 @@ "value" : "Фајлови апликације" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "應用程式檔案" + "value" : "App 文件" } } } @@ -2338,10 +2220,10 @@ "value" : "Подешавања апликације" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "應用程式設定" + "value" : "App 设置" } } } @@ -2354,7 +2236,7 @@ "value" : "Епл апликације" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "Apple Apps" @@ -2375,12 +2257,6 @@ "state" : "translated", "value" : "Приближна локација" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "大約位置" - } } } }, @@ -2437,7 +2313,7 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通用设置" + "value" : "App 设置" } }, "zh-Hant-TW" : { @@ -2651,10 +2527,10 @@ "value" : "Да ли си сигуран да желиш да обришеш ову поруку?" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您確定要刪除此訊息嗎?" + "value" : "你确定删除这条消息么?" } } } @@ -2673,10 +2549,10 @@ "value" : "Да ли си стигуран да желиш да вратиш овај чвор на фабричка подешавања?" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您確定要出廠重設節點嗎?" + "value" : "你确定要初始化这个节点么?" } } } @@ -2824,12 +2700,6 @@ "state" : "translated", "value" : "Аустралија / Нови Зеланд" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "澳洲 / 紐西蘭" - } } } }, @@ -2906,10 +2776,10 @@ "value" : "Аутоматски се пребацује на следећу страницу на екрану као карусел, на основу наведеног интервала." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "根據指定的間隔,自動切換到螢幕上的下一頁,就像旋轉木馬一樣。" + "value" : "根据指定的时间间隔,像旋转木马一样自动切换到屏幕上的下一页。" } } } @@ -2922,10 +2792,10 @@ "value" : "Доступна унапред подешена подешавања модема, подразумевана је Long Fast." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可用的數據機預設值,預設值為 Long Fast。" + "value" : "可用的调制解调器预置,默认为 “Long Fast”。" } } } @@ -3002,10 +2872,27 @@ "value" : "Резервна база података" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "備份資料庫" + "value" : "备份数据库" + } + } + } + }, + "Bad" : { + "extractionState" : "stale", + "localizations" : { + "sr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Лош" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "坏" } } } @@ -3024,10 +2911,10 @@ "value" : "Проток" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "帶寬" + "value" : "带宽" } } } @@ -3040,7 +2927,7 @@ "value" : "Bar" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "Bar" @@ -3056,7 +2943,7 @@ "value" : "Bar серија" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "Bar Series" @@ -3072,10 +2959,10 @@ "value" : "Барометарски притисак" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "氣壓" + "value" : "气压" } } } @@ -3088,10 +2975,10 @@ "value" : "Ниво батерије у %" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "電池電量%" + "value" : "电池电量 %" } } } @@ -3168,7 +3055,7 @@ "value" : "Baud" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "波特率" @@ -3184,7 +3071,7 @@ "value" : "BLE RSSI: %lld" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "BLE RSSI: %lld" @@ -3200,7 +3087,7 @@ "value" : "BLE: %@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "BLE: %@" @@ -3262,13 +3149,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尝试连接%d失败,你可能需要在系统设置的蓝牙选项中忽略该电台。" + "value" : "尝试连接%d失败,你可能需要在系统设置的蓝牙选项中忽略该设备。" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "嘗試連接%d失敗,你可能需要在系统設定的藍芽選項中忽略該裝置。" + "value" : "嘗試連接%d失敗,你可能需要在系统設定的藍芽選項中忽略該電台。" } } } @@ -3288,10 +3175,10 @@ "value" : "Веза је неочекивано истекла." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "連線意外超時。" + "value" : "连接意外超时。" } } } @@ -3350,13 +3237,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 如果在首选电台的旁边,App 将会自动重连。" + "value" : "%@ 如果在默认电台的旁边,App 将会自动重连。" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 如果在首選裝置的旁邊,App 將會自動重連。" + "value" : "%@ 如果在首選電台的旁邊,App 將會自動重連。" } } } @@ -3376,10 +3263,10 @@ "value" : "Радио уређај је уклонио информације о упаривању." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Peer 移除配對資訊。" + "value" : "同伴删除了配对信息。" } } } @@ -3444,7 +3331,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 這個錯誤通常無法自動修復,你需要在系統設定的藍芽選項中忽略該裝置並重新配對。" + "value" : "%@ 這個錯誤通常無法自動修復,你需要在系統設定的藍芽選項中忽略該電台並重新配對。" } } } @@ -4100,10 +3987,10 @@ "value" : "Интервал емитовања" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "廣播間隔" + "value" : "广播间隔" } } } @@ -4116,10 +4003,10 @@ "value" : "Дугме GPIO" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "按鈕 GPIO" + "value" : "按钮 GPIO" } } } @@ -4132,10 +4019,10 @@ "value" : "Купите готове радио уређаје" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "購買完整的無線電" + "value" : "购买完整的电台" } } } @@ -4148,10 +4035,10 @@ "value" : "Звучни сигнал GPIO" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "蜂鳴器GPIO" + "value" : "蜂鸣器 GPIO" } } } @@ -4229,10 +4116,10 @@ "value" : "Позивни знак" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "呼號" + "value" : "呼号" } } } @@ -4245,10 +4132,10 @@ "value" : "Позивни знак не може бити празан" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "呼號不得為空" + "value" : "呼号不能为空" } } } @@ -4331,7 +4218,7 @@ "value" : "Откажи" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "取消" @@ -4521,7 +4408,7 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "M5Stack 卡片键盘 / RAK 键盘" + "value" : "M5 Stack 卡片键盘 / RAK 键盘" } }, "zh-Hant-TW" : { @@ -4651,7 +4538,7 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "RAK 旋转编码器" + "value" : "RAK 编码器" } }, "zh-Hant-TW" : { @@ -4669,12 +4556,6 @@ "state" : "translated", "value" : "Интервал карусела" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "螢幕輪播間隔" - } } } }, @@ -4692,10 +4573,10 @@ "value" : "Категорије" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "類別" + "value" : "分类" } } } @@ -4778,10 +4659,10 @@ "value" : "Канал" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "頻道" + "value" : "频道" } } } @@ -4794,10 +4675,10 @@ "value" : "Канал 0 укључен" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含頻道 0" + "value" : "包含频道 0" } } } @@ -4810,10 +4691,10 @@ "value" : "Канал 1 укључен" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含頻道 1" + "value" : "包含频道 1" } } } @@ -4826,10 +4707,10 @@ "value" : "Канал 2 укључен" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含頻道 2" + "value" : "包含频道 2" } } } @@ -4842,10 +4723,10 @@ "value" : "Канал 3 укључен" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含頻道 3" + "value" : "包含频道 3" } } } @@ -4858,10 +4739,10 @@ "value" : "Канал 4 укључен" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含頻道 4" + "value" : "包含频道 4" } } } @@ -4874,10 +4755,10 @@ "value" : "Канал 5 укључен" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含頻道 5" + "value" : "包含频道 5" } } } @@ -4890,10 +4771,10 @@ "value" : "Канал 6 укључен" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含頻道 6" + "value" : "包含频道 6" } } } @@ -4906,10 +4787,10 @@ "value" : "Канал 7 укључен" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含頻道 7" + "value" : "包含频道 7" } } } @@ -4922,10 +4803,10 @@ "value" : "детаљи канала" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "頻道詳細資訊" + "value" : "频道详情" } } } @@ -4938,10 +4819,10 @@ "value" : "Назив канала" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "頻道名稱" + "value" : "频道名称" } } } @@ -4954,10 +4835,10 @@ "value" : "Број канала мора бити између 0 и 7." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "頻道號碼必須介於 0 和 7 之間。" + "value" : "频道编号必须介于 0 和 7 之间。" } } } @@ -4970,10 +4851,10 @@ "value" : "Улога канала" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "頻道角色" + "value" : "频道角色" } } } @@ -4986,10 +4867,10 @@ "value" : "Искоришћеност канала %@%%" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "頻道使用率 %@%% " + "value" : "频道利用率 %@%% " } } } @@ -5325,10 +5206,10 @@ "value" : "Канали који се додају из КР кода нису сачувани. Приликом додавања канала имена морају бити јединствена." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "從 QR 代碼新增的頻道無法儲存。新增頻道時,名稱必須是唯一的。" + "value" : "通过二维码添加的频道无法保存。添加频道时,名称必须唯一。" } } } @@ -5341,10 +5222,10 @@ "value" : "Графукон" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "圖表" + "value" : "图表" } } } @@ -5356,12 +5237,6 @@ "state" : "translated", "value" : "ПУЊ" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "CHG" - } } } }, @@ -5380,10 +5255,10 @@ "value" : "Кина" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "中國" + "value" : "CHG" } } } @@ -5396,7 +5271,7 @@ "value" : "Очисти" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "清除" @@ -5540,10 +5415,10 @@ "value" : "Клијент" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "客戶端" + "value" : "客户端" } } } @@ -5556,10 +5431,10 @@ "value" : "Историја клијената" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "客戶端記錄" + "value" : "客户端历史" } } } @@ -5572,10 +5447,10 @@ "value" : "Захтев за историју клијента је послат" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已傳送客戶端歷史記錄要求" + "value" : "已发送客户端历史记录请求" } } } @@ -5588,10 +5463,10 @@ "value" : "Опције клијента" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "客戶端選項" + "value" : "客户端选项" } } } @@ -5604,10 +5479,10 @@ "value" : "Ротациони догађај у смеру казаљке на сату" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "順時針旋轉活動" + "value" : "顺时针旋转活动" } } } @@ -5684,10 +5559,10 @@ "value" : "Стопа кодирања" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "編碼率" + "value" : "编码率" } } } @@ -5706,10 +5581,10 @@ "value" : "Боја" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "顏色" + "value" : "颜色" } } } @@ -5767,13 +5642,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "与电台进行通讯中..." + "value" : "与设备进行通讯中..." } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "與裝置進行通訊中..." + "value" : "與電台進行通訊中..." } } } @@ -5786,10 +5661,10 @@ "value" : "Конфигурација" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "設定" + "value" : "配置" } } } @@ -6128,12 +6003,6 @@ "value" : "Мултипликатор" } }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "ADC 放大" - } - }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", @@ -6186,12 +6055,6 @@ "value" : "Преписивање ADC-а" } }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "ADC 修改" - } - }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", @@ -6405,7 +6268,7 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尽可能将所有部件都置于休眠状态,对于跟踪器和传感器功能,这还包括 LoRa 无线电。如果您要使用手机应用程序或者使用没有用户按钮的设备,请不要使用这个设置。" + "value" : "尽可能让所有设备处于睡眠状态,对于跟踪器和传感器来说,这也包括 LoRa 无线电。如果您想将电台与手机 App 一起使用,或使用没有用户按钮的电台,请不要使用此设置。" } }, "zh-Hant-TW" : { @@ -6635,12 +6498,6 @@ "value" : "Након" } }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "After" - } - }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", @@ -7098,30 +6955,30 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "电台将会在配置保存后重启。" + "value" : "节点将会在保存配置后重启。" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "裝置將會在設定儲存後重啟。" + "value" : "電台將會在設定儲存後重啟。" } } } }, "Configuration for: %@" : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Konfiguration für: %@" + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Конфигурација за: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "設定為: %@" - } } } }, @@ -7133,10 +6990,10 @@ "value" : "Унапред подешене конфигурације" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "設定預設值" + "value" : "配置预设" } } } @@ -7154,12 +7011,6 @@ "state" : "translated", "value" : "Конфигуриши" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "設定" - } } } }, @@ -7176,12 +7027,6 @@ "state" : "translated", "value" : "Повежите се са чвором" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "連接至節點" - } } } }, @@ -7238,7 +7083,7 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已连接到电台" + "value" : "蓝牙已连接" } }, "zh-Hant-TW" : { @@ -7262,12 +7107,6 @@ "state" : "translated", "value" : "Повезани чвор %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "連接節點 %@" - } } } }, @@ -7324,13 +7163,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已连接的电台" + "value" : "电台已连接" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "已連接的裝置" + "value" : "已連接的電台" } } } @@ -7413,10 +7252,10 @@ "value" : "Покушај повезивања %lld од 10" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "連線嘗試 %lld of 10" + "value" : "连接尝试 %lld,共 10 次" } } } @@ -7559,10 +7398,10 @@ "value" : "Тип контроле" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "控制類型" + "value" : "控制类型" } } } @@ -7575,10 +7414,10 @@ "value" : "Контролише трептајући ЛЕД на уређају. За већину уређаја ово ће контролисати један од до максималних 4 ЛЕД, ЛЕД пуњења и ГПС ЛЕД диоде се не могу контролисати." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "控制裝置上閃爍的 LED。 對大多數裝置而言,這將控制最多 4 個 LED 中的一個,充電器和 GPS LED 則無法控制。" + "value" : "控制设备上闪烁的 LED。 对大多数设备而言,这将控制最多 4 个 LED 中的一个,充电指示灯和 GPS 状态灯无法控制。" } } } @@ -7596,12 +7435,6 @@ "state" : "translated", "value" : "Конвексна љуштура" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "橡皮筋包圍法" - } } } }, @@ -7618,12 +7451,6 @@ "state" : "translated", "value" : "Координате" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "座標" - } } } }, @@ -7647,10 +7474,10 @@ "value" : "Координате %1$@, %2$@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "座標 %1$@, %2$@" + "value" : "坐标 %1$@, %2$@" } } } @@ -7668,12 +7495,6 @@ "state" : "translated", "value" : "Координате:" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "座標:" - } } } }, @@ -7755,10 +7576,10 @@ "value" : "Није могуће наћи чвор" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "無法找到節點" + "value" : "无法找到节点" } } } @@ -7770,12 +7591,6 @@ "state" : "translated", "value" : "Ротациони догађај у смеру супротном од казаљке на сату" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "逆時針旋轉活動" - } } } }, @@ -7792,12 +7607,6 @@ "state" : "translated", "value" : "Креирајте путну тачку" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "建立航點" - } } } }, @@ -7814,12 +7623,6 @@ "state" : "translated", "value" : "Креирано : %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "已建立:%@" - } } } }, @@ -7837,10 +7640,10 @@ "value" : "Тренутна верзија фирмвера: %@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "目前的韌體版本: %@" + "value" : "当前固件版本号:%@" } } } @@ -7865,10 +7668,10 @@ "value" : "Тренутна верзија фирмвера: %1$@, најновија верзија фирмвера: %2$@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "目前韌體版本: %1$@, 最新韌體版本: %2$@" + "value" : "当前固件版本号:%1$@,最新固件版本号:%2$@" } } } @@ -7886,12 +7689,6 @@ "state" : "translated", "value" : "Тренутно: %lld" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "目前:%lld" - } } } }, @@ -7903,10 +7700,10 @@ "value" : "Тренутно препоручени начин за ажурирање ЕСП32 уређаја је коришћење веб флешера на десктоп рачунару из прегледача заснованог на хрому. Не ради на мобилним уређајима или преко BLE-а." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "目前,更新 ESP32 裝置的建議方式是在桌上型電腦上使用網頁刷新程式,並使用 Chrome 瀏覽器。此方法無法在行動裝置或 BLE 上使用。" + "value" : "目前,更新 ESP32 设备的推荐方法是在电脑上使用基于 Chrome 浏览器的 Web Flasher。该方法不适用于移动设备或通过 BLE 进行更新。" } } } @@ -7924,12 +7721,6 @@ "state" : "translated", "value" : "Датум" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "日期" - } } } }, @@ -7941,27 +7732,27 @@ "value" : "Дебагуј" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "除錯" + "value" : "Debug" } } } }, "Debug Logs" : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fehlersuchprotokolle" + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Дебаг логови" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "除錯日誌" - } } } }, @@ -7972,12 +7763,6 @@ "state" : "translated", "value" : "Debug логови%@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "除錯記錄%@" - } } } }, @@ -8059,12 +7844,6 @@ "state" : "translated", "value" : "Подразумевано" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "預設" - } } } }, @@ -8083,10 +7862,10 @@ "value" : "Подразумевани изглед екрана 128x64" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "預設 128x64 螢幕配置" + "value" : "默认 128x64 屏幕布局" } } } @@ -8163,10 +7942,10 @@ "value" : "Желите ли да избришете све показатеље окружења?" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刪除所有環境指標?" + "value" : "删除所有环境指标?" } } } @@ -8179,10 +7958,10 @@ "value" : "Избрисати све плочице мапе?" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刪除所有地圖圖塊?" + "value" : "删除所有瓦片地图?" } } } @@ -8194,12 +7973,6 @@ "state" : "translated", "value" : "Избрисати све позиције?" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "刪除所有位置?" - } } } }, @@ -8210,12 +7983,6 @@ "state" : "translated", "value" : "Обриши поруку" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "刪除訊息" - } } } }, @@ -8226,12 +7993,6 @@ "state" : "translated", "value" : "Обриши поруке" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "刪除訊息" - } } } }, @@ -8248,12 +8009,6 @@ "state" : "translated", "value" : "Обриши чвор" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "刪除節點" - } } } }, @@ -8270,12 +8025,6 @@ "state" : "translated", "value" : "Обрисати чвор?" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "刪除節點?" - } } } }, @@ -8286,12 +8035,6 @@ "state" : "translated", "value" : "Опис" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "描述" - } } } }, @@ -8303,10 +8046,10 @@ "value" : "Опис мора бити испод 100 бајтова" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "描述必須小於 100 位元組" + "value" : "描述必须少于 100 字节" } } } @@ -8318,12 +8061,6 @@ "state" : "translated", "value" : "Откривање" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "偵測" - } } } }, @@ -8334,12 +8071,6 @@ "state" : "translated", "value" : "Догађај откривања" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "偵測任務" - } } } }, @@ -8350,12 +8081,6 @@ "state" : "translated", "value" : "Логови сензора откривања" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "偵測傳感器日誌" - } } } }, @@ -8367,10 +8092,10 @@ "value" : "Поруке сензора за откривање се примају као текстуалне поруке. Ако омогућите обавештења, добићете обавештење за сваку примљену поруку за откривање и одговарајућу значку непрочитане поруке." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "偵測感應器訊息會以文字訊息的方式接收。 如果啟用通知功能,您將收到每條偵測訊息的通知和相對應的未讀訊息徽章。" + "value" : "检测传感器信息以文本信息的形式接收。如果启用通知功能,则每收到一条检测信息都会收到一条通知,并显示相应的未读信息。" } } } @@ -8477,10 +8202,10 @@ "value" : "Подешавања ензора откривања" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "偵測感應器組態" + "value" : "检测传感器配置" } } } @@ -8523,10 +8248,10 @@ "value" : "Логови сензора откривања" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "偵測感應器日誌" + "value" : "检测传感器日志" } } } @@ -8539,10 +8264,10 @@ "value" : "Програмери" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "開發人員" + "value" : "开发者" } } } @@ -8600,7 +8325,7 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "电台" + "value" : "设备" } }, "zh-Hant-TW" : { @@ -8625,10 +8350,10 @@ "value" : "GPS уређај" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "GPS設備" + "value" : "设备 GPS" } } } @@ -8641,10 +8366,10 @@ "value" : "Уређајем управља администратор мреже, корисник не може да приступи ниједном подешавању уређаја." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "裝置由網格管理員管理,使用者無法存取任何裝置設定。" + "value" : "设备由 Mesh 管理员管理,用户无法访问任何设备设置。" } } } @@ -8657,10 +8382,10 @@ "value" : "Метрика уређаја" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "裝置量測" + "value" : "设备指标" } } } @@ -8673,10 +8398,10 @@ "value" : "Логови метрике уређаја" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "裝置量測日誌" + "value" : "设备指标日志" } } } @@ -8695,10 +8420,10 @@ "value" : "Модел уређаја: %@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "裝置量測:%@" + "value" : "设备模型:%@" } } } @@ -8711,10 +8436,10 @@ "value" : "Улога уређаја" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "裝置角色" + "value" : "设备角色" } } } @@ -8727,10 +8452,10 @@ "value" : "Екран уређаја" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "裝置屏幕" + "value" : "设备屏幕" } } } @@ -8788,13 +8513,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "电台配置" + "value" : "设备配置" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "裝置設定" + "value" : "電台設定" } } } @@ -8904,13 +8629,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除所有电台指标?" + "value" : "删除所有设备指标?" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "刪除所有裝置測量??" + "value" : "刪除所有電台指標??" } } } @@ -8968,13 +8693,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "电台指标日志" + "value" : "设备指标日志" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "裝置量測日誌" + "value" : "電台指標紀錄檔" } } } @@ -9033,13 +8758,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标准模式 - App 可以连接到电台进行收发操作,并且会自动转发 Mesh 网络中其他节点的消息。" + "value" : "连接 App 或独立的消息发送设备。" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "應用程式連接或獨立的訊息傳輸裝置。" + "value" : "標準模式 - App 可以連接到電台進行收發操作,並且會自動轉發 Mesh 網路中其他中繼點的消息。" } } } @@ -9050,7 +8775,7 @@ "de" : { "stringUnit" : { "state" : "translated", - "value" : " Used for nodes that \"only speak when spoken to\" Turns all of the routine broadcasts but allows for ad-hoc communication. Still rebroadcasts, but with local only rebroadcast mode (known meshes only). Can be used for private operation or to dramatically reduce airtime / power consumption." + "value" : "Gerät, das nur bei Bedarf sendet, um nicht entdeckt zu werden oder Strom zu sparen." } }, "en" : { @@ -9098,13 +8823,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用于\"只有在被请求时才发言\"的节点。关闭所有常规广播,但允许临时通信。仍然会进行转发,但采用本地转发模式(仅限已知的网络)。可用于私密操作或大幅减少空中时间/功耗。" + "value" : "只在需要时才广播的设备,以达到隐蔽或省电的目的。" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "為了隱藏或省電,只在需要時才廣播的裝置。" + "value" : "隱藏模式 - 用於那些\"只在被問到時才回答\"的節點,關閉所有常規廣播,但允許臨時通訊。依然會進行轉播,但只在本地轉播模式下進行(僅限已知的網狀網路)。可以用於私密操作或顯著減少空中時間/功耗。" } } } @@ -9115,7 +8840,7 @@ "de" : { "stringUnit" : { "state" : "translated", - "value" : "Dasselbe wie Client, außer dass die Pakete nicht über diesen Knoten weitergeleitet werden. Nimmt nicht am Mesh-Routing teil." + "value" : "Gerät, das keine Pakete von anderen Geräten weiterleitet." } }, "en" : { @@ -9163,13 +8888,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "静默模式 - 与标准模式类似,App 可以连接到电台进行收发操作,但不会转发 Mesh 网络中其他节点的消息。" + "value" : "不转发其他设备数据包的设备。" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "不轉發其他裝置封包的裝置。" + "value" : "靜音模式 - 與標準模式類似,App 可以連接到電台進行收發操作,但不會轉發 Mesh 網路中其他中繼點的消息。" } } } @@ -9180,7 +8905,7 @@ "de" : { "stringUnit" : { "state" : "translated", - "value" : "Broadcasts location as message to default channel regularly for to assist with device recovery." + "value" : "Sendet den Standort regelmäßig als Nachricht an den Standardkanal, um die Suche nach dem Gerät zu unterstützen." } }, "en" : { @@ -9228,13 +8953,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "定期向默认通道广播位置信息,以帮助寻回设备。" + "value" : "定期向默认信道发送位置信息,以协助设备恢复。" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "定期將位置訊息廣播至預設頻道,以協助裝置尋找。" + "value" : "遺失物模式 - 用於自動頻繁地向網狀網路發送一條包含設備當前位置的短信:\"I'm lost! Position: lat / long\"" } } } @@ -9242,6 +8967,12 @@ "device.role.name.client" : { "extractionState" : "manual", "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Client" + } + }, "en" : { "stringUnit" : { "state" : "translated", @@ -9254,10 +8985,10 @@ "value" : "Клијент" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Client" + "value" : "客户端" } } } @@ -9265,6 +8996,12 @@ "device.role.name.clientHidden" : { "extractionState" : "manual", "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Client - Versteckt" + } + }, "en" : { "stringUnit" : { "state" : "translated", @@ -9277,10 +9014,10 @@ "value" : "Скривени клијент" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Client Hidden" + "value" : "客户端隐藏" } } } @@ -9300,10 +9037,10 @@ "value" : "Клијент мутиран" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Client Mute" + "value" : "客户端静默" } } } @@ -9311,6 +9048,12 @@ "device.role.name.lostAndFound" : { "extractionState" : "manual", "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tracker" + } + }, "en" : { "stringUnit" : { "state" : "translated", @@ -9323,10 +9066,10 @@ "value" : "Изгубљено и нађено" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Lost and Found" + "value" : "失物招领" } } } @@ -9334,6 +9077,12 @@ "device.role.name.repeater" : { "extractionState" : "manual", "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Repeater" + } + }, "en" : { "stringUnit" : { "state" : "translated", @@ -9346,10 +9095,10 @@ "value" : "Поновљач" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Repeater" + "value" : "中继" } } } @@ -9357,6 +9106,12 @@ "device.role.name.router" : { "extractionState" : "manual", "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Router" + } + }, "en" : { "stringUnit" : { "state" : "translated", @@ -9369,10 +9124,10 @@ "value" : "Рутер" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Router" + "value" : "路由" } } } @@ -9380,6 +9135,12 @@ "device.role.name.routerClient" : { "extractionState" : "manual", "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Router & Client" + } + }, "en" : { "stringUnit" : { "state" : "translated", @@ -9392,10 +9153,10 @@ "value" : "Рутер и клијент" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Router & Client" + "value" : "路由 & 客户端" } } } @@ -9403,13 +9164,13 @@ "device.role.name.routerlate" : { "extractionState" : "manual", "localizations" : { - "en" : { + "de" : { "stringUnit" : { "state" : "translated", - "value" : "Router Late" + "value" : "Router mit Verzögerung" } }, - "zh-Hant-TW" : { + "en" : { "stringUnit" : { "state" : "translated", "value" : "Router Late" @@ -9420,6 +9181,12 @@ "device.role.name.sensor" : { "extractionState" : "manual", "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sensor" + } + }, "en" : { "stringUnit" : { "state" : "translated", @@ -9432,10 +9199,10 @@ "value" : "Сензор" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Sensor" + "value" : "传感器" } } } @@ -9443,6 +9210,12 @@ "device.role.name.tak" : { "extractionState" : "manual", "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "TAK" + } + }, "en" : { "stringUnit" : { "state" : "translated", @@ -9455,7 +9228,7 @@ "value" : "TAK" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "TAK" @@ -9466,6 +9239,12 @@ "device.role.name.takTracker" : { "extractionState" : "manual", "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "TAK Tracker" + } + }, "en" : { "stringUnit" : { "state" : "translated", @@ -9478,10 +9257,10 @@ "value" : "ТАК Трекер" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TAK Tracker" + "value" : "TAK 追踪器" } } } @@ -9489,6 +9268,12 @@ "device.role.name.tracker" : { "extractionState" : "manual", "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tracker" + } + }, "en" : { "stringUnit" : { "state" : "translated", @@ -9501,10 +9286,10 @@ "value" : "Трекер" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Tracker" + "value" : "追踪器" } } } @@ -9562,14 +9347,14 @@ }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "中继模式 - Mesh 网络数据包将优先通过此节点路由。此模式可消除不必要的开销,如节点信息、设备遥测和任何其他 Mesh 数据包,从而使设备不显示为 Mesh 网络的一部分。有关此角色的其他特定设置,请参阅转播模式。" + "state" : "translated", + "value" : "仅用于塔顶或山顶的基础设施节点。 不得用于屋顶或移动节点。以最小的开销中继信息。在节点列表中不可见。" } }, "zh-Hant-TW" : { "stringUnit" : { - "state" : "translated", - "value" : "僅適用於塔台或山頂上的基礎建設節點。 不可用於屋頂或行動節點。以最小的開銷中繼訊息。在節點清單中不可見。" + "state" : "needs_review", + "value" : "中繼模式 - Mesh 網路數據包將優先通過此中繼點路由。此模式可消除不必要的開銷,如 NodeInfo、DeviceTelemetry 和任何其他 Mesh 數據包,從而使設備不顯示為 Mesh 網路的一部分。有關此角色的其他特定設置,請參閱轉播模式。" } } } @@ -9627,14 +9412,14 @@ }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "纯路由模式 - 自动转发 Mesh 网络中其他节点的消息,中继模式下屏幕会熄灭,Wi-Fi 和蓝牙将会进入睡眠模式,App 将无法连接到电台进行收发操作。" + "state" : "translated", + "value" : "仅用于塔顶或山顶的基础设施节点。 不得用于屋顶或移动节点。 需要特殊的覆盖范围。在节点列表中可见。" } }, "zh-Hant-TW" : { "stringUnit" : { - "state" : "translated", - "value" : "僅適用於塔台或山頂上的基礎建設節點。 不可用於屋頂或行動節點。 需要特殊的覆蓋範圍。在節點清單中可見。" + "state" : "needs_review", + "value" : "纯路由模式 - 自動轉發 Mesh 網路中其他中繼點的消息,中繼模式下螢幕會熄滅,Wi-Fi 和藍芽將會進入睡眠模式,App 將無法連接到電台進行收發操作。" } } } @@ -9692,14 +9477,14 @@ }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "路由客户端模式 - 优先转发 Mesh 网络中其他节点的消息,App 也可以连接到电台进行收发操作。" + "state" : "translated", + "value" : "已废弃的角色,使用客户端。" } }, "zh-Hant-TW" : { "stringUnit" : { - "state" : "translated", - "value" : "已廢棄的角色使用Clien。" + "state" : "needs_review", + "value" : "路由客户端模式 - 優先轉發 Mesh 網路中其他中繼點的消息,App 也可以連接到電台進行收發操作。" } } } @@ -9707,17 +9492,17 @@ "device.role.routerlate" : { "extractionState" : "manual", "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Infrastrukturknoten, der Pakete immer nur einmal weiterleitet, aber erst nach allen anderen Betriebsarten, um eine zusätzliche Abdeckung für lokale Cluster zu gewährleisten. Sichtbar in der Liste der Knoten." + } + }, "en" : { "stringUnit" : { "state" : "translated", "value" : "Infrastructure node that always rebroadcasts packets once but only after all other modes, ensuring additional coverage for local clusters. Visible in Nodes list." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "基礎建設節點,總是在所有其他模式之後才重新廣播一次封包,以確保本地群集有額外的覆蓋範圍。在節點清單中可見。" - } } } }, @@ -9727,7 +9512,7 @@ "de" : { "stringUnit" : { "state" : "translated", - "value" : "Broadcasts telemetry packets as priority." + "value" : "Sendet Telemetriepakete mit Priorität." } }, "en" : { @@ -9781,7 +9566,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "廣播遙測封包為優先。" + "value" : "傳感器模式 - 優先廣播傳感器數據包" } } } @@ -9792,7 +9577,7 @@ "de" : { "stringUnit" : { "state" : "translated", - "value" : "Optimized for ATAK system communication, reduces routine broadcasts." + "value" : "Optimiert für ATAK-Systemkommunikation, verringert die Anzahl der Routineübertragungen." } }, "en" : { @@ -9846,7 +9631,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "針對 ATAK 系統通訊進行最佳化,減少例行廣播。" + "value" : "TAK模式 - 優化了 ATAK 系統通訊,減少常規廣播。" } } } @@ -9857,7 +9642,7 @@ "de" : { "stringUnit" : { "state" : "translated", - "value" : "Enables automatic TAK PLI broadcasts and reduces routine broadcasts." + "value" : "Aktiviert automatische TAK-PLI-Übertragungen und verringert die Anzahl der Routineübertragungen." } }, "en" : { @@ -9911,7 +9696,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "啟用自動 TAK PLI 廣播,並減少例行廣播。" + "value" : "TAK TRACKER追蹤器 - 啟用自動 TAK PLI 廣播並減少常規廣播。" } } } @@ -9922,7 +9707,7 @@ "de" : { "stringUnit" : { "state" : "translated", - "value" : "Tracker - For use with devices intended as a GPS tracker. Position packets sent from this device will be higher priority, with position broadcasting every two minutes. Smart Position Broadcast will default to off." + "value" : "Sendet GPS-Positionspakete mit Priorität." } }, "en" : { @@ -9976,7 +9761,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "優先廣播 GPS 位置封包。" + "value" : "追蹤模式 - 用於作為 GPS 追蹤器。從該設備發送的定位數據包優先級較高,每兩分鐘廣播一次。智能位置廣播預設為關閉。" } } } @@ -9988,12 +9773,6 @@ "state" : "translated", "value" : "Разређење прецизности (DOP) PDOP се користи као подразумевано" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "精確度稀釋 (DOP) 預設使用 PDOP" - } } } }, @@ -10011,10 +9790,10 @@ "value" : "Директно" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "直傳" + "value" : "直频" } } } @@ -10027,10 +9806,10 @@ "value" : "Помоћ за директне поруке" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "直傳訊息說明" + "value" : "私信帮助" } } } @@ -10043,10 +9822,10 @@ "value" : "Директне поруке користе нову инфраструктуру јавних кључева за енкрипцију. Захтева верзију фирмвера 2.5 или новију." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "直接訊息使用新的公開金鑰基礎架構進行加密。需要 2.5 或更高版本的韌體。" + "value" : "私聊使用新的公钥基础设施进行加密。需要 2.5 或更高版本的固件。" } } } @@ -10059,10 +9838,10 @@ "value" : "Директне поруке користе дељени кључ за канал." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "直接訊息使用頻道的共用金鑰。" + "value" : "私聊使用频道的共享密钥。" } } } @@ -10120,7 +9899,7 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "直频消息" + "value" : "私聊" } }, "zh-Hant-TW" : { @@ -10145,10 +9924,10 @@ "value" : "Онемогућено" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已停用" + "value" : "禁用" } } } @@ -10270,13 +10049,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏键盘" + "value" : "收起键盘" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "取消" + "value" : "隱藏鍵盤" } } } @@ -10334,13 +10113,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "屏幕(电台屏幕)" + "value" : "显示" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "屏幕" + "value" : "螢幕(電台螢幕)" } } } @@ -10353,10 +10132,10 @@ "value" : "Приказ фаренхајта" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "顯示華氏" + "value" : "展示华氏度" } } } @@ -10369,10 +10148,10 @@ "value" : "Режим приказа" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "顯示模式" + "value" : "显示模式" } } } @@ -10385,10 +10164,10 @@ "value" : "Јединице приказа" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "顯示單位" + "value" : "显示单位" } } } @@ -10446,7 +10225,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "屏幕設定" + "value" : "螢幕設定" } } } @@ -10530,10 +10309,10 @@ "value" : "Раздаљина" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "距離" + "value" : "距离" } } } @@ -10546,10 +10325,10 @@ "value" : "Документација" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件" + "value" : "文档" } } } @@ -10562,10 +10341,10 @@ "value" : "Двоструки додир као дугме" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "雙擊為按鈕" + "value" : "双击作为按钮" } } } @@ -10578,10 +10357,10 @@ "value" : "Дозвољен даунлинк" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "啟用下行鏈路" + "value" : "启用下载" } } } @@ -10594,10 +10373,10 @@ "value" : "Ажурирање фирмвера методом превуци-и-испусти" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "拖放式韌體更新" + "value" : "拖放升级固件" } } } @@ -10610,10 +10389,10 @@ "value" : "Документација ажурирања фирмвера методом превуци-и-испусти" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "拖放韌體更新文件" + "value" : "拖放升级固件文档" } } } @@ -10626,10 +10405,10 @@ "value" : "Превуци-и-испусти је препоручен начин за ажурирање фирмвера на NRF уређајима. Ако ваш iPhone или iPad има USB-C, радиће са вашим уобичајеним USB-C каблом за пуњење. За уређаје са Lightning портом потребан је Apple Lightning to USB адаптер за камеру." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "拖放是更新 NRF 裝置韌體的建議方式。如果您的 iPhone 或 iPad 是 USB-C 裝置,則可使用一般的 USB-C 充電線,如果是閃電裝置,則需要 Apple Lightning to USB 相機轉接器。" + "value" : "拖放是更新 NRF 设备固件的推荐方式。如果您的 iPhone 或 iPad 是 USB-C 接口,则可以使用普通的 USB-C 充电线;如果是 Lightning 设备,则需要使用 Apple Lightning to USB 摄像头适配器。" } } } @@ -10641,12 +10420,6 @@ "state" : "translated", "value" : "Постави ознаку на мапама" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "在地圖中放置圖釘" - } } } }, @@ -10721,12 +10494,6 @@ "state" : "translated", "value" : "Уређивање путне тачке" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "編輯航點" - } } } }, @@ -10737,12 +10504,6 @@ "state" : "translated", "value" : "Повећање надморске висине" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "增益" - } } } }, @@ -10819,7 +10580,7 @@ "value" : "Емоџи" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "Emoji" @@ -10835,7 +10596,7 @@ "value" : "Празно" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "空" @@ -10851,10 +10612,10 @@ "value" : "Омогући обавештења" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "啟用通知" + "value" : "启用通知" } } } @@ -10931,10 +10692,10 @@ "value" : "Омогућава уређајима са изворним I2S аудио излазом да користе РТТТЛ преко звучника као звучник. Т-Ватцх СКСНУМКС и Т-Децк на пример имају ову могућност." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可讓具有原生 I2S 音訊輸出的裝置透過喇叭使用 RTTTL,就像蜂鳴器一樣。例如 T-Watch S3 和 T-Deck 就具有此功能。" + "value" : "使具有本地 I2S 音频输出的设备能够通过扬声器使用 RTTTL,就像使用蜂鸣器一样。例如,T-Watch S3 和 T-Deck 就具有这种功能。" } } } @@ -10947,10 +10708,10 @@ "value" : "Омогућава модул сензора детекције. Потребно је да буде омогућен и на чвору са сензором, и на свим чворовима које желите да примате текстуалне поруке сензора детекције или да видите дневник и графикон сензора детекције." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "啟用偵測感測器模組,必須在具有感測器的節點,以及任何您要接收偵測感測器文字訊息或檢視偵測感測器記錄和圖表的節點上啟用。" + "value" : "启用检测传感器模块,需要在装有传感器的节点和要接收检测传感器文本信息或查看检测传感器日志和图表的任何节点上启用该模块。" } } } @@ -10963,10 +10724,10 @@ "value" : "Омогућава модул за чување и пренос. Чување и пренос мора бити омогућено на оба уређаја, клијенту и рутеру." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "啟用儲存與轉送模組。用戶端和路由器裝置都必須啟用儲存和轉送功能。" + "value" : "启用存储和转发模块。客户端和路由器设备都必须启用存储和转发功能。" } } } @@ -10979,10 +10740,10 @@ "value" : "Омогућавање етернета ће онемогућити блутут везу са апликацијом." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "啟用乙太網路將停用應用程式的藍牙連線。" + "value" : "启用以太网将禁用应用程序的蓝牙连接。" } } } @@ -10995,10 +10756,10 @@ "value" : "Омогућавање ВајФаја ће онемогућити блутут везу са апликацијом." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "啟用 WiFi 後會停用藍芽功能" + "value" : "启用 WiFi 将禁用应用程序的蓝牙连接。" } } } @@ -11010,12 +10771,6 @@ "state" : "translated", "value" : "Догађај притиска енкодера" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "編碼器按壓事件" - } } } }, @@ -11097,7 +10852,7 @@ "value" : "Шифровано" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "加密" @@ -11113,10 +10868,10 @@ "value" : "Омогућено шифровање" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "開啟加密" + "value" : "启用加密" } } } @@ -11135,10 +10890,10 @@ "value" : "Уђите у DFU режим" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "進入DFU模式" + "value" : "进入 DFU 模式" } } } @@ -11151,10 +10906,10 @@ "value" : "окружење" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "環境" + "value" : "环境" } } } @@ -11173,10 +10928,10 @@ "value" : "Окружење" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "環境" + "value" : "环境" } } } @@ -11189,10 +10944,10 @@ "value" : "Дневник метрика окружења" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "環境測量日誌" + "value" : "环境指标日志" } } } @@ -11211,10 +10966,10 @@ "value" : "Избрисати све податке апликације?" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刪除所有應用程式資料?" + "value" : "擦除所有 App 数据?" } } } @@ -11233,10 +10988,10 @@ "value" : "Избрисати све податке уређаја и апликације?" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刪除所有裝置和應用程式資料?" + "value" : "擦除所有设备和 App 数据?" } } } @@ -11249,10 +11004,10 @@ "value" : "Грешка: %@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "錯誤: %@" + "value" : "错误:%@" } } } @@ -11265,10 +11020,10 @@ "value" : "ESP32 OTA ажурирање је у развоју, кликните на дугме испод да бисте послали уређају поруку за поновно покретање у OTA администраторски режим." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ESP 32 OTA 更新正在進行中,請按以下按鈕傳送您的裝置重新開機進入 OTA 管理訊息。" + "value" : "ESP 32 OTA 更新正在进行中,请单击下面的按钮向您的设备发送重新启动进入 OTA 管理信息。" } } } @@ -11281,10 +11036,10 @@ "value" : "Ажурирање фирмвера за ESP32 уређај" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ESP32 裝置韌體更新" + "value" : "ESP32 设备固件升级" } } } @@ -11296,12 +11051,6 @@ "state" : "translated", "value" : "Етернет опције" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "乙太網路選項" - } } } }, @@ -11319,12 +11068,6 @@ "state" : "translated", "value" : "Европска унија 433MHz" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "歐盟 433MHz" - } } } }, @@ -11342,12 +11085,6 @@ "state" : "translated", "value" : "Европска унија 868MHz" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "歐盟 868MHz" - } } } }, @@ -11358,12 +11095,6 @@ "state" : "translated", "value" : "Размени локације" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "交換位置" - } } } }, @@ -11374,12 +11105,6 @@ "state" : "translated", "value" : "Истиче" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "到期" - } } } }, @@ -11390,12 +11115,6 @@ "state" : "translated", "value" : "Истиче" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "到期" - } } } }, @@ -11406,12 +11125,6 @@ "state" : "translated", "value" : "Истиче: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "到期" - } } } }, @@ -11620,12 +11333,6 @@ "state" : "translated", "value" : "Ресетовање на фабричка подешавања" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "出廠設置" - } } } }, @@ -11642,12 +11349,6 @@ "state" : "translated", "value" : "Вратите уређај и апликацију на фабричка подешавања?" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "重設您的裝置和應用程式?" - } } } }, @@ -11658,12 +11359,6 @@ "state" : "translated", "value" : "Неуспело кодирање садржаја поруке" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "訊息內容編碼失敗" - } } } }, @@ -11674,12 +11369,6 @@ "state" : "translated", "value" : "Добијање важеће позиције за размену није успело" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "無法取得有效位置交換" - } } } }, @@ -11690,12 +11379,6 @@ "state" : "translated", "value" : "Добијање важеће позиције за размену није успело." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "無法取得有效位置交換" - } } } }, @@ -11712,12 +11395,6 @@ "state" : "translated", "value" : "Омиљени" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "最愛" - } } } }, @@ -11734,12 +11411,6 @@ "state" : "translated", "value" : "Омиљени" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "我的最愛" - } } } }, @@ -11751,10 +11422,10 @@ "value" : "Омиљени чворови и чворови са недавно примљеним порукама појављују се на врху листе контаката." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "我的最愛和有最近訊息的節點會顯示在連絡人清單頂端。" + "value" : "收藏夹和有最近信息的节点会显示在联系人列表的顶部。" } } } @@ -11772,12 +11443,6 @@ "state" : "translated", "value" : "Преузмите најновију позицију одређеног чвора" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "擷取網格節點的最新位置" - } } } }, @@ -11788,12 +11453,6 @@ "state" : "translated", "value" : "Петнаест минута" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "15分鐘" - } } } }, @@ -11804,12 +11463,6 @@ "state" : "translated", "value" : "Складиште података" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "檔案儲存" - } } } }, @@ -11826,12 +11479,6 @@ "state" : "translated", "value" : "Пронађи контакт" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "尋找聯絡人" - } } } }, @@ -11848,12 +11495,6 @@ "state" : "translated", "value" : "Пронађи чвор" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "尋找節點" - } } } }, @@ -11935,10 +11576,10 @@ "value" : "Фирмвер" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "韌體" + "value" : "固件" } } } @@ -11951,10 +11592,10 @@ "value" : "Документи за ажурирање фирмвера" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "韌體更新文件" + "value" : "固件升级文档" } } } @@ -11973,10 +11614,10 @@ "value" : "Ажурирања фирмвера" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "韌體更新" + "value" : "固件升级" } } } @@ -12099,13 +11740,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "检测到不支持的固件版本,无法连接到电台。" + "value" : "检测到不支持的固件版本,无法连接到设备。" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "檢測到不支援的韌體版本,無法連接到裝置。" + "value" : "檢測到不支援的韌體版本,無法連接到電台。" } } } @@ -12117,12 +11758,6 @@ "state" : "translated", "value" : "Прво откривање" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "第一次聽到" - } } } }, @@ -12139,12 +11774,6 @@ "state" : "translated", "value" : "Пет минута" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "5 分鐘" - } } } }, @@ -12155,12 +11784,6 @@ "state" : "translated", "value" : "Фиксна локација" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "固定位置" - } } } }, @@ -12171,12 +11794,6 @@ "state" : "translated", "value" : "Окрени екран" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "翻轉螢幕" - } } } }, @@ -12187,12 +11804,6 @@ "state" : "translated", "value" : "Окрени екран вертикално" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "垂直翻轉螢幕" - } } } }, @@ -12204,10 +11815,10 @@ "value" : "За сву MQTT функционалност осим извештаја на мапи, такође морате подесити uplink и downlink за сваки канал који желите да прележете преко MQTT-а.”" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "對於地圖報告以外的所有 Mqtt 功能,您也必須為每個要在 Mqtt 上橋接的通道設定上行鏈路和下行鏈路。" + "value" : "对于除地图报告外的所有 MQTT 功能,您还必须为希望通过 MQTT 桥接的每个信道设置上行和下行链路。" } } } @@ -12225,12 +11836,6 @@ "state" : "translated", "value" : "За све" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "給所有人" - } } } }, @@ -12247,12 +11852,6 @@ "state" : "translated", "value" : "За мене" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "給我" - } } } }, @@ -12269,12 +11868,6 @@ "state" : "translated", "value" : "Фреквенција" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "頻率" - } } } }, @@ -12285,12 +11878,6 @@ "state" : "translated", "value" : "Измена фреквенције" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "頻率 Override" - } } } }, @@ -12301,12 +11888,6 @@ "state" : "translated", "value" : "Фреквенцијски слот" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "頻率 Slot" - } } } }, @@ -12318,10 +11899,10 @@ "value" : "Пријатељски назив" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "友好名稱" + "value" : "友好名称" } } } @@ -12334,10 +11915,10 @@ "value" : "Пријатељски назив који се користи за форматирање поруке послате на мрежу. На пример: Назив „Motion” довео би до поруке „Motion detected”." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用來格式化傳送至網格的訊息的友善名稱。範例: 名稱為 「Motion「(運動)會產生訊息 」Motion detected」(偵測到運動)。" + "value" : "用于格式化发送到 Mesh 网络的信息的友好名称。例如名称为 “运动”时,发送的信息为 “检测到运动”。" } } } @@ -12537,12 +12118,6 @@ "state" : "translated", "value" : "Набавите прилагођене водоотпорне соларне и детекционе сензорске рутер чворове, алуминијумске десктоп чворове и издржљиве мобилне уређаје." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "取得客製化防水太陽能和偵測感測器路由器節點、鋁製桌上型節點和堅固耐用的手機。" - } } } }, @@ -12560,10 +12135,10 @@ "value" : "Добави позицију чвора" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取得節點位置" + "value" : "获取节点位置" } } } @@ -12576,10 +12151,10 @@ "value" : "Преузмите NRF DFU из App Store-а" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "從 App Store 取得 NRF DFU" + "value" : "从 App Store 获取 NRF DFU" } } } @@ -12592,10 +12167,10 @@ "value" : "Добави најновији алфа фирмвер" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取得最新的 alpha 韌體" + "value" : "获取最新测试版固件" } } } @@ -12608,10 +12183,10 @@ "value" : "Добави најновији стабилни фирмвер" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取得最新的穩定韌體" + "value" : "获取最新稳定版固件" } } } @@ -12624,7 +12199,7 @@ "value" : "GPIO" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "GPIO" @@ -12639,12 +12214,6 @@ "state" : "translated", "value" : "Трајање GPIO излаза" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "GPIO 輸出持續時間" - } } } }, @@ -12655,12 +12224,6 @@ "state" : "translated", "value" : "GPIO пин за A порт ротационог енкодера." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "用於旋轉編碼器 A 端口的 GPIO 引腳。" - } } } }, @@ -12671,12 +12234,6 @@ "state" : "translated", "value" : "GPIO пин за Б порт ротационог енкодера." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "用於旋轉編碼器 B 端口的 GPIO 引腳。" - } } } }, @@ -12687,12 +12244,6 @@ "state" : "translated", "value" : "GPIO пин за порт клика ротационог енкодера." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "用於旋轉編碼器的 GPIO 開關針腳 " - } } } }, @@ -12703,12 +12254,6 @@ "state" : "translated", "value" : "GPIO пин за надгледање" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "要監控的 GPIO 引腳" - } } } }, @@ -12720,10 +12265,10 @@ "value" : "GPS EN GPIO" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "GPS始能GPIO 引腳" + "value" : "GPS EN GPIO" } } } @@ -12736,7 +12281,7 @@ "value" : "GPS формат" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "GPS 格式" @@ -12752,10 +12297,10 @@ "value" : "GPS пријем GPIO" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "GPS 接收 GPIO(RX)" + "value" : "GPS Receive GPIO" } } } @@ -12768,10 +12313,10 @@ "value" : "GPS предаја GPIO" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "GPS 發送 GPIO(TX)" + "value" : "GPS Transmit GPIO" } } } @@ -13211,10 +12756,10 @@ "value" : "Онемогућен" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已停用" + "value" : "禁用" } } } @@ -13264,10 +12809,10 @@ "value" : "Омогућен" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已啟用" + "value" : "启用" } } } @@ -13311,7 +12856,7 @@ "value" : "Није пристуно" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "不存在" @@ -13333,10 +12878,10 @@ "value" : "Групна порука" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "群組訊息" + "value" : "群聊" } } } @@ -13348,12 +12893,6 @@ "state" : "translated", "value" : "Јаки удари ветра %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "陣風 %@" - } } } }, @@ -13365,10 +12904,10 @@ "value" : "Хардвер" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "硬體" + "value" : "硬件" } } } @@ -13380,12 +12919,6 @@ "state" : "translated", "value" : "Смер" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "方位" - } } } }, @@ -13396,12 +12929,6 @@ "state" : "translated", "value" : "Смер: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "方位: %@" - } } } }, @@ -13543,10 +13070,10 @@ "value" : "Помози при развоју апликације" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "協助應用程式開發" + "value" : "帮助开发应用程序" } } } @@ -13558,12 +13085,6 @@ "state" : "translated", "value" : "Сакриј упозорења" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "隱藏警示" - } } } }, @@ -13574,12 +13095,6 @@ "state" : "translated", "value" : "Сакриј алертове" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "隱藏警示" - } } } }, @@ -13597,7 +13112,7 @@ "value" : "ВИСОК" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "高" @@ -13612,12 +13127,6 @@ "state" : "translated", "value" : "Максимални повратак историје" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "歷史回報 最大值" - } } } }, @@ -13628,12 +13137,6 @@ "state" : "translated", "value" : "Временски прозор поврата историје" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "歷史回傳視窗" - } } } }, @@ -13650,12 +13153,6 @@ "state" : "translated", "value" : "Скокови удаљености" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "轉跳" - } } } }, @@ -13672,12 +13169,6 @@ "state" : "translated", "value" : "Удаљено %d скокова" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "跳數 %d" - } } } }, @@ -13694,12 +13185,6 @@ "state" : "translated", "value" : "Скокови удаљености:" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "轉跳:" - } } } }, @@ -13716,12 +13201,6 @@ "state" : "translated", "value" : "Скокови удаљености: %d" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "跳數: %d" - } } } }, @@ -13739,10 +13218,10 @@ "value" : "Сат" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "小時" + "value" : "小时" } } } @@ -13754,12 +13233,6 @@ "state" : "translated", "value" : "Натпросечни циклус дужности по сату" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "每小時佔用週期" - } } } }, @@ -13771,10 +13244,10 @@ "value" : "Колико дуго екран остаје укључен након притиска корисничког дугмета или пријема порука." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "按下使用者按鈕或收到訊息後,螢幕會持續亮起多久。" + "value" : "按下用户按钮或收到消息后屏幕保持亮屏的时间。" } } } @@ -13787,10 +13260,10 @@ "value" : "Колико често се метрике уређаја шаљу преко мреже. Подразумевано је 30 минута." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "裝置指標透過網狀網路傳送出去的頻率。預設為 30 分鐘。" + "value" : "设备指标通过网格发送的频率。默认为 30 分钟。" } } } @@ -13803,10 +13276,10 @@ "value" : "Колико често се метрике снаге шаљу преко мреже. Подразумевано је 30 минута." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "透過網狀網路傳送電源指標的頻率。預設為 30 分鐘。" + "value" : "通过网格发送功率指标的频率。默认为 30 分钟。" } } } @@ -13819,10 +13292,10 @@ "value" : "Колико често се метрике сензора шаљу преко мреже. Подразумевано је 30 минута." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "透過網狀網路傳送感測器度量資訊的頻率。預設為 30 分鐘。" + "value" : "通过网格发送传感器指标的频率。默认为 30 分钟。" } } } @@ -13835,10 +13308,10 @@ "value" : "Колико често треба да покушамо да добијемо GPS позицију." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "我們應該多久嘗試取得一次 GPS 定位。" + "value" : "尝试获取 GPS 定位的频率。" } } } @@ -13851,10 +13324,10 @@ "value" : "Колико често да пошаљете стање сензора детекције у мрежу, без обзира на детекцију. Подразумевано је да се не шаље никада." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "無論是否偵測到,傳送偵測感應器狀態到網狀結構的頻率。預設為永不。" + "value" : "无论是否检测到,向网格发送检测传感器状态的频率。默认为从不。" } } } @@ -13873,10 +13346,10 @@ "value" : "Како да ажурираш фирмвер" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "如何更新韌體" + "value" : "如何升级固件" } } } @@ -13888,12 +13361,6 @@ "state" : "translated", "value" : "Влажност" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "濕度" - } } } }, @@ -13910,12 +13377,6 @@ "state" : "translated", "value" : "Влажност" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "濕度" - } } } }, @@ -13932,12 +13393,6 @@ "state" : "translated", "value" : "ВЛАЖНОСТ" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "濕度" - } } } }, @@ -14079,10 +13534,10 @@ "value" : "IAQ" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "室內空氣品質" + "value" : "IAQ" } } } @@ -14095,10 +13550,10 @@ "value" : "IAQ" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "室內空氣品質" + "value" : "IAQ " } } } @@ -14111,10 +13566,10 @@ "value" : "IAQ %lld" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "室內空氣品質 %lld" + "value" : "IAQ %lld" } } } @@ -14127,10 +13582,10 @@ "value" : "Иконица" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "圖示" + "value" : "图标" } } } @@ -14143,10 +13598,10 @@ "value" : "Ако је DOP постављен, користите HDOP / VDOP вредности уместо PDOP-а" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "如果已設定 DOP,請使用 HDOP / VDOP 值取代 PDOP" + "value" : "如果设置了 DOP,则使用 HDOP / VDOP 值而不是 PDOP" } } } @@ -14159,10 +13614,10 @@ "value" : "Ако је омогућено, 'output' пин ће бити активиран на високом нивоу, а ако је онемогућено, биће активиран на ниском нивоу." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "如果啟用,「輸出」 Pin 將被拉高為有效,停用表示拉低為有效。" + "value" : "如果启用,“输出 ”引脚将被拉高,禁用则表示拉低。" } } } @@ -14175,10 +13630,10 @@ "value" : "Ако је тешко приступити дугмету за ресетовање уређаја, уђите у DFU режим овде." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "如果難以存取裝置的重設按鈕,請在此進入 DFU 模式。" + "value" : "如果难以访问设备的重置按钮,请在此进入 DFU 模式。" } } } @@ -14191,10 +13646,10 @@ "value" : "Ако је подешено, сви пакети које пошаљете ће бити враћени (ехо) назад на ваш уређај." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "如果設定,您傳送的任何封包都會回傳到您的裝置。" + "value" : "如果设置了,您发送的任何数据包都会回传到设备。" } } } @@ -14207,10 +13662,10 @@ "value" : "Ако је подразумевана тема региона превише заузета можете изабрати више локалну тему." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "如果預設的區域主題太忙,您可以選擇一個更本地化的主題。" + "value" : "如果默认区域话题太忙,您可以选择一个更本地化的话题。" } } } @@ -14223,7 +13678,7 @@ "value" : "Игнориши MQTT" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "忽略 MQTT" @@ -14239,10 +13694,10 @@ "value" : "Игнориши чвор" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "忽略 Node" + "value" : "忽略节点" } } } @@ -14255,10 +13710,10 @@ "value" : "Игнорисан" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "被忽略" + "value" : "忽略" } } } @@ -14271,10 +13726,10 @@ "value" : "Увозна рута" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匯入路徑" + "value" : "导入路线" } } } @@ -14397,7 +13852,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "不完整" + "value" : "Incomplete" } } } @@ -14416,12 +13871,6 @@ "state" : "translated", "value" : "Индија" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "印度" - } } } }, @@ -14433,10 +13882,10 @@ "value" : "Квалитет ваздуха у затвореном простору" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "室內空氣品質" + "value" : "室内空气质量" } } } @@ -14449,10 +13898,10 @@ "value" : "Квалитет ваздуха у затвореном простору (IAQ)" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "室內空氣品質 (IAQ)" + "value" : "室内空气质量 (IAQ)" } } } @@ -14985,10 +14434,10 @@ "value" : "Улази" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "輸入" + "value" : "输入" } } } @@ -15457,10 +14906,10 @@ "value" : "Четртесет и осам сати" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "四十八小時" + "value" : "四十八小时" } } } @@ -15906,10 +15355,10 @@ "value" : "Седамдесет и два сата" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "七十二小時" + "value" : "七十二小时" } } } @@ -16904,10 +16353,10 @@ "value" : "Обрнута горња трака за екран у 2 боје" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "雙色顯示器的倒置頂列" + "value" : "倒置顶栏,用于双色显示" } } } @@ -16926,12 +16375,6 @@ "state" : "translated", "value" : "Јапан" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "日本" - } } } }, @@ -16943,10 +16386,10 @@ "value" : "JSON омогућен" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已啟用 JSON" + "value" : "启用 JSON" } } } @@ -16959,10 +16402,10 @@ "value" : "JSON режим је ограничен, нешифрован MQTT излаз за локалну интеграцију са Home Assistant-ом." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 模式是一種有限、未加密的 MQTT 輸出,用於與家庭助理進行本機整合" + "value" : "JSON 模式是一种有限的、未加密的 MQTT 输出,用于与家庭助理进行本地集成" } } } @@ -16981,10 +16424,10 @@ "value" : "Кључ" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "金鑰" + "value" : "Key" } } } @@ -16996,12 +16439,6 @@ "state" : "translated", "value" : "Мапирање кључева" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "金鑰匹配" - } } } }, @@ -17018,12 +16455,6 @@ "state" : "translated", "value" : "Величина кључа" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "金鑰大小" - } } } }, @@ -17106,12 +16537,6 @@ "state" : "translated", "value" : "Кореја" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "韓國" - } } } }, @@ -17129,10 +16554,10 @@ "value" : "Последње откривање" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最後一次收到" + "value" : "最后听到" } } } @@ -17151,10 +16576,10 @@ "value" : "Ширина" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "緯度" + "value" : "纬度" } } } @@ -17167,7 +16592,7 @@ "value" : "LED срчани откуцаји" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "LED 心跳" @@ -17183,27 +16608,27 @@ "value" : "LED статус" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "LED 狀態" + "value" : "LED 状态" } } } }, "Legacy Administration" : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alte Administrationsart" + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Стари начин администрације" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "舊版管理功能" - } } } }, @@ -17215,10 +16640,10 @@ "value" : "Лиценцирани оператор" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "射頻許可操作" + "value" : "持证操作员" } } } @@ -17231,10 +16656,10 @@ "value" : "Ограничите све периодичне интервале емитовања, посебно телеметрију и позицију. Ако је потребно повећати број скокова, то радите на чворовима на ивицама, а не на оним у средини. MQTT није препоручен када сте ограничени циклусом дужности јер у том случају чвор-рутер ради сав посао." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "限制所有週期性的廣播時間間隔,尤其是遙測和位置。如果您需要增加跳數,請在邊緣的節點上增加跳數,不要在中間的節點上增加跳數。當您的佔用週期受到限制時,不建議使用 MQTT,因為閘道節點要做所有的工作。" + "value" : "限制所有周期性广播间隔,尤其是遥测和位置。如果需要增加跳数,请在边缘节点而不是中间节点上进行。在占空比受限的情况下,不建议使用 MQTT,因为网关节点会承担所有工作。" } } } @@ -17246,12 +16671,6 @@ "state" : "translated", "value" : "Линијска серија" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "線條系列" - } } } }, @@ -17263,10 +16682,10 @@ "value" : "Учитавам логове. . ." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "載入日誌. . ." + "value" : "加载日志. . ." } } } @@ -17285,10 +16704,10 @@ "value" : "Локација:" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "地點" + "value" : "位置" } } } @@ -17307,10 +16726,10 @@ "value" : "Локација:" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "地點:" + "value" : "位置:" } } } @@ -17329,10 +16748,10 @@ "value" : "Закључан" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "鎖上" + "value" : "锁定" } } } @@ -17345,10 +16764,10 @@ "value" : "Нивои логова" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "日誌等級" + "value" : "日志等级" } } } @@ -17698,7 +17117,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "時間" + "value" : "Time" } } } @@ -17775,10 +17194,10 @@ "value" : "Логови" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "日誌" + "value" : "日志" } } } @@ -17791,10 +17210,10 @@ "value" : "Логови:" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "日誌:" + "value" : "日志:" } } } @@ -17813,10 +17232,10 @@ "value" : "Дуго име" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "長名稱" + "value" : "长名称" } } } @@ -17835,10 +17254,10 @@ "value" : "Дуго име: %@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "長名稱:%@" + "value" : "长名称: %@" } } } @@ -17851,10 +17270,10 @@ "value" : "Дугим притиском на чвор из листе означите као омиљени или искључите звук контакта или обришите разговор." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "長按可將連絡人加入最愛、靜音或刪除對話。" + "value" : "长按可收藏联系人或将其静音或删除对话。" } } } @@ -17873,12 +17292,6 @@ "state" : "translated", "value" : "Дугачки домет - Брзо" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "長距離 - 快速" - } } } }, @@ -17896,12 +17309,6 @@ "state" : "translated", "value" : "Дугачки домет - Умерено" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "長距離 - 中等" - } } } }, @@ -17919,12 +17326,6 @@ "state" : "translated", "value" : "Дугачки домет - Споро" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "長距離 - 慢速" - } } } }, @@ -17942,10 +17343,10 @@ "value" : "Дужина" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "經度" + "value" : "经度" } } } @@ -18081,6 +17482,12 @@ "lora.signal.strength.bad" : { "extractionState" : "manual", "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Schlechte Signalstärke" + } + }, "en" : { "stringUnit" : { "state" : "translated", @@ -18092,18 +17499,18 @@ "state" : "translated", "value" : "Лош" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "差" - } } } }, "lora.signal.strength.fair" : { "extractionState" : "manual", "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ordentliche Signalstärke" + } + }, "en" : { "stringUnit" : { "state" : "translated", @@ -18115,18 +17522,18 @@ "state" : "translated", "value" : "Прихватљив" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "合理" - } } } }, "lora.signal.strength.good" : { "extractionState" : "manual", "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gute Signalstärke" + } + }, "en" : { "stringUnit" : { "state" : "translated", @@ -18138,18 +17545,18 @@ "state" : "translated", "value" : "Добар" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "好" - } } } }, "lora.signal.strength.none" : { "extractionState" : "manual", "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Keine Verbindung" + } + }, "en" : { "stringUnit" : { "state" : "translated", @@ -18161,12 +17568,6 @@ "state" : "translated", "value" : "Без" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "無" - } } } }, @@ -18177,12 +17578,6 @@ "state" : "translated", "value" : "НИЗАК" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "LOW" - } } } }, @@ -18200,12 +17595,6 @@ "state" : "translated", "value" : "Малезија 433MHz" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "馬來西亞 433MHz" - } } } }, @@ -18223,12 +17612,6 @@ "state" : "translated", "value" : "Малезија 919MHz" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "馬來西亞 919MHz" - } } } }, @@ -18240,10 +17623,10 @@ "value" : "Управљани уређај" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "管理裝置" + "value" : "管理设备" } } } @@ -18326,10 +17709,10 @@ "value" : "Опције мапе" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "地圖選項" + "value" : "地图选项" } } } @@ -18342,10 +17725,10 @@ "value" : "Интервал објављивања мапе" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "地圖上報間隔" + "value" : "地图发布间隔" } } } @@ -18358,10 +17741,10 @@ "value" : "Извештај мапе" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "地圖上報" + "value" : "地图报告" } } } @@ -18374,10 +17757,10 @@ "value" : "Подаци плочица мапе" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "地圖方塊資料" + "value" : "瓦片地图数据" } } } @@ -18489,7 +17872,7 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除已缓存的地图区块" + "value" : "删除所有瓦片地图" } }, "zh-Hant-TW" : { @@ -18904,12 +18287,6 @@ "state" : "translated", "value" : "Средњи домет - Брзо" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "中距離 - 快速" - } } } }, @@ -18927,12 +18304,6 @@ "state" : "translated", "value" : "Средњи домет - Споро" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "中距離 - 慢速" - } } } }, @@ -18943,12 +18314,6 @@ "state" : "translated", "value" : "Ажурирање активности мреже" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "網格活動更新" - } } } }, @@ -19134,7 +18499,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "收到環境照明模組設定:%@" + "value" : "Ambient Lighting module config received: %@" } } } @@ -19199,7 +18564,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "收到藍牙設定:%@" + "value" : "Bluetooth config received: %@" } } } @@ -19258,7 +18623,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "收到罐頭訊息模組配置:%@" + "value" : "Canned Message module config received: %@" } } } @@ -19317,7 +18682,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "節點的要求罐頭訊息模組訊息: %@" + "value" : "Requested Canned Messages Module Messages for node: %@" } } } @@ -19376,7 +18741,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "罐頭訊息 收到的訊息: %@" + "value" : "Canned Messages Messages Received For: %@" } } } @@ -19435,7 +18800,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "已傳送頻道: %@ 通道索引 %d" + "value" : "Sent a Channel for: %@ Channel Index %d" } } } @@ -20002,7 +19367,7 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MQTT module config received: %@" + "value" : "收到 MQTT 模块配置:%@" } }, "zh-Hant-TW" : { @@ -20203,7 +19568,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "收到節點訊息: %@" + "value" : "收到中繼點訊息: %@" } } } @@ -20293,12 +19658,6 @@ "state" : "translated", "value" : "Конфигурација PAX бројача примљена: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "收到 PAX 計數器設定:%@" - } } } }, @@ -20427,7 +19786,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "從節點接收到定位封包: %@" + "value" : "從中繼點接收到定位封包: %@" } } } @@ -20458,12 +19817,6 @@ "state" : "translated", "value" : "Конфигурација напајања примљена: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "收到電源組態:%@" - } } } }, @@ -20521,7 +19874,7 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Range Test module config received: %@" + "value" : "收到范围测试模块配置: %@" } }, "zh-Hant-TW" : { @@ -20787,7 +20140,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "傳送iOS裝置的GPS定位封包到節點上: %@" + "value" : "傳送iOS裝置的GPS定位封包到中繼點上: %@" } } } @@ -21573,12 +20926,6 @@ "state" : "translated", "value" : "Meshtastic чвор %@ је поделио канале са вама." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "Meshtastic Node %@ 已與您共用頻道" - } } } }, @@ -21589,12 +20936,6 @@ "state" : "translated", "value" : "Meshtastic® Ауторска права Meshtastic LLC" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "Meshtastic® Copyright Meshtastic LLC" - } } } }, @@ -21675,12 +21016,6 @@ "state" : "translated", "value" : "Порука" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "訊息" - } } } }, @@ -21697,12 +21032,6 @@ "state" : "translated", "value" : "Садржај поруке премашује 200 бајтова." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "訊息內容超過 200 位元組。" - } } } }, @@ -21713,12 +21042,6 @@ "state" : "translated", "value" : "Опције статуса поруке" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "訊息狀態選項" - } } } }, @@ -21863,12 +21186,6 @@ "state" : "translated", "value" : "Поруке" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "訊息" - } } } }, @@ -21885,12 +21202,6 @@ "state" : "translated", "value" : "Поруке се раздвајају са |" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "訊息以 | 分隔" - } } } }, @@ -21901,12 +21212,6 @@ "state" : "translated", "value" : "Метрика" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "公制" - } } } }, @@ -21923,12 +21228,6 @@ "state" : "translated", "value" : "Минимум раздаљине" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "最小距離" - } } } }, @@ -21945,12 +21244,6 @@ "state" : "translated", "value" : "Минимални интервал" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "最小間隔" - } } } }, @@ -21961,12 +21254,6 @@ "state" : "translated", "value" : "Минимално време између емитовања детекције" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "偵測廣播之間的最短時間" - } } } }, @@ -21977,12 +21264,6 @@ "state" : "translated", "value" : "Минимално време између емитовања детекције. Подразумевано је 45 секунди." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "偵測廣播之間的最短時間。預設為 45 秒。" - } } } }, @@ -22058,10 +21339,10 @@ "value" : "Модел" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "型號" + "value" : "模型" } } } @@ -22202,7 +21483,7 @@ "value" : "MQTT" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "MQTT" @@ -22539,12 +21820,6 @@ "state" : "translated", "value" : "Мора бити један емотикон" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "必須是單個表情符號" - } } } }, @@ -22555,12 +21830,6 @@ "state" : "translated", "value" : "Период чекања је истекао" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "Nag 超時" - } } } }, @@ -22642,10 +21911,10 @@ "value" : "Име" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "名稱" + "value" : "名称" } } } @@ -22664,10 +21933,10 @@ "value" : "Име мора бити краће од 30 бајтова" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "名稱必須少於 30 位元組" + "value" : "名称必须少于 30 字节" } } } @@ -22679,12 +21948,6 @@ "state" : "translated", "value" : "Теме у окружењу" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "相關主題" - } } } }, @@ -22760,10 +22023,10 @@ "value" : "Статус мреже: Наранџаст" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "網路狀態 橙色" + "value" : "网络状态 橙色" } } } @@ -22776,10 +22039,10 @@ "value" : "Статус мреже: Црвен" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "網路狀態 紅色" + "value" : "网络状态 红色" } } } @@ -22861,12 +22124,6 @@ "state" : "translated", "value" : "Никада" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "從未" - } } } }, @@ -22878,12 +22135,6 @@ "state" : "translated", "value" : "Нови чвор" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "新節點" - } } } }, @@ -22895,12 +22146,6 @@ "state" : "translated", "value" : "Откривен је нови чвор" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "發現新節點" - } } } }, @@ -22918,12 +22163,6 @@ "state" : "translated", "value" : "Нови зеланд 865MHz" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "紐西蘭 865MHz" - } } } }, @@ -22941,10 +22180,10 @@ "value" : "Нова верзија фирмвера је доступна" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "有更新的韌體" + "value" : "有固件可以更新" } } } @@ -22962,12 +22201,6 @@ "state" : "translated", "value" : "Нема повезаног чвора" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "無連線節點" - } } } }, @@ -22978,12 +22211,6 @@ "state" : "translated", "value" : "Нема метрика уређаја." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "無裝置測量" - } } } }, @@ -22995,10 +22222,10 @@ "value" : "Нема метрика окружења" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "無環境測量" + "value" : "没有环境指标" } } } @@ -23016,12 +22243,6 @@ "state" : "translated", "value" : "Нема позиција" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "無位置" - } } } }, @@ -23085,7 +22306,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 Meshtastic 節點" + "value" : "未找到 Meshtastic 中繼點" } } } @@ -23103,12 +22324,6 @@ "state" : "translated", "value" : "Чвор" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "節點" - } } } }, @@ -23126,10 +22341,10 @@ "value" : "Резервна копија података језгра чвора %1$@/%2$@ - %3$@ - %4$@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "節點核心資料備份 %1$@/%2$@ - %3$@ - %4$@" + "value" : "节点核心数据备份 %1$@/%2$@ - %3$@ - %4$@" } } } @@ -23147,12 +22362,6 @@ "state" : "translated", "value" : "Чвор нема позиције" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "節點沒有位置" - } } } }, @@ -23169,12 +22378,6 @@ "state" : "translated", "value" : "Историја чвора" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "節點記錄" - } } } }, @@ -23185,12 +22388,6 @@ "state" : "translated", "value" : "Интервал емитовања информација о чвору" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "節點資訊廣播間隔" - } } } }, @@ -23207,12 +22404,6 @@ "state" : "translated", "value" : "Мапа чворова" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "節點地圖" - } } } }, @@ -23229,12 +22420,6 @@ "state" : "translated", "value" : "Број чвора" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "節點編號" - } } } }, @@ -23356,7 +22541,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "節點" + "value" : "中繼點" } } } @@ -23421,7 +22606,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "節點 (%@)" + "value" : "中繼點 (%@)" } } } @@ -23433,12 +22618,6 @@ "state" : "translated", "value" : "Није валидна датотека путања" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "不是有效的路由檔案" - } } } }, @@ -23495,13 +22674,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未连接到电台" + "value" : "设备未连接" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "未連接到裝置" + "value" : "未連接到電台" } } } @@ -23519,12 +22698,6 @@ "state" : "translated", "value" : "Белешке" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "注意事項" - } } } }, @@ -23541,12 +22714,6 @@ "state" : "translated", "value" : "Број: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "Num: %@" - } } } }, @@ -23563,12 +22730,6 @@ "state" : "translated", "value" : "Број хопова" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "跳躍次數" - } } } }, @@ -23585,12 +22746,6 @@ "state" : "translated", "value" : "Број записа" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "記錄數量" - } } } }, @@ -23607,12 +22762,6 @@ "state" : "translated", "value" : "Број сателита" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "衛星數量" - } } } }, @@ -23824,12 +22973,6 @@ "state" : "translated", "value" : "ОК" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "OK" - } } } }, @@ -23841,10 +22984,10 @@ "value" : "Позитиван за MQTT" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "連線 至 MQTT" + "value" : "Ok to MQTT" } } } @@ -23863,10 +23006,10 @@ "value" : "Тип OLED-а" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "OLED 類型" + "value" : "OLED 类型" } } } @@ -23944,10 +23087,10 @@ "value" : "Увођење за лиценциране оператере захтева фирмвер верзије 2.0.20 или новије. Уверите се да се придржавате локалних прописа и обратите се локалним координаторима за аматерске фреквенције са питањима." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "持照操作員的上線需要 2.0.20 或更高版本的韌體。請務必參閱您當地的規定,並與當地業餘頻率協調員聯繫以提出問題。" + "value" : "业余无线电使用需要固件 2.0.20 或更高版本。请务必参考当地法规,并联系当地业余频率协调人员咨询相关问题。" } } } @@ -23965,12 +23108,6 @@ "state" : "translated", "value" : "Један сат" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "1小時" - } } } }, @@ -23987,12 +23124,6 @@ "state" : "translated", "value" : "Једна минута" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "1分鐘" - } } } }, @@ -24009,12 +23140,6 @@ "state" : "translated", "value" : "На мрежи" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "在線" - } } } }, @@ -24032,10 +23157,10 @@ "value" : "Отвори подешавања" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "開啟設定" + "value" : "打开设置" } } } @@ -24054,12 +23179,6 @@ "state" : "translated", "value" : "Оптимизовано за двобојне дисплеје" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "針對雙色顯示器最佳化" - } } } }, @@ -24071,10 +23190,10 @@ "value" : "Опциони поља за укључивање при склапању порука о позицији. Што више поља је укључено, порука ће бити већа, што доводи до дужег времена емитовања и већег ризика од губитка пакета" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "組合位置訊息時要包含的可選欄位。包含的欄位越多,訊息就越大 - 會導致更長的廣播時間和更高的封包遺失風險。" + "value" : "包含的字段越多,信息就越大,导致通讯时间更长,丢包风险更高" } } } @@ -24086,12 +23205,6 @@ "state" : "translated", "value" : "Опциони GPIO" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "可選的 GPIO" - } } } }, @@ -24173,10 +23286,10 @@ "value" : "Опције" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "選項" + "value" : "选项" } } } @@ -24188,12 +23301,6 @@ "state" : "translated", "value" : "Детаљи уноса ОС дневника" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "系統記錄項目詳細資訊" - } } } }, @@ -24205,10 +23312,10 @@ "value" : "ОТА ажурирања нису подржана на овом NRF уређају." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此 NRF 裝置不支援 OTA 更新。" + "value" : "OTA 更新不支持 NRF 设备" } } } @@ -24221,10 +23328,10 @@ "value" : "ОТА ажурирања нису подржана на вашој платформи." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您的平台不支援 OTA 更新。" + "value" : "OTA 更新不支持你的平台" } } } @@ -24236,28 +23343,22 @@ "state" : "translated", "value" : "Остали извори података" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "其他資料來源" - } } } }, "Output live debug logging over serial, view and export position-redacted device logs over Bluetooth." : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ausgabe von Echtzeit-Fehlersuchprotokollen über die serielle Schnittstelle, Anzeige und Export von positionskorrigierten Geräteprotokollen über Bluetooth." + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Излаз дебаговања уживо преко серијског интерфејса, прегледајте и извозите логове уређаја са редукованим позицијама преко блутута." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "透過序列輸出即時除錯記錄,透過藍牙檢視和匯出位置刪除的裝置記錄。" - } } } }, @@ -24268,12 +23369,6 @@ "state" : "translated", "value" : "Излазни пин за зујалицу GPIO" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "輸出腳位 蜂鳴器 GPIO " - } } } }, @@ -24284,12 +23379,6 @@ "state" : "translated", "value" : "Излазни пин GPIO" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "輸出腳位 GPIO" - } } } }, @@ -24300,12 +23389,6 @@ "state" : "translated", "value" : "Излазни пин за вибрацију GPIO" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "輸出引腳振動 GPIO" - } } } }, @@ -24316,12 +23399,6 @@ "state" : "translated", "value" : "Премаши аутоматско откривање OLED екрана." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "覆寫自動 OLED 螢幕偵測。" - } } } }, @@ -24478,12 +23555,6 @@ "state" : "translated", "value" : "БЛЕ" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "BLE" - } } } }, @@ -24512,12 +23583,6 @@ "state" : "translated", "value" : "Нема логова PAX бројача" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "沒有 PAX 計數器日誌" - } } } }, @@ -24546,12 +23611,6 @@ "state" : "translated", "value" : "Избриши све PAX податке?" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "刪除所有PAX資料?" - } } } }, @@ -24580,12 +23639,6 @@ "state" : "translated", "value" : "Логови PAX бројача" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : " PAX 計數器日誌" - } } } }, @@ -24614,12 +23667,6 @@ "state" : "translated", "value" : "Укупно PAX" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "PAX總數" - } } } }, @@ -24648,12 +23695,6 @@ "state" : "translated", "value" : "ВајФај" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "Wi-Fi" - } } } }, @@ -24670,12 +23711,6 @@ "state" : "translated", "value" : "Изврши фабричко ресетовање чвора на који сте повезани" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "在您連接的節點上執行出廠重設" - } } } }, @@ -24693,12 +23728,6 @@ "state" : "translated", "value" : "Филипини 433MHz" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "菲律賓 433MHz" - } } } }, @@ -24716,12 +23745,6 @@ "state" : "translated", "value" : "Филипини 868MHz" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "菲律賓 868MHz" - } } } }, @@ -24739,12 +23762,6 @@ "state" : "translated", "value" : "Филипини 915MHz" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "菲律賓 915MHz" - } } } }, @@ -24866,13 +23883,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "电台通过手机获取定位的时间间隔,但是向 Mesh 网络中刷新定位的时间间隔由电台控制。" + "value" : "电台通过手机获取定位的时间间隔,但是向 Mesh 网络中发送定位的时间间隔由电台控制。" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "裝置通過手機獲得定位的時間間隔,但是向 Mesh 網路中更新定位的時間間隔由裝置控制。" + "value" : "電台通過手機獲得定位的時間間隔,但是向 Mesh 網路中更新定位的時間間隔由電台控制。" } } } @@ -24884,12 +23901,6 @@ "state" : "translated", "value" : "Пин %lld" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "釘選 %lld" - } } } }, @@ -24900,12 +23911,6 @@ "state" : "translated", "value" : "Пин А" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "引腳A" - } } } }, @@ -24916,12 +23921,6 @@ "state" : "translated", "value" : "Пин Б" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "引腳B" - } } } }, @@ -24939,10 +23938,10 @@ "value" : "Администрација чвора заснована на PKI захтева фирмвер верзију 2.5 или новију" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "基於 PKI 的節點管理,需要韌體版本 2.5以上" + "value" : "基于 PKI 的节点管理,需要 2.5 以上版本的固件" } } } @@ -24955,10 +23954,10 @@ "value" : "Молимо вас да се повежете на радио да бисте конфигурисали подешавања." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "請連接無線電設定。" + "value" : "请连接电台以修改配置。" } } } @@ -24977,12 +23976,6 @@ "state" : "translated", "value" : "Молимо изаберите регион" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "請設定區域" - } } } }, @@ -24993,12 +23986,6 @@ "state" : "translated", "value" : "Тачке интересовања" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "興趣點" - } } } }, @@ -25073,12 +24060,6 @@ "state" : "translated", "value" : "Неуспела размена позиција" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "位置交換失敗" - } } } }, @@ -25089,12 +24070,6 @@ "state" : "translated", "value" : "Захтевана размена позиција" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "位置交換請求" - } } } }, @@ -25105,12 +24080,6 @@ "state" : "translated", "value" : "Заставице позиције" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "位置旗標" - } } } }, @@ -25121,12 +24090,6 @@ "state" : "translated", "value" : "Логови позиција" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "位置日日誌" - } } } }, @@ -25137,12 +24100,6 @@ "state" : "translated", "value" : "Дневник позиција %lld тачака" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "位置日誌 %lld 點數" - } } } }, @@ -25153,12 +24110,6 @@ "state" : "translated", "value" : "Пакети позиција" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "位置數據包" - } } } }, @@ -25175,12 +24126,6 @@ "state" : "translated", "value" : "Позиција послата" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "位置發送" - } } } }, @@ -25280,12 +24225,6 @@ "state" : "translated", "value" : "У кругу %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@ 以內" - } } } }, @@ -25297,10 +24236,10 @@ "value" : "Позиционирање укључено" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已啟用的位置" + "value" : "启用定位" } } } @@ -25313,10 +24252,10 @@ "value" : "Позиције ће бити обезбеђене путем GPS-а вашег уређаја. Ако одаберете опцију „онемогућено“ или „није присутно“, можете подесити фиксну позицију." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "位置將由您的裝置 GPS 提供,如果您選擇已停用或不存在,您可以設定固定位置。" + "value" : "位置将由设备 GPS 提供,如果选择禁用或不存在,则可以设置固定位置。" } } } @@ -25328,12 +24267,6 @@ "state" : "translated", "value" : "Мерни подаци о снази" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "電源測量" - } } } }, @@ -25344,12 +24277,6 @@ "state" : "translated", "value" : "Искључи" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "關閉電源" - } } } }, @@ -25360,12 +24287,6 @@ "state" : "translated", "value" : "Опције снаге" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "電源選項" - } } } }, @@ -25376,11 +24297,27 @@ "state" : "translated", "value" : "Снага екрана" } - }, - "zh-Hant-TW" : { + } + } + }, + "power.metrics.delete" : { + "extractionState" : "manual", + "localizations" : { + "en" : { "stringUnit" : { "state" : "translated", - "value" : "電源顯示" + "value" : "Delete all power metrics?" + } + } + } + }, + "power.metrics.log" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Power Metrics Log" } } } @@ -25398,12 +24335,6 @@ "state" : "translated", "value" : "Напајано" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "電源" - } } } }, @@ -25420,12 +24351,6 @@ "state" : "translated", "value" : "Прецизне локације" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "精確位置" - } } } }, @@ -25483,13 +24408,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "首选电台" + "value" : "默认电台" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "首選裝置" + "value" : "首選電台" } } } @@ -25502,10 +24427,10 @@ "value" : "Унапред подешено" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "預設值" + "value" : "预设" } } } @@ -25517,12 +24442,6 @@ "state" : "translated", "value" : "Притисни пин" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "按下引腳" - } } } }, @@ -25539,12 +24458,6 @@ "state" : "translated", "value" : "ПРИТИСАК" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "壓力" - } } } }, @@ -25555,27 +24468,27 @@ "state" : "translated", "value" : "Основни" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "主要" - } } } }, "Primary Admin Key" : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erster Admin-Schlüssel" + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Основни административни кључ" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主要管理權限Key" + "value" : "一级管理员密钥" } } } @@ -25587,27 +24500,27 @@ "state" : "translated", "value" : "Основни GPIO" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "主要GPIO" - } } } }, "Private Key" : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Privater Schlüssel" + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Приватни кључ" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "私人密碼Key" + "value" : "私钥" } } } @@ -25620,26 +24533,32 @@ "value" : "Информације о пројекту" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "資訊" + "value" : "项目信息" } } } }, "Public Key" : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Öffentlicher Schlüssel" + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Јавни кључ" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "公開金鑰" + "value" : "公钥" } } } @@ -25652,10 +24571,10 @@ "value" : "Шифровање јавним кљулем" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "公開金鑰加密" + "value" : "公钥加密" } } } @@ -25668,10 +24587,10 @@ "value" : "Неслагање јавних кључева" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "公開金鑰不匹配" + "value" : "公钥不匹配" } } } @@ -25683,12 +24602,6 @@ "state" : "translated", "value" : "PWD" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "PWD" - } } } }, @@ -25700,12 +24613,6 @@ "state" : "translated", "value" : "Радио веза је прекинута" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "無線電斷開" - } } } }, @@ -25768,7 +24675,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "裝置設定" + "value" : "電台設定" } } } @@ -26043,12 +24950,6 @@ "state" : "translated", "value" : "Поново покрени чвор?" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "重新啟動節點?" - } } } }, @@ -26111,7 +25012,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "重新啟動節點?" + "value" : "重啟中繼點" } } } @@ -26124,10 +25025,10 @@ "value" : "Режим реемитовања" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重播模式" + "value" : "转播模式" } } } @@ -26139,12 +25040,6 @@ "state" : "translated", "value" : "Пријемни податак (rxd) GPIO пин" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "接收資料 (RXD) GPIO 針腳" - } } } }, @@ -26289,12 +25184,6 @@ "state" : "translated", "value" : "Снимање руте" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "錄製路由" - } } } }, @@ -26305,12 +25194,6 @@ "state" : "translated", "value" : "Освежи метаподатке уређаја" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "更新裝置元資料" - } } } }, @@ -26328,10 +25211,10 @@ "value" : "Регион" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "地區" + "value" : "区域" } } } @@ -26362,12 +25245,6 @@ "state" : "translated", "value" : "Пре подне" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "下午" - } } } }, @@ -26397,12 +25274,6 @@ "state" : "translated", "value" : "Вече" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "晚上" - } } } }, @@ -26432,12 +25303,6 @@ "state" : "translated", "value" : "Подне" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "中午" - } } } }, @@ -26467,12 +25332,6 @@ "state" : "translated", "value" : "Јутро" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "早上" - } } } }, @@ -26502,12 +25361,6 @@ "state" : "translated", "value" : "Ноћ" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "凌晨" - } } } }, @@ -26518,12 +25371,6 @@ "state" : "translated", "value" : "Белешке о издању" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "發佈說明" - } } } }, @@ -26534,12 +25381,6 @@ "state" : "translated", "value" : "Даљинска администрација за: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "遠端管理為: %@" - } } } }, @@ -26550,12 +25391,6 @@ "state" : "translated", "value" : "Администрација застарелих система на даљину: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "舊版遠端管理員:%@" - } } } }, @@ -26566,12 +25401,6 @@ "state" : "translated", "value" : "Администрација PKI на даљину: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "遠端 PKI 管理員: %@" - } } } }, @@ -26588,12 +25417,6 @@ "state" : "translated", "value" : "Уклони" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "移除" - } } } }, @@ -26610,12 +25433,6 @@ "state" : "translated", "value" : "Уклони из омиљених" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "從我的最愛移除" - } } } }, @@ -26627,10 +25444,10 @@ "value" : "Уклони из игнорисаних" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "從忽略中移除" + "value" : "从忽略中删除" } } } @@ -26642,12 +25459,6 @@ "state" : "translated", "value" : "Замени канале" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "替換頻道" - } } } }, @@ -26722,12 +25533,6 @@ "state" : "translated", "value" : "Захтевај администрацију застарелих система: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "請求管理員:%@" - } } } }, @@ -26738,12 +25543,6 @@ "state" : "translated", "value" : "Захтевај PKI администрацију: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "Request PKI Admin: %@" - } } } }, @@ -26754,12 +25553,6 @@ "state" : "translated", "value" : "Захтева да уређај има акцелерометар." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "需要裝置上有加速計。" - } } } }, @@ -26777,10 +25570,10 @@ "value" : "Ресетовање подешавања апликације" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置應用程式設定" + "value" : "重置 App 设置" } } } @@ -26798,12 +25591,6 @@ "state" : "translated", "value" : "Ресетовање базе чворова (NodeDB)" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "重置 NodeDB" - } } } }, @@ -26820,12 +25607,6 @@ "state" : "translated", "value" : "Поновно покретање" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "重新啟動" - } } } }, @@ -26842,12 +25623,6 @@ "state" : "translated", "value" : "Поновно покретање на чвор на који сте повезани" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "重新啟動到您連線的節點" - } } } }, @@ -26864,12 +25639,6 @@ "state" : "translated", "value" : "Обнова" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "恢復" - } } } }, @@ -26951,10 +25720,10 @@ "value" : "Оцените апликацију" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "檢視應用程式" + "value" : "审查应用程序" } } } @@ -27101,12 +25870,6 @@ "state" : "translated", "value" : "Улога" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "角色" - } } } }, @@ -27123,12 +25886,6 @@ "state" : "translated", "value" : "Улога: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "角色:%@" - } } } }, @@ -27145,12 +25902,6 @@ "state" : "translated", "value" : "Улоге" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "角色" - } } } }, @@ -27161,12 +25912,6 @@ "state" : "translated", "value" : "Корен тема" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "MQTT 根主題" - } } } }, @@ -27178,10 +25923,10 @@ "value" : "Ротациони 1" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "旋轉 1" + "value" : "旋转一次" } } } @@ -27193,12 +25938,6 @@ "state" : "translated", "value" : "Путања назад: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "回傳路由:%@" - } } } }, @@ -27209,12 +25948,6 @@ "state" : "translated", "value" : "Линије руте" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "路由" - } } } }, @@ -27225,12 +25958,6 @@ "state" : "translated", "value" : "Снимање руте паузирано" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "路線錄製暫停" - } } } }, @@ -27247,12 +25974,6 @@ "state" : "translated", "value" : "Рута: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "路由:%@" - } } } }, @@ -27327,12 +26048,6 @@ "state" : "translated", "value" : "Рутер" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "路由器" - } } } }, @@ -27343,12 +26058,6 @@ "state" : "translated", "value" : "Опције рутера" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "路由器選項" - } } } }, @@ -27443,10 +26152,10 @@ "value" : "Вожња бицикле" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "騎自行車" + "value" : "自行车" } } } @@ -27478,10 +26187,10 @@ "value" : "Вожња аута" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "開車" + "value" : "驾驶" } } } @@ -27513,10 +26222,10 @@ "value" : "тура бициклом" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自行車之旅" + "value" : "自行车旅行" } } } @@ -27548,10 +26257,10 @@ "value" : "вожња" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "開車" + "value" : "驾驶" } } } @@ -27583,10 +26292,10 @@ "value" : "планинарње" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "登山 " + "value" : "徒步" } } } @@ -27612,10 +26321,10 @@ "value" : "Вожња преко копна" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "山路駕駛" + "value" : "越野" } } } @@ -27647,7 +26356,7 @@ "value" : "ски тура" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "滑雪之旅" @@ -27682,10 +26391,10 @@ "value" : "шетња" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "走路" + "value" : "步行" } } } @@ -27717,10 +26426,10 @@ "value" : "Планинарење" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "登山" + "value" : "徒步" } } } @@ -27746,10 +26455,10 @@ "value" : "Оверлендинг" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "越境" + "value" : "越野" } } } @@ -27781,7 +26490,7 @@ "value" : "Скијање" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "滑雪" @@ -27816,10 +26525,10 @@ "value" : "Шетња" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "走路" + "value" : "步行" } } } @@ -28494,12 +27203,6 @@ "state" : "translated", "value" : "Шифровано слање није успело" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "加密傳送失敗" - } } } }, @@ -28524,10 +27227,10 @@ "value" : "Непознат јавни кључ" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未知公開金鑰" + "value" : "未知的公钥" } } } @@ -28669,12 +27372,6 @@ "state" : "translated", "value" : "RSSI %@ dBm" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "RSSI %@ dBm" - } } } }, @@ -28685,12 +27382,6 @@ "state" : "translated", "value" : "RSSI %ddB" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "RSSI %ddB" - } } } }, @@ -28701,12 +27392,6 @@ "state" : "translated", "value" : "RSSI %llddB" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "RSSI %llddB" - } } } }, @@ -28724,12 +27409,6 @@ "state" : "translated", "value" : "Русија" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "俄羅斯" - } } } }, @@ -28740,12 +27419,6 @@ "state" : "translated", "value" : "Појачање пријемника" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "RX 增強增益" - } } } }, @@ -28892,12 +27565,6 @@ "state" : "translated", "value" : "Сателита" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "衛星" - } } } }, @@ -28914,12 +27581,6 @@ "state" : "translated", "value" : "Процена броја сателита %lld" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "衛星 估計 %lld" - } } } }, @@ -28936,12 +27597,6 @@ "state" : "translated", "value" : "Сателити на видику: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "尋星: %@" - } } } }, @@ -29022,12 +27677,6 @@ "state" : "translated", "value" : "Сачувај" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "儲存" - } } } }, @@ -29045,10 +27694,10 @@ "value" : "Сачувати корисничу конфигурацију за %@?" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "儲存使用者設定到 %@?" + "value" : "保存用户配置到 %@?" } } } @@ -29126,10 +27775,10 @@ "value" : "Снима CSV са детаљима порука теста домета, тренутно доступно само на ESP32 уређајима са веб сервером." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "儲存包含範圍測試訊息詳細資訊的 CSV,目前僅在具有 Web 伺服器的 ESP32 裝置上可用。" + "value" : "保存包含量程测试报文详细信息的 CSV 文件,目前仅适用于配有网络服务器的 ESP32 设备。" } } } @@ -29141,12 +27790,6 @@ "state" : "translated", "value" : "Екран укључен за" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "螢幕開啟" - } } } }, @@ -29163,12 +27806,6 @@ "state" : "translated", "value" : "Претражи" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "搜尋" - } } } }, @@ -29179,12 +27816,6 @@ "state" : "translated", "value" : "Други" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "次要" - } } } }, @@ -29195,27 +27826,27 @@ "state" : "translated", "value" : "Секундарни" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "次要" - } } } }, "Secondary Admin Key" : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zweiter Admin-Schlüssel" + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Секундарни административни кључ" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "次要管理金鑰" + "value" : "二级管理员密钥" } } } @@ -29234,10 +27865,10 @@ "value" : "Сигурност" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安全性" + "value" : "安全" } } } @@ -29256,26 +27887,32 @@ "value" : "Сигурносна подешавања" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安全性設定" + "value" : "安全配置" } } } }, "Security Config Settings require a firmware version 2.5+" : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sicherheitskonfigurationseinstellungen erfordern eine Firmware mit Version 2.5 oder höher" + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Сигурносна подешавања захтевају фирмвер верзију 2.5+" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安全組態設定需要 2.5以上版本的韌體" + "value" : "安全配置需要固件版本 2.5+" } } } @@ -29293,12 +27930,6 @@ "state" : "translated", "value" : "Одабери канал" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "頻道" - } } } }, @@ -29309,12 +27940,6 @@ "state" : "translated", "value" : "Изабери разговор" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "選擇對話" - } } } }, @@ -29325,12 +27950,6 @@ "state" : "translated", "value" : "Изабери тип разговора" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "選擇對話類型" - } } } }, @@ -29341,12 +27960,6 @@ "state" : "translated", "value" : "Изабери пут праћења кроз мрежу" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "選擇追蹤路由" - } } } }, @@ -29474,7 +28087,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "選擇一個節點" + "value" : "選擇中繼點" } } } @@ -29492,12 +28105,6 @@ "state" : "translated", "value" : "Пошаљи" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "發送" - } } } }, @@ -29514,12 +28121,6 @@ "state" : "translated", "value" : "Пошаљи ${messageContent} на ${channelNumber}" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "傳送 ${messageContent} 到 ${channelNumber}" - } } } }, @@ -29536,12 +28137,6 @@ "state" : "translated", "value" : "Пошаљи групну поруку" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "傳送群組訊息" - } } } }, @@ -29552,12 +28147,6 @@ "state" : "translated", "value" : "Пошаљи поруку на одређени месхтастичан канал" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "傳送訊息到某個 meshtastic 頻道" - } } } }, @@ -29569,10 +28158,10 @@ "value" : "Пошаљи позицију на примарном каналу када се корисничко дугме три пута кликне." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "當使用者按鈕被點擊三次時,會在主要頻道上傳送位置。" + "value" : "当用户按钮被点击三次时,在主通道上发送定位。" } } } @@ -29590,12 +28179,6 @@ "state" : "translated", "value" : "Пошаљи искључење чвору на који си повезан" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "傳送關機到您連線的節點" - } } } }, @@ -29612,12 +28195,6 @@ "state" : "translated", "value" : "Пошаљи тачку путање" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "傳送航點" - } } } }, @@ -29629,10 +28206,10 @@ "value" : "Пошаљи ASCII звона са поруком упозорења. Корисно за покретање спољашњег обавештења на звону." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "傳送 ASCII 鈴聲與警示訊息。有助於在鈴聲中觸發外部通知。" + "value" : "发送带有警报信息的 ASCII 铃声。用于触发外部铃声通知。" } } } @@ -29651,10 +28228,10 @@ "value" : "Пошаљи звоно" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "發送鈴聲" + "value" : "发送铃声" } } } @@ -29667,10 +28244,10 @@ "value" : "Пошаљи сигнал поновног покретања (OTA)" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "傳送重新開機 OTA" + "value" : "发送重启 OTA" } } } @@ -29683,10 +28260,10 @@ "value" : "Инерварл пошиљаоца" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "發送間隔" + "value" : "发送间隔" } } } @@ -29699,10 +28276,10 @@ "value" : "Метрике сензора" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "傳感器測量" + "value" : "传感器指标" } } } @@ -29714,12 +28291,6 @@ "state" : "translated", "value" : "Опције сензора" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "傳感器選項" - } } } }, @@ -29730,28 +28301,22 @@ "state" : "translated", "value" : "Опције сензора" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "傳感器選項" - } } } }, "Sent out to other nodes on the mesh to allow them to compute a shared secret key." : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wird an andere Knoten im Netz gesendet, damit diese einen gemeinsamen geheimen Schlüssel berechnen können." + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Послато другим чворовима на меш мрежи како би им омогућило да израчунају заједнички тајни кључ." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "傳送給網狀網路上的其他節點,讓它們計算共享秘鑰。" - } } } }, @@ -29768,12 +28333,6 @@ "state" : "translated", "value" : "Број секвенце" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "序號" - } } } }, @@ -29790,12 +28349,6 @@ "state" : "translated", "value" : "Секвенца: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "序號:%@" - } } } }, @@ -29865,33 +28418,33 @@ }, "Serial Console" : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Serielle Konsole" + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Серијска конзола" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "串口終端機" - } } } }, "Serial Console over the Stream API." : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Serielle Konsole über die Stream-API." + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Серијска конзола преко Stream API-ја." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "透過 Stream API 的t串口終端機。" - } } } }, @@ -30291,12 +28844,6 @@ "state" : "translated", "value" : "Серије" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "系列" - } } } }, @@ -30313,12 +28860,6 @@ "state" : "translated", "value" : "Сервер" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "服務器" - } } } }, @@ -30335,12 +28876,6 @@ "state" : "translated", "value" : "Адреса сервера" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "服務器地址" - } } } }, @@ -30351,12 +28886,6 @@ "state" : "translated", "value" : "Подеси" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "設定" - } } } }, @@ -30367,12 +28896,6 @@ "state" : "translated", "value" : "Подеси GPIO пинове за RXD и TXD." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "設定 RXD 和 TXD 的 GPIO 引腳。" - } } } }, @@ -30447,12 +28970,6 @@ "state" : "translated", "value" : "Подешава максималан број скокова. Подразумевано је 3, а повећање броја одобрених скокова такође повећава загушење и треба га користити опрезно. Поруке емитоване са 0 скокова неће добити потврде пријема (ACK)." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "設定最大跳數,預設值為 3。增加跳數也會增加擁塞,應小心使用。O hop (O跳)廣播訊息不會得到 ACK。" - } } } }, @@ -30533,12 +29050,6 @@ "state" : "translated", "value" : "Дели QR код и линк" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "分享 QR 代碼與連結" - } } } }, @@ -30684,12 +29195,6 @@ "state" : "translated", "value" : "Дељени кључ" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "共用鑰匙" - } } } }, @@ -30707,10 +29212,10 @@ "value" : "Кратко име" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "短名稱" + "value" : "短名称" } } } @@ -30729,10 +29234,10 @@ "value" : "Кратко име: %@" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "短名稱: %@" + "value" : "短名称: %@" } } } @@ -30751,12 +29256,6 @@ "state" : "translated", "value" : "Кратки домет - Брзо" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "短距離 - 快速" - } } } }, @@ -30774,12 +29273,6 @@ "state" : "translated", "value" : "Кратки домет - Споро" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "短距離 - 慢速" - } } } }, @@ -30797,12 +29290,6 @@ "state" : "translated", "value" : "Кратки домет - Турбо" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "短距離 - Turbo" - } } } }, @@ -30819,12 +29306,6 @@ "state" : "translated", "value" : "Прикажи узбуне" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "顯示警示" - } } } }, @@ -30841,12 +29322,6 @@ "state" : "translated", "value" : "Прикажи узбуне" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "顯示警示" - } } } }, @@ -30863,12 +29338,6 @@ "state" : "translated", "value" : "Прикажи чворове" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "顯示節點" - } } } }, @@ -30885,12 +29354,6 @@ "state" : "translated", "value" : "Прикажи на екрану уређаја" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "顯示在裝置螢幕上" - } } } }, @@ -30907,12 +29370,6 @@ "state" : "translated", "value" : "Прикажи на мапи меш мреже." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "顯示在網格地圖上。" - } } } }, @@ -30929,12 +29386,6 @@ "state" : "translated", "value" : "Прикажи тачке путање" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "顯示路點" - } } } }, @@ -30951,12 +29402,6 @@ "state" : "translated", "value" : "Искључи" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "關閉" - } } } }, @@ -30973,12 +29418,6 @@ "state" : "translated", "value" : "Искључити чвор?" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "關閉節點?" - } } } }, @@ -30995,12 +29434,6 @@ "state" : "translated", "value" : "Искључити чвор?" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "關閉節點?" - } } } }, @@ -31011,12 +29444,6 @@ "state" : "translated", "value" : "Сигнал %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "訊號 %@" - } } } }, @@ -31034,12 +29461,6 @@ "state" : "translated", "value" : "Сингапур 923MHz" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "新加坡 923MHz" - } } } }, @@ -31050,12 +29471,6 @@ "state" : "translated", "value" : "Паметно позиционирање" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "智慧定位" - } } } }, @@ -31066,12 +29481,6 @@ "state" : "translated", "value" : "SNR" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "SNR" - } } } }, @@ -31082,12 +29491,6 @@ "state" : "translated", "value" : "SNR %@ dB" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "SNR %@ dB" - } } } }, @@ -31098,12 +29501,6 @@ "state" : "translated", "value" : "SNR %@dB" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "SNR %@dB" - } } } }, @@ -31114,12 +29511,6 @@ "state" : "translated", "value" : "Одређује колико дуго треба да траје излазни сигнал надзираног GPIO-а." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "指定監視 GPIO 的輸出時間。" - } } } }, @@ -31136,12 +29527,6 @@ "state" : "translated", "value" : "Брзина" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "速度" - } } } }, @@ -31158,12 +29543,6 @@ "state" : "translated", "value" : "Брзина %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "速度%@" - } } } }, @@ -31180,12 +29559,6 @@ "state" : "translated", "value" : "Брзина: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "速度:%@" - } } } }, @@ -31196,12 +29569,6 @@ "state" : "translated", "value" : "Фактор ширења" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "擴展因子" - } } } }, @@ -31470,12 +29837,6 @@ "state" : "translated", "value" : "Интервал емитовања стања" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "狀態廣播間隔" - } } } }, @@ -31486,12 +29847,6 @@ "state" : "translated", "value" : "Клијенти за складиштење и прослеђивање могу затражити историју од рутера на мрежи." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "儲存與轉送用戶端可以向網路中的路由器請求歷史記錄。" - } } } }, @@ -31502,12 +29857,6 @@ "state" : "translated", "value" : "Рутер за складиштење и прослеђивање захтева ESP32 уређај са PSRAM." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "儲存與轉送路由器裝置需要具有 PSRAM 的 ESP32 裝置。" - } } } }, @@ -31780,12 +30129,6 @@ "state" : "translated", "value" : "Подржан" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "支援" - } } } }, @@ -31797,10 +30140,10 @@ "value" : "Подржани I2C повезани сензори ће бити аутоматски детектовани. Сензори су: BMP280, BME280, BME680, MCP9808, INA219, INA260, LPS22 и SHTC3." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "支援的 I2C 連接感測器會自動偵測,感測器包括 BMP280、BME280、BME680、MCP9808、INA219、INA260、LPS22 和 SHTC3。" + "value" : "将自动检测支持 I2C 连接的传感器,包括 BMP280、BME280、BME680、MCP9808、INA219、INA260、LPS22 和 SHTC3。" } } } @@ -31812,12 +30155,6 @@ "state" : "translated", "value" : "Табела" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "表格" - } } } }, @@ -31835,12 +30172,6 @@ "state" : "translated", "value" : "Тајван" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "台灣" - } } } }, @@ -31903,7 +30234,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "表情回應" + "value" : "響應" } } } @@ -32442,12 +30773,6 @@ "state" : "translated", "value" : "Опасно" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "危險" - } } } }, @@ -32465,12 +30790,6 @@ "state" : "translated", "value" : "Нездраво" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "不健康" - } } } }, @@ -32488,12 +30807,6 @@ "state" : "translated", "value" : "Веома нездраво" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "非常不健康" - } } } }, @@ -32639,12 +30952,6 @@ "state" : "translated", "value" : "Добро" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "良好" - } } } }, @@ -32663,10 +30970,10 @@ "value" : "Умерено" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "中度" + "value" : "适度" } } } @@ -32685,12 +30992,6 @@ "state" : "translated", "value" : "Нездраво за осетљиве групе" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "對敏感族群而言不健康" - } } } }, @@ -32707,12 +31008,6 @@ "state" : "translated", "value" : "Темп." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "溫度" - } } } }, @@ -32729,12 +31024,6 @@ "state" : "translated", "value" : "Температура" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "溫度" - } } } }, @@ -32751,27 +31040,27 @@ "state" : "translated", "value" : "Десет пинута" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "十分鐘" - } } } }, "Tertiary Admin Key" : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dritter Admin-Schlüssel" + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Терцијарни административни кључ" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第三級管理鑰匙" + "value" : "三级管理员密钥" } } } @@ -32790,12 +31079,6 @@ "state" : "translated", "value" : "TFT екрани у пуној боји" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "TFT 全彩顯示器" - } } } }, @@ -32813,12 +31096,6 @@ "state" : "translated", "value" : "Тајланд" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "泰國" - } } } }, @@ -32829,12 +31106,6 @@ "state" : "translated", "value" : "Време чекања пре него што сматрамо да је ваш пакет завршен." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "在我們認為您的封包完成之前所需的等待時間。" - } } } }, @@ -32845,12 +31116,6 @@ "state" : "translated", "value" : "Смер компаса на екрану изван круга увек ће указивати на север." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "圓圈外畫面上的指南針方向永遠指向北方。" - } } } }, @@ -32867,12 +31132,6 @@ "state" : "translated", "value" : "Тачка росе тренутно износи %@." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "現在的露點是 %@。" - } } } }, @@ -32883,12 +31142,6 @@ "state" : "translated", "value" : "Најбржа брзина којом ће се ажурирати позиција уколико је задовољен минимални услов за растојање." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "如果已滿足最小距離,則會以最快的速度傳送位置更新" - } } } }, @@ -32900,10 +31153,10 @@ "value" : "Формат који се користи за приказивање GPS координата на екрану уређаја." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用來在裝置螢幕上顯示 GPS 座標的格式。" + "value" : "用于在设备屏幕上显示 GPS 坐标的格式。" } } } @@ -32916,10 +31169,10 @@ "value" : "Последња 4 знака MAC адресе уређаја ће бити додата кратком имену како би се подесило BLE име уређаја. Кратко име може бити до 4 бајта дуго." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "裝置 MAC 位址的最後 4 個字元會附加到簡稱,以設定裝置的 BLE Name。 短名稱最長可達 4 位元組。" + "value" : "设备 MAC 地址的后 4 位将附加到短名称中,以设置设备的 BLE 名称。 短名称的长度最多为 4 个字节。" } } } @@ -32931,12 +31184,6 @@ "state" : "translated", "value" : "Максимални интервал који може протећи без да чвор емитује позицију." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "節點不廣播位置的最大時間間隔" - } } } }, @@ -32948,10 +31195,10 @@ "value" : "Мештастик апликације за Епл уређаје подржавају верзију фирмвера %@ и новије." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Meshtastic Apple 應用程式支援 %@ 及以上版本的韌體。" + "value" : "Meshtastic Apple 应用程序支持 %@ 及以上版本的固件。" } } } @@ -32964,10 +31211,10 @@ "value" : "Минимална промена растојања у метрима која ће се узети у обзир за паметно емитовање позиције." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "智慧型位置廣播要考慮的最小距離變化(以公尺為單位)。" + "value" : "智能位置广播考虑的最小距离变化(以米为单位)。" } } } @@ -32980,26 +31227,32 @@ "value" : "Најновији јавни кључ за овај чвор се не подудара са претходно снимљеним кључем. Можете избрисати чвор и дозволити му да поново размени кључеве, али ово такође може указивати на озбиљнији безбедносни проблем. Контактирајте корисника преко другог поузданог канала како бисте утврдили да ли је промена кључа резултат фабричког ресетовања или друге намерне акције." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此節點的最新公開金鑰與先前記錄的金鑰不符。您可以刪除節點,讓它重新交換金鑰,但這也可能表示有更嚴重的安全問題。透過其他可信賴的管道與使用者聯絡,以確定金鑰變更是否因為出廠重設或其他故意的動作。" + "value" : "该节点的最新公钥与之前记录的公钥不匹配。您可以删除该节点,让它重新交换公钥,但这也可能表明存在更严重的安全问题。通过其他可信渠道联系用户,以确定公钥更改是否是由于出厂重置或其他故意行为造成的。" } } } }, "The primary public key authorized to send admin messages to this node." : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Der erste öffentliche Schlüssel, der berechtigt ist, Admin-Nachrichten an diesen Knoten zu senden." + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Примарни јавни кључ овлашћен за слање административних порука овом чвору." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "授權傳送管理訊息到此節點的主要公開金鑰。" + "value" : "授权向该节点发送管理信息的一级管理员公钥。" } } } @@ -33012,10 +31265,10 @@ "value" : "Јавни кључ се не подудара са снимљеним кључем. Можете избрисати чвор и дозволити му да поново размени кључеве, али ово може указивати на озбиљнији безбедносни проблем. Контактирајте корисника преко другог поузданог канала како бисте утврдили да ли је промена кључа резултат фабричког ресетовања или друге намерне акције." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "公開金鑰與記錄的金鑰不相符。您可以刪除節點,讓它重新交換金鑰,但這可能表示有更嚴重的安全問題。透過其他可信賴的管道與使用者聯絡,以判斷金鑰變更是否因為出廠重設或其他故意的動作。" + "value" : "公钥与记录的公钥不匹配。您可以删除节点,让它重新交换公钥,但这可能表明存在更严重的安全问题。通过其他可信渠道联系用户,以确定公钥更改是否是由于出厂重置或其他故意行为造成的。" } } } @@ -33028,10 +31281,10 @@ "value" : "Регион у коме ћете користити ваше радио уређаје." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您要使用無線電的地區。" + "value" : "使用电台的地区。" } } } @@ -33044,26 +31297,32 @@ "value" : "Корен тема која ће се користити за MQTT." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用於 MQTT 的根主題。" + "value" : "用于 MQTT 的根主题。" } } } }, "The secondary public key authorized to send admin messages to this node." : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Der zweite öffentliche Schlüssel, der berechtigt ist, Admin-Nachrichten an diesen Knoten zu senden." + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Секундарни јавни кључ овлашћен за слање административних порука овом чвору." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "授權傳送管理訊息到此節點的次要公開金鑰。" + "value" : "授权向该节点发送管理信息的二级管理员公钥。" } } } @@ -33076,12 +31335,6 @@ "state" : "translated", "value" : "Наведени уређај је прекинуо везу са нама" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "指定的裝置與我們斷線" - } } } }, @@ -33092,27 +31345,27 @@ "state" : "translated", "value" : "Стање LED диоде (укључено/искључено)" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "LED 的狀態(開/關)" - } } } }, "The tertiary public key authorized to send admin messages to this node." : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Der dritte öffentliche Schlüssel, der berechtigt ist, Admin-Nachrichten an diesen Knoten zu senden." + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Терцијарни јавни кључ овлашћен за слање административних порука овом чвору." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "授權傳送管理訊息到此節點的第三級公開金鑰。" + "value" : "授权向该节点发送管理信息的三级管理员公钥。" } } } @@ -33124,12 +31377,6 @@ "state" : "translated", "value" : "Није било одговора на захтев за метаподатке уређаја преко административног канала за овај чвор." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "對於透過此節點的 admin 頻道提出的裝置元資料請求,一直沒有回應。" - } } } }, @@ -33140,12 +31387,6 @@ "state" : "translated", "value" : "Ова подешавања ће %@ канале. Тренутна LoRA конфигурација ће бити замењена. Ако дође до значајних промена у LoRA конфигурацији, уређај ће се поново покренути." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "這些設定將 %@ 頻道。目前的 LoRa 配置將會被取代,如果 LoRa 配置有重大變更,裝置將會重新開機" - } } } }, @@ -33162,12 +31403,6 @@ "state" : "translated", "value" : "Тридесет минута" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "三十分鐘" - } } } }, @@ -33178,12 +31413,6 @@ "state" : "translated", "value" : "Овај разговор ће бити обрисан." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "此對話將被刪除。" - } } } }, @@ -33194,12 +31423,6 @@ "state" : "translated", "value" : "Ово може потрајати. Одговор ће се појавити у евиденцији трасе праћења за чвор којем је послат." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "這可能需要一段時間,回應會出現在傳送到節點的追蹤路由記錄中。" - } } } }, @@ -33210,12 +31433,6 @@ "state" : "translated", "value" : "Ово може потрајати. Одговор ће се појавити у евиденцији трасе праћења за чвор којем је послат." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "這可能需要一段時間。回應會出現在它被傳送至的節點的追蹤路由記錄中。" - } } } }, @@ -33228,10 +31445,10 @@ "value" : "Ово одређује стварну фреквенцију на којој преносите у опсегу. Ако је постављено на 0, ова вредност ће се аутоматски израчунати на основу назива примарног канала." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "這決定您在頻帶中實際的傳輸頻率。如果設定為 0,這個值會根據主要頻道名稱自動計算。" + "value" : "这决定了您在频段内的实际发射频率。如果设置为 0,该值将根据主频道名称自动计算。" } } } @@ -33244,10 +31461,10 @@ "value" : "Овај уређај ће слати поруке за тестирање домета у одабраном интервалу." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "本裝置會在選取的時間間隔傳送範圍測試訊息。" + "value" : "该设备将按所选时间间隔发送测距信息。" } } } @@ -33265,12 +31482,6 @@ "state" : "translated", "value" : "Ова порука вероватно није била примљена." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "此訊息很可能沒有傳遞。" - } } } }, @@ -33281,12 +31492,6 @@ "state" : "translated", "value" : "Ово ће онемогућити фиксну позицију и уклонити тренутно постављену позицију." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "這將停用固定位置,並移除目前設定的位置。" - } } } }, @@ -33298,10 +31503,10 @@ "value" : "Ово ће послати тренутну позицију са вашег телефона и омогућити фиксну позицију." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "這將會從您的手機傳送目前位置,並啟用固定位置。" + "value" : "这将从手机发送当前位置并启用固定位置。" } } } @@ -33319,12 +31524,6 @@ "state" : "translated", "value" : "Време" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "時間" - } } } }, @@ -33341,12 +31540,6 @@ "state" : "translated", "value" : "Временски жиг" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "時間戳記" - } } } }, @@ -33363,12 +31556,6 @@ "state" : "translated", "value" : "Временска зона" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "時區" - } } } }, @@ -33385,12 +31572,6 @@ "state" : "translated", "value" : "Временска зона за датуме на екрану уређаја и у евиденцији." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "裝置畫面和記錄上日期的時區。" - } } } }, @@ -33529,12 +31710,6 @@ "state" : "translated", "value" : "Време и формат" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "時間與格式" - } } } }, @@ -33597,7 +31772,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "顯示目前通過藍芽連接的 Lora 裝置的信息。您可以向左滑動斷開裝置,長按查看統計訊息或開始即時活動。" + "value" : "顯示目前通過藍芽連接的 Lora 電台的信息。您可以向左滑動斷開電台,長按查看統計訊息或開始即時活動。" } } } @@ -33655,13 +31830,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接到 LoRa 电台" + "value" : "电台已连接" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "連接到 LoRa 裝置" + "value" : "連接到 LoRa 電台" } } } @@ -33847,13 +32022,13 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "大多数 Mesh 上的数据都通过主要频道发送。您可以设置次要频道,以创建额外的消息组,并通过其自己的密钥进行安全保护。 [频道配置提示](https://meshtastic.org/docs/configuration/radio/channels/)" + "value" : "Mesh 网格上的大部分数据都通过主频道发送。您可以设置辅助频道以创建由其自身密钥保护的消息组。[频道配置提示](https://meshtastic.org/docs/configuration/tips/)" } }, "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "您網狀網路上的大部分資料都是透過主要頻道傳送。您可以設定次要頻道,以建立額外的訊息群組,並由它們自己的金鑰保護。[Channel config tips](https://meshtastic.org/docs/configuration/tips/)" + "value" : "現在 Mesh 上的資料會通過主通道發送。您可以設定輔助通道來建立由自己的金鑰保護的其他訊息組 [頻道設定提示](https://meshtastic.org/docs/configuration/radio/channels/)" } } } @@ -33981,7 +32156,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "在 Meshtastic 網路中最多有 8 個頻道。第一個頻道是主頻道,大多數活動都發生在這裡,也是必需的。如果您不共享主頻道,您的第一個共享頻道就會成為其他網路的主頻道。它會在其主頻道和您的輔助頻道上對話。名稱為 admin 的頻道可遠端控制節點。其他頻道用於私人群组,每個群組都有自己的密鑰。" + "value" : "在 Meshtastic 網路中最多有 8 個頻道。第一個頻道是主頻道,大多數活動都發生在這裡,也是必需的。如果您不共享主頻道,您的第一個共享頻道就會成為其他網路的主頻道。它會在其主頻道和您的輔助頻道上對話。名稱為 admin 的頻道可遠端控制中繼點。其他頻道用於私人群组,每個群組都有自己的密鑰。" } } } @@ -34103,7 +32278,7 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您可以发送和接收直频消息和群聊。在任何信息中,您都可以长按查看可用的操作,如复制、回复、拍一拍、删除以及详情。" + "value" : "您可以发送和接收群聊或私聊消息。在任何消息中,您都可以长按查看可用的操作,如复制、回复、拍一拍、删除以及投递详情。" } }, "zh-Hant-TW" : { @@ -34173,7 +32348,7 @@ "zh-Hant-TW" : { "stringUnit" : { "state" : "translated", - "value" : "訊息" + "value" : "消息" } } } @@ -34186,10 +32361,10 @@ "value" : "TLS укључен" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已啟用 TLS" + "value" : "启用 TLS" } } } @@ -34202,12 +32377,6 @@ "state" : "translated", "value" : "Тема: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "主題: %@" - } } } }, @@ -34224,12 +32393,6 @@ "state" : "translated", "value" : "Укупно" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "總計" - } } } }, @@ -34240,12 +32403,6 @@ "state" : "translated", "value" : "Праћење руте" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "追蹤路由" - } } } }, @@ -34256,11 +32413,28 @@ "state" : "translated", "value" : "Лог праћења руте комуникације" } + } + } + }, + "Trace route received directly by %@ with a SNR of %@ dB" : { + "extractionState" : "stale", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Trace route received directly by %1$@ with a SNR of %2$@ dB" + } }, - "zh-Hant-TW" : { + "sr" : { "stringUnit" : { "state" : "translated", - "value" : "追蹤路由日誌" + "value" : "Захтев за праћење руте комуникације директно примљен од %1$@ са SNR од %2$@ dB." + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "由 %1$@ 直接接收的跟踪路由,信噪比为 %2$@ dB" } } } @@ -34272,12 +32446,6 @@ "state" : "translated", "value" : "Захтев за праћење руте комуникације послат." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "已傳送追蹤路由" - } } } }, @@ -34288,12 +32456,6 @@ "state" : "translated", "value" : "Захтев за праћење руте комуникације послат до %@." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "傳送至 %@ 的追蹤路由" - } } } }, @@ -34304,12 +32466,6 @@ "state" : "translated", "value" : "Захтев за праћење руте комуникације до %@ није послат." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "未傳送至 %@ 的追蹤路由。" - } } } }, @@ -34320,12 +32476,6 @@ "state" : "translated", "value" : "Праћење руте комуникације је било ограничено по брзини. Можете послати захтев за праћење руте комуникације највише једном у сваких тридесет секунди." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "追蹤路由有速率限制。您最多可以每三十秒傳送一次追蹤路由。" - } } } }, @@ -34342,12 +32492,6 @@ "state" : "translated", "value" : "Саобраћај" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "交通" - } } } }, @@ -34358,12 +32502,6 @@ "state" : "translated", "value" : "GPIO pin за трансмисију података (txd)" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "傳輸資料 (TXD) GPIO 針腳" - } } } }, @@ -34375,10 +32513,10 @@ "value" : "Трансмитер укључен" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已啟用傳輸" + "value" : "启用传输" } } } @@ -34391,10 +32529,10 @@ "value" : "Третирај двоструки додир на подржаним акцелераметрима као притисак корисничког дугмета." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在支援的加速度計上點擊兩下視為按下使用者按鈕。" + "value" : "将支持双击的加速度计视为按下用户按钮。" } } } @@ -34406,12 +32544,6 @@ "state" : "translated", "value" : "Тип покретача" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "觸發類型" - } } } }, @@ -34422,12 +32554,6 @@ "state" : "translated", "value" : "Троструки клик за Ad Hoc пинг" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "三重點擊 Ad Hoc Ping" - } } } }, @@ -34444,12 +32570,6 @@ "state" : "translated", "value" : "Покушај поново" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "再試一次" - } } } }, @@ -34525,12 +32645,6 @@ "state" : "translated", "value" : "Два сата" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "兩個小時" - } } } }, @@ -34548,12 +32662,6 @@ "state" : "translated", "value" : "Украјина 433MHz" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "烏克蘭 433MHz" - } } } }, @@ -34571,12 +32679,6 @@ "state" : "translated", "value" : "Украјина 868MHz" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "烏克蘭 868MHz" - } } } }, @@ -34587,12 +32689,6 @@ "state" : "translated", "value" : "Уклони са фаворита" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "不喜歡" - } } } }, @@ -34610,12 +32706,6 @@ "state" : "translated", "value" : "Сједињене Америчке државе" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "美國" - } } } }, @@ -34626,12 +32716,6 @@ "state" : "translated", "value" : "Јединице приказане на екрану уређаја" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "裝置螢幕上顯示的單位" - } } } }, @@ -34834,12 +32918,6 @@ "state" : "translated", "value" : "Није подржано" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "不支援" - } } } }, @@ -34851,10 +32929,10 @@ "value" : "Горе Доле 1" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上 下 1" + "value" : "上下一次" } } } @@ -34866,12 +32944,6 @@ "state" : "translated", "value" : "Интервал ажурирања" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "更新間隔" - } } } }, @@ -35010,12 +33082,6 @@ "state" : "translated", "value" : "Ажурирани подаци о статистици чвора." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "更新節點統計資料" - } } } }, @@ -35032,12 +33098,6 @@ "state" : "translated", "value" : "Ажуриран: %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "更新時間:%@" - } } } }, @@ -35049,10 +33109,10 @@ "value" : "Укључен узлазни канал" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上行啟用" + "value" : "启用上传" } } } @@ -35088,12 +33148,6 @@ "state" : "translated", "value" : "Време рада" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "正常運行時間" - } } } }, @@ -35105,10 +33159,10 @@ "value" : "Користи PWM излаз (као што је RAK звучник) за мелодије уместо укључивања/искључивања излаза. Ово ће игнорисати подешавања излаза, трајање излаза и активна подешавања и користити подешавање GPIO опције звучника у конфигурацији уређаја." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 PWM 輸出(例如 RAK 蜂鳴器)來播放音調,而非僅使用開/關輸出。這將忽略輸出設定、輸出持續時間以及啟用設定,並改用設備配置中的蜂鳴器 GPIO 選項。" + "value" : "使用 PWM 输出(如 RAK 蜂鸣器)代替开/关输出进行调谐。这将忽略输出、输出持续时间和激活设置,而使用设备配置蜂鸣器 GPIO 选项。" } } } @@ -35120,12 +33174,6 @@ "state" : "translated", "value" : "Користи I2S као звучник" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "使用 I2S 作為蜂鳴器。" - } } } }, @@ -35137,10 +33185,10 @@ "value" : "Користи предефинисано подешавање" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用預設設定。" + "value" : "使用预设" } } } @@ -35153,26 +33201,32 @@ "value" : "Користи PWM звучник" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 PWM 蜂鳴器。" + "value" : "使用 PWM 蜂鸣器" } } } }, - "Used to create a shared key with a remote device." : { + "Wird verwendet, um einen gemeinsamen Schlüssel mit einem entfernten Gerät zu erstellen." : { "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verbunden mit einem Knoten" + } + }, "sr" : { "stringUnit" : { "state" : "translated", "value" : "Користи се за креирање заједничког кључа са удаљеним уређајем." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用於與遠端設備建立共享密鑰。" + "value" : "用于与远程设备创建共享密钥。" } } } @@ -35249,10 +33303,10 @@ "value" : "Корисничка подешавања" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用者設定" + "value" : "用户配置" } } } @@ -35265,10 +33319,10 @@ "value" : "Кориснички детаљи" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用戶詳情" + "value" : "用户信息" } } } @@ -35281,10 +33335,10 @@ "value" : "ИД корисника" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用戶ID" + "value" : "用户 ID" } } } @@ -35298,10 +33352,10 @@ "value" : "Корисник је покренуо прекид везе" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用戶發起斷線" + "value" : "用户主动断开连接" } } } @@ -35378,12 +33432,6 @@ "state" : "translated", "value" : "Користи pull-up отпорник" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "使用上拉電阻" - } } } }, @@ -35395,10 +33443,10 @@ "value" : "Користи мрежну везу на вашем телефону за повезивање са MQTT." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "利用手機的網路連線來連接至MQTT。" + "value" : "利用手机上的网络连接到 MQTT。" } } } @@ -35416,12 +33464,6 @@ "state" : "translated", "value" : "Правац возила" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "車輛航向" - } } } }, @@ -35438,12 +33480,6 @@ "state" : "translated", "value" : "Брзина возила" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "車輛速度" - } } } }, @@ -35461,10 +33497,10 @@ "value" : "Верзија %1$@ укључује значајне оптимизације мреже и обимне измене уређаја и клијентских апликација. Подржане су само верзије чворова %2$@ и новије." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "版本 %1$@ 包含大幅的網路優化以及對裝置和客戶端應用程式的廣泛更改。僅支援版本 %2$@ 及以上的節點。\n" + "value" : "版本 %1$@ 包括大量网络优化以及对设备和客户端应用程序的广泛更改。仅支持 %2$@ 及以上版本的节点。" } } } @@ -35489,10 +33525,10 @@ "value" : "Верзија: %1$@ (%2$@) " } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "版本: %1$@ (%2$@) " + "value" : "版本号: %1$@ (%2$@) " } } } @@ -35511,12 +33547,6 @@ "state" : "translated", "value" : "Веома дугачки домет - Споро" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "非常長距離 - 慢速" - } } } }, @@ -35533,12 +33563,6 @@ "state" : "translated", "value" : "Преко LoRA" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "通過 LoRa" - } } } }, @@ -35556,10 +33580,10 @@ "value" : "Преко MQTT-а" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通過 MQTT" + "value" : "通过 MQTT" } } } @@ -35641,12 +33665,6 @@ "state" : "translated", "value" : "Волти %@" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "電壓 %@ " - } } } }, @@ -35721,12 +33739,6 @@ "state" : "translated", "value" : "Чека се на потврду пријема..." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "正在等待確認中..." - } } } }, @@ -35737,12 +33749,6 @@ "state" : "translated", "value" : "Пробуди екран додиром или покретом" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "輕觸或移動喚醒螢幕" - } } } }, @@ -35759,12 +33765,6 @@ "state" : "translated", "value" : "Опције за тачке пута" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "航點選項\n" - } } } }, @@ -35782,10 +33782,10 @@ "value" : "Временски услови" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "天氣狀況" + "value" : "天气状况" } } } @@ -35797,12 +33797,6 @@ "state" : "translated", "value" : "Веб флашер" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "Web Flasher" - } } } }, @@ -35814,10 +33808,10 @@ "value" : "Вебсајт" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "網站" + "value" : "网站" } } } @@ -35836,10 +33830,10 @@ "value" : "Шта значи закључавање?" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "鎖的意義是什麼?" + "value" : "锁意味着什么?" } } } @@ -35858,10 +33852,10 @@ "value" : "Шта је Мештастик?" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "什麼是 Meshtastic?" + "value" : "什么是 Meshtastic?" } } } @@ -35874,10 +33868,10 @@ "value" : "Шта ради режим лиценцираног оператера:\n* Поставља име чвора на ваш позивни знак\n* Емитује информације о чвору сваких 10 минута\n* Превазилази фреквенцију, циклус рада и излазну снагу\n* Онемогућава енкрипцију" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已授權操作模式執行以下功能:\n* 將節點名稱設置為您的呼號\n* 每10分鐘廣播一次節點資訊\n* 覆蓋頻率、工作週期和發射功率設定\n* 停用加密功能" + "value" : "业余无线电模式的作用:\n* 将节点名称设置为您的呼号 \n* 每 10 分钟广播一次节点信息 \n* 覆盖频率、占空比和发射功率 \n* 禁用加密" } } } @@ -35890,10 +33884,10 @@ "value" : "Када користите у GPIO режиму, задржите излаз укључен овако дуго." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "當使用 GPIO 模式時,保持輸出持續這麼長的時間。" + "value" : "在 GPIO 模式下使用时,请将输出保持接通这么长时间。" } } } @@ -35911,12 +33905,6 @@ "state" : "translated", "value" : "Опције вајфаја" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "WiFi 選項" - } } } }, @@ -35933,12 +33921,6 @@ "state" : "translated", "value" : "ВЕТАР" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "風" - } } } }, @@ -35955,12 +33937,6 @@ "state" : "translated", "value" : "Правац ветра" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "風向" - } } } }, @@ -35977,12 +33953,6 @@ "state" : "translated", "value" : "Брзина ветра" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "風速" - } } } }, @@ -35993,12 +33963,6 @@ "state" : "translated", "value" : "x" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "x" - } } } }, @@ -36016,7 +33980,7 @@ "value" : "X: %1$@, Y: %2$d" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "X: %1$@, Y: %2$d" @@ -36038,7 +34002,7 @@ "value" : "X: %1$@, Y: %2$f" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "X: %1$@, Y: %2$f" @@ -36060,7 +34024,7 @@ "value" : "X: %1$@, Y: %2$lld" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", "value" : "X: %1$@, Y: %2$lld" @@ -36076,10 +34040,10 @@ "value" : "y" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Y" + "value" : "y" } } } @@ -36097,12 +34061,6 @@ "state" : "translated", "value" : "Јуче" } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "昨天" - } } } }, @@ -36114,10 +34072,10 @@ "value" : "Такође можете ажурирати свој Мештастик уређај преко блутута користећи Nordic DFU апликацију." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您也可以使用 Nordic DFU 應用程式透過藍牙更新您的 Meshtastic 裝置。" + "value" : "您还可以使用 Nordic DFU 应用程序通过蓝牙更新 Meshtastic 设备。" } } } @@ -36130,10 +34088,10 @@ "value" : "Ваша тренутна позиција ће бити постављена као фиксна позиција и емитована преко мреже на интервалу позиције." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您的當前位置將被設置為固定位置,並按照位置間隔時間在網狀網路中廣播。" + "value" : "您当前的位置将被设置为固定位置,并以定位间隔向 Mesh 网络广播。" } } } @@ -36152,15 +34110,19 @@ "value" : "Ваш фирмвер је на најновијој верзији" } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您的韌體已是最新版本。" + "value" : "你的固件已经是最新版本" } } } + }, + "Your MQTT Server must support TLS." : { + }, "Your MQTT Server must support TLS. Not available via the public mqtt server." : { + "extractionState" : "stale", "localizations" : { "sr" : { "stringUnit" : { @@ -36168,23 +34130,16 @@ "value" : "Ваш MQTT сервер мора подржавати TLS. Није доступно преко јавног MQTT сервера." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您的 MQTT 伺服器必須支援 TLS。無法透過公共 MQTT 伺服器使用。" + "value" : "您的 MQTT 服务器必须支持 TLS。没有可用的公开 MQTT 服务器。" } } } }, "Your node’s operating frequency is calculated based on the region, modem preset, and this field. When 0, the slot is automatically calculated based on the primary channel name." : { - "localizations" : { - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "您節點的工作頻率是根據區域、調制解調器預設值和此欄位計算出來的。當為 0 時,插槽會根據主要頻道名稱自動計算。" - } - } - } + }, "Your position has been sent with a request for a response with their position. You will receive a notification when a position is returned." : { "localizations" : { @@ -36194,10 +34149,10 @@ "value" : "Ваша позиција је послата са захтевом за одговор са њиховом позицијом. Добићете обавештење када се позиција врати." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您的位置已隨附帶回應其位置的請求一起發送。當對方回傳位置時,您將收到通知。" + "value" : "您的位置已发送,并请求对方回复其位置。位置返回后,您将收到通知。" } } } @@ -36210,10 +34165,10 @@ "value" : "Ваш регион има %lld%% циклус рада. MQTT се не препоручује када сте ограничени циклусом рада, јер ће додатни саобраћај брзо преоптеретити вашу LoRa мрежу." } }, - "zh-Hant-TW" : { + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您所在的區域有 %lld%% 的工作週期限制。當受工作週期限制時,不建議使用 MQTT,因為額外的流量會迅速使您的 LoRa 網狀網路負載過高。" + "value" : "您所在地区的占空比为 %lld%%。在占空比受限的情况下,不建议使用 MQTT,因为额外的流量会很快压垮您的 LoRa 网格。" } } } @@ -36225,12 +34180,6 @@ "state" : "translated", "value" : "Ваш регион има %lld%% радни циклус по сату, ваш радио ће престати да шаље пакете када достигне ограничење по сату." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "您所在的區域有 %lld%% 的每小時工作週期限制,當達到每小時限制時,您的無線電將停止發送封包。" - } } } }, @@ -36241,12 +34190,6 @@ "state" : "translated", "value" : "Ваша датотека руте мора имати колоне и заглавља и ширину и дужину." } - }, - "zh-Hant-TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "您的路徑檔案必須包含緯度和經度欄位及其方位。\n" - } } } } diff --git a/Meshtastic.xcodeproj/project.pbxproj b/Meshtastic.xcodeproj/project.pbxproj index 9c1c0d6d..f2b3a524 100644 --- a/Meshtastic.xcodeproj/project.pbxproj +++ b/Meshtastic.xcodeproj/project.pbxproj @@ -37,6 +37,8 @@ 6DA39D8E2A92DC52007E311C /* MeshtasticAppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DA39D8D2A92DC52007E311C /* MeshtasticAppDelegate.swift */; }; 6DEDA55A2A957B8E00321D2E /* DetectionSensorLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DEDA5592A957B8E00321D2E /* DetectionSensorLog.swift */; }; 6DEDA55C2A9592F900321D2E /* MessageEntityExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DEDA55B2A9592F900321D2E /* MessageEntityExtension.swift */; }; + 8D3F8A3F2D44BB02009EAAA4 /* PowerMetrics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D3F8A3E2D44BB02009EAAA4 /* PowerMetrics.swift */; }; + 8D3F8A412D44C2A6009EAAA4 /* PowerMetricsLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D3F8A402D44C2A6009EAAA4 /* PowerMetricsLog.swift */; }; B399E8A42B6F486400E4488E /* RetryButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = B399E8A32B6F486400E4488E /* RetryButton.swift */; }; B3E905B12B71F7F300654D07 /* TextMessageField.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3E905B02B71F7F300654D07 /* TextMessageField.swift */; }; BCB613812C67290800485544 /* SendWaypointIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCB613802C67290800485544 /* SendWaypointIntent.swift */; }; @@ -290,6 +292,9 @@ 6DA39D8D2A92DC52007E311C /* MeshtasticAppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeshtasticAppDelegate.swift; sourceTree = ""; }; 6DEDA5592A957B8E00321D2E /* DetectionSensorLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetectionSensorLog.swift; sourceTree = ""; }; 6DEDA55B2A9592F900321D2E /* MessageEntityExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageEntityExtension.swift; sourceTree = ""; }; + 8D3F8A3D2D44B137009EAAA4 /* MeshtasticDataModelV 49.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "MeshtasticDataModelV 49.xcdatamodel"; sourceTree = ""; }; + 8D3F8A3E2D44BB02009EAAA4 /* PowerMetrics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PowerMetrics.swift; sourceTree = ""; }; + 8D3F8A402D44C2A6009EAAA4 /* PowerMetricsLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PowerMetricsLog.swift; sourceTree = ""; }; B399E8A32B6F486400E4488E /* RetryButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RetryButton.swift; sourceTree = ""; }; B3E905B02B71F7F300654D07 /* TextMessageField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextMessageField.swift; sourceTree = ""; }; BCB613802C67290800485544 /* SendWaypointIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendWaypointIntent.swift; sourceTree = ""; }; @@ -706,6 +711,7 @@ 6DEDA5592A957B8E00321D2E /* DetectionSensorLog.swift */, DD15E4F42B8BFC8E00654F61 /* PaxCounterLog.swift */, DDE5B4032B2279A700FCDD05 /* TraceRouteLog.swift */, + 8D3F8A402D44C2A6009EAAA4 /* PowerMetricsLog.swift */, ); path = Nodes; sourceTree = ""; @@ -1022,6 +1028,7 @@ DDF45C332BC1A48E005ED5F2 /* MQTTIcon.swift */, DD5E523D298F5A7D00D21B61 /* Weather */, DD6F65712C6AB8EC0053C113 /* SecureInput.swift */, + 8D3F8A3E2D44BB02009EAAA4 /* PowerMetrics.swift */, ); path = Helpers; sourceTree = ""; @@ -1476,6 +1483,7 @@ DD1925B928CDA93900720036 /* SerialConfigEnums.swift in Sources */, 251926852C3BA97800249DF5 /* FavoriteNodeButton.swift in Sources */, D9C983A02B79D0E800BDBE6A /* AlertButton.swift in Sources */, + 8D3F8A412D44C2A6009EAAA4 /* PowerMetricsLog.swift in Sources */, DD86D4112881D16900BAEB7A /* WriteCsvFile.swift in Sources */, DD6F65762C6EA5490053C113 /* AckErrors.swift in Sources */, DDDB445029F8AC9C00EE2349 /* UIImage.swift in Sources */, @@ -1492,6 +1500,7 @@ DDB6ABE428B13FFF00384BA1 /* DisplayEnums.swift in Sources */, DD4975A52B147BA90026544E /* AmbientLightingConfig.swift in Sources */, D93068D92B81509C0066FBC8 /* TapbackResponses.swift in Sources */, + 8D3F8A3F2D44BB02009EAAA4 /* PowerMetrics.swift in Sources */, 2519268A2C3BB1B200249DF5 /* ExchangePositionsButton.swift in Sources */, DD86D40A287F04F100BAEB7A /* InvalidVersion.swift in Sources */, DDD94A502845C8F5004A87A0 /* DateTimeText.swift in Sources */, @@ -1755,7 +1764,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 2.5.16; + MARKETING_VERSION = 2.5.18; PRODUCT_BUNDLE_IDENTIFIER = gvh.MeshtasticClient; PRODUCT_NAME = "$(TARGET_NAME)"; SUPPORTS_MACCATALYST = YES; @@ -1789,7 +1798,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 2.5.16; + MARKETING_VERSION = 2.5.18; PRODUCT_BUNDLE_IDENTIFIER = gvh.MeshtasticClient; PRODUCT_NAME = "$(TARGET_NAME)"; SUPPORTS_MACCATALYST = YES; @@ -1821,7 +1830,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 2.5.16; + MARKETING_VERSION = 2.5.18; PRODUCT_BUNDLE_IDENTIFIER = gvh.MeshtasticClient.Widgets; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -1854,7 +1863,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 2.5.16; + MARKETING_VERSION = 2.5.18; PRODUCT_BUNDLE_IDENTIFIER = gvh.MeshtasticClient.Widgets; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -1966,6 +1975,7 @@ DD3CC6BA28E366DF00FA9159 /* Meshtastic.xcdatamodeld */ = { isa = XCVersionGroup; children = ( + 8D3F8A3D2D44B137009EAAA4 /* MeshtasticDataModelV 49.xcdatamodel */, DDA28B1B2D32C89200EF726F /* MeshtasticDataModelV 48.xcdatamodel */, DDDFE7402D0D4A070044463C /* MeshtasticDataModelV 47.xcdatamodel */, DD0BE30C2CB785D8000BA445 /* MeshtasticDataModelV 46.xcdatamodel */, @@ -2015,7 +2025,7 @@ DD5D0A9A2931AD6B00F7EA61 /* MeshtasticDataModelV2.xcdatamodel */, DD3CC6BB28E366DF00FA9159 /* MeshtasticDataModel.xcdatamodel */, ); - currentVersion = DDA28B1B2D32C89200EF726F /* MeshtasticDataModelV 48.xcdatamodel */; + currentVersion = 8D3F8A3D2D44B137009EAAA4 /* MeshtasticDataModelV 49.xcdatamodel */; name = Meshtastic.xcdatamodeld; path = Meshtastic/Meshtastic.xcdatamodeld; sourceTree = ""; diff --git a/Meshtastic/Export/WriteCsvFile.swift b/Meshtastic/Export/WriteCsvFile.swift index 56776554..40913ea7 100644 --- a/Meshtastic/Export/WriteCsvFile.swift +++ b/Meshtastic/Export/WriteCsvFile.swift @@ -46,6 +46,25 @@ func telemetryToCsvFile(telemetry: [TelemetryEntity], metricsType: Int) -> Strin csvString += ", " csvString += dm.time?.formattedDate(format: dateFormatString) ?? "unknown.age".localized } + } else if metricsType == 2 { + // Create Power Metrics Header + csvString = "Channel 1 Voltage, Channel 1 Current, Channel 2 Voltage, Channel 2 Current, Channel 3 Voltage, Channel 3 Current, \("timestamp".localized)" + for dm in telemetry where dm.metricsType == 2 { + csvString += "\n" + csvString += String(dm.powerCh1Voltage) + csvString += ", " + csvString += String(dm.powerCh1Current) + csvString += ", " + csvString += String(dm.powerCh2Voltage) + csvString += ", " + csvString += String(dm.powerCh2Current) + csvString += ", " + csvString += String(dm.powerCh3Voltage) + csvString += ", " + csvString += String(dm.powerCh3Current) + csvString += ", " + csvString += dm.time?.formattedDate(format: dateFormatString) ?? "unknown.age".localized + } } return csvString } diff --git a/Meshtastic/Extensions/CoreData/NodeInfoEntityExtension.swift b/Meshtastic/Extensions/CoreData/NodeInfoEntityExtension.swift index 7d313191..b1bbb8c6 100644 --- a/Meshtastic/Extensions/CoreData/NodeInfoEntityExtension.swift +++ b/Meshtastic/Extensions/CoreData/NodeInfoEntityExtension.swift @@ -22,6 +22,10 @@ extension NodeInfoEntity { return self.telemetries?.filtered(using: NSPredicate(format: "metricsType == 1")).lastObject as? TelemetryEntity } + var latestPowerMetrics: TelemetryEntity? { + return self.telemetries?.filtered(using: NSPredicate(format: "metricsType == 2")).lastObject as? TelemetryEntity + } + var hasPositions: Bool { return self.positions?.count ?? 0 > 0 } @@ -39,6 +43,11 @@ extension NodeInfoEntity { return user?.sensorMessageList.count ?? 0 > 0 } + var hasPowerMetrics: Bool { + let powerMetrics = telemetries?.filter { ($0 as AnyObject).metricsType == 2 } + return powerMetrics?.count ?? 0 > 0 + } + var hasTraceRoutes: Bool { let routes = traceRoutes?.filter { ($0 as AnyObject).response } return routes?.count ?? 0 > 0 diff --git a/Meshtastic/Extensions/CoreData/PositionEntityExtension.swift b/Meshtastic/Extensions/CoreData/PositionEntityExtension.swift index 90b15b5e..a9eea507 100644 --- a/Meshtastic/Extensions/CoreData/PositionEntityExtension.swift +++ b/Meshtastic/Extensions/CoreData/PositionEntityExtension.swift @@ -13,7 +13,7 @@ import SwiftUI extension PositionEntity { - static func allPositionsFetchRequest() -> NSFetchRequest { + @MainActor static func allPositionsFetchRequest() -> NSFetchRequest { let request: NSFetchRequest = PositionEntity.fetchRequest() request.fetchLimit = 1000 request.returnsObjectsAsFaults = false @@ -22,9 +22,9 @@ extension PositionEntity { request.sortDescriptors = [NSSortDescriptor(key: "time", ascending: false)] let positionPredicate = NSPredicate(format: "nodePosition != nil && (nodePosition.user.shortName != nil || nodePosition.user.shortName != '') && latest == true") - let pointOfInterest = LocationHelper.currentLocation + let pointOfInterest = LocationsHandler.currentLocation - if pointOfInterest.latitude != LocationHelper.DefaultLocation.latitude && pointOfInterest.longitude != LocationHelper.DefaultLocation.longitude { + if pointOfInterest.latitude != LocationsHandler.DefaultLocation.latitude && pointOfInterest.longitude != LocationsHandler.DefaultLocation.longitude { let d: Double = UserDefaults.meshMapDistance * 1.1 let r: Double = 6371009 let meanLatitidue = pointOfInterest.latitude * .pi / 180 @@ -88,7 +88,7 @@ extension PositionEntity { } extension PositionEntity: MKAnnotation { - public var coordinate: CLLocationCoordinate2D { nodeCoordinate ?? LocationHelper.DefaultLocation } + public var coordinate: CLLocationCoordinate2D { nodeCoordinate ?? LocationsHandler.DefaultLocation } public var title: String? { nodePosition?.user?.shortName ?? "unknown".localized } public var subtitle: String? { time?.formatted() } } diff --git a/Meshtastic/Extensions/CoreData/WaypointEntityExtension.swift b/Meshtastic/Extensions/CoreData/WaypointEntityExtension.swift index b17ccecf..2f538b62 100644 --- a/Meshtastic/Extensions/CoreData/WaypointEntityExtension.swift +++ b/Meshtastic/Extensions/CoreData/WaypointEntityExtension.swift @@ -60,7 +60,7 @@ extension WaypointEntity { } extension WaypointEntity: MKAnnotation { - public var coordinate: CLLocationCoordinate2D { waypointCoordinate ?? LocationHelper.DefaultLocation } + public var coordinate: CLLocationCoordinate2D { waypointCoordinate ?? LocationsHandler.DefaultLocation } public var title: String? { name ?? "Dropped Pin" } public var subtitle: String? { (longDescription ?? "") + diff --git a/Meshtastic/Helpers/BLEManager.swift b/Meshtastic/Helpers/BLEManager.swift index 1afb59be..b81c3247 100644 --- a/Meshtastic/Helpers/BLEManager.swift +++ b/Meshtastic/Helpers/BLEManager.swift @@ -27,7 +27,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, MqttClientProxyManagerDelegate @Published var automaticallyReconnect: Bool = true @Published var mqttProxyConnected: Bool = false @Published var mqttError: String = "" - public var minimumVersion = "2.3.2" + public var minimumVersion = "2.3.15" public var connectedVersion: String public var isConnecting: Bool = false public var isConnected: Bool = false @@ -960,6 +960,22 @@ class BLEManager: NSObject, CBPeripheralDelegate, MqttClientProxyManagerDelegate } traceRoute?.hops = NSOrderedSet(array: hopNodes) traceRoute?.time = Date() + + if let tr = traceRoute { + let manager = LocalNotificationManager() + manager.notifications = [ + Notification( + id: (UUID().uuidString), + title: "Traceroute Complete", + subtitle: "TR received back from \(destinationHop.name ?? "unknown")", + content: "Hops from: \(tr.hopsTowards), Hops back: \(tr.hopsBack)\n\(tr.routeText ?? "unknown".localized)\n\(tr.routeBackText ?? "unknown".localized)", + target: "nodes", + path: "meshtastic:///nodes?nodenum=\(connectedNode.user?.num ?? 0)" + ) + ] + manager.schedule() + } + do { try context.save() Logger.data.info("💾 Saved Trace Route") diff --git a/Meshtastic/Helpers/LocalNotificationManager.swift b/Meshtastic/Helpers/LocalNotificationManager.swift index 7eb830c3..817c90a4 100644 --- a/Meshtastic/Helpers/LocalNotificationManager.swift +++ b/Meshtastic/Helpers/LocalNotificationManager.swift @@ -71,8 +71,7 @@ class LocalNotificationManager { content.sound = UNNotificationSound.defaultCritical } - let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 1, repeats: false) - let request = UNNotificationRequest(identifier: notification.id, content: content, trigger: trigger) + let request = UNNotificationRequest(identifier: notification.id, content: content, trigger: nil) UNUserNotificationCenter.current().add(request) { error in if let error { diff --git a/Meshtastic/Helpers/LocationsHandler.swift b/Meshtastic/Helpers/LocationsHandler.swift index a215667b..6754891c 100644 --- a/Meshtastic/Helpers/LocationsHandler.swift +++ b/Meshtastic/Helpers/LocationsHandler.swift @@ -113,6 +113,12 @@ import OSLog } static let DefaultLocation = CLLocationCoordinate2D(latitude: 37.3346, longitude: -122.0090) + static var currentLocation: CLLocationCoordinate2D { + guard let location = shared.manager.location else { + return DefaultLocation + } + return location.coordinate + } static var satsInView: Int { var sats = 0 @@ -139,4 +145,5 @@ import OSLog } return sats } + } diff --git a/Meshtastic/Helpers/MeshPackets.swift b/Meshtastic/Helpers/MeshPackets.swift index fb0b381f..8c85751f 100644 --- a/Meshtastic/Helpers/MeshPackets.swift +++ b/Meshtastic/Helpers/MeshPackets.swift @@ -682,7 +682,7 @@ func telemetryPacket(packet: MeshPacket, connectedNode: Int64, context: NSManage let logString = String.localizedStringWithFormat("mesh.log.telemetry.received %@".localized, String(packet.from)) MeshLogger.log("📈 \(logString)") - if telemetryMessage.variant != Telemetry.OneOf_Variant.deviceMetrics(telemetryMessage.deviceMetrics) && telemetryMessage.variant != Telemetry.OneOf_Variant.environmentMetrics(telemetryMessage.environmentMetrics) && telemetryMessage.variant != Telemetry.OneOf_Variant.localStats(telemetryMessage.localStats) { + if telemetryMessage.variant != Telemetry.OneOf_Variant.deviceMetrics(telemetryMessage.deviceMetrics) && telemetryMessage.variant != Telemetry.OneOf_Variant.environmentMetrics(telemetryMessage.environmentMetrics) && telemetryMessage.variant != Telemetry.OneOf_Variant.localStats(telemetryMessage.localStats) && telemetryMessage.variant != Telemetry.OneOf_Variant.powerMetrics(telemetryMessage.powerMetrics) { /// Other unhandled telemetry packets return } @@ -736,6 +736,38 @@ func telemetryPacket(packet: MeshPacket, connectedNode: Int64, context: NSManage telemetry.numTotalNodes = Int32(truncatingIfNeeded: telemetryMessage.localStats.numTotalNodes) telemetry.metricsType = 4 Logger.statistics.info("📈 [Mesh Statistics] Channel Utilization: \(telemetryMessage.localStats.channelUtilization, privacy: .public) Airtime: \(telemetryMessage.localStats.airUtilTx, privacy: .public) Packets Sent: \(telemetryMessage.localStats.numPacketsTx, privacy: .public) Packets Received: \(telemetryMessage.localStats.numPacketsRx, privacy: .public) Bad Packets Received: \(telemetryMessage.localStats.numPacketsRxBad, privacy: .public) Nodes Online: \(telemetryMessage.localStats.numOnlineNodes, privacy: .public) of \(telemetryMessage.localStats.numTotalNodes, privacy: .public) nodes for Node: \(packet.from.toHex(), privacy: .public)") + } else if telemetryMessage.variant == Telemetry.OneOf_Variant.powerMetrics(telemetryMessage.powerMetrics) { + Logger.data.info("📈 [Power Metrics] Received for Node: \(packet.from.toHex(), privacy: .public)") + + if telemetryMessage.powerMetrics.hasCh1Voltage { + telemetry.powerCh1Voltage = telemetryMessage.powerMetrics.ch1Voltage + telemetry.metricsType = 2 + } + + if telemetryMessage.powerMetrics.hasCh1Current { + telemetry.powerCh1Current = telemetryMessage.powerMetrics.ch1Current + telemetry.metricsType = 2 + } + + if telemetryMessage.powerMetrics.hasCh2Voltage { + telemetry.powerCh2Voltage = telemetryMessage.powerMetrics.ch2Voltage + telemetry.metricsType = 2 + } + + if telemetryMessage.powerMetrics.hasCh1Current { + telemetry.powerCh2Current = telemetryMessage.powerMetrics.ch2Current + telemetry.metricsType = 2 + } + + if telemetryMessage.powerMetrics.hasCh3Voltage { + telemetry.powerCh3Voltage = telemetryMessage.powerMetrics.ch3Voltage + telemetry.metricsType = 2 + } + + if telemetryMessage.powerMetrics.hasCh3Current { + telemetry.powerCh3Current = telemetryMessage.powerMetrics.ch3Current + telemetry.metricsType = 2 + } } telemetry.snr = packet.rxSnr telemetry.rssi = packet.rxRssi @@ -954,7 +986,8 @@ func textMessageAppPacket( path: "meshtastic:///messages?userNum=\(newMessage.fromUser?.num ?? 0)&messageId=\(newMessage.messageId)", messageId: newMessage.messageId, channel: newMessage.channel, - userNum: Int64(packet.from) + userNum: Int64(packet.from), + critical: critical ) ] manager.schedule() @@ -986,8 +1019,8 @@ func textMessageAppPacket( path: "meshtastic:///messages?channelId=\(newMessage.channel)&messageId=\(newMessage.messageId)", messageId: newMessage.messageId, channel: newMessage.channel, - userNum: Int64(newMessage.fromUser?.userId ?? "0") - ) + userNum: Int64(newMessage.fromUser?.userId ?? "0"), + critical: critical) ] manager.schedule() Logger.services.debug("iOS Notification Scheduled for text message from \(newMessage.fromUser?.longName ?? "unknown".localized)") diff --git a/Meshtastic/Helpers/Mqtt/MqttClientProxyManager.swift b/Meshtastic/Helpers/Mqtt/MqttClientProxyManager.swift index 98860495..d8188235 100644 --- a/Meshtastic/Helpers/Mqtt/MqttClientProxyManager.swift +++ b/Meshtastic/Helpers/Mqtt/MqttClientProxyManager.swift @@ -37,9 +37,6 @@ class MqttClientProxyManager { defaultServerPort = Int(fullHost.components(separatedBy: ":")[1]) ?? (useSsl ? 8883 : 1883) } } - let minimumVersion = "2.3.2" - let currentVersion = UserDefaults.firmwareVersion - let supportedVersion = minimumVersion.compare(currentVersion, options: .numeric) == .orderedAscending || minimumVersion.compare(currentVersion, options: .numeric) == .orderedSame if let host = host { let port = defaultServerPort @@ -53,7 +50,7 @@ class MqttClientProxyManager { } let root = node.mqttConfig?.root?.count ?? 0 > 0 ? node.mqttConfig?.root : "msh" let prefix = root! - topic = prefix + (supportedVersion ? "/2/e" : "/2/c") + "/#" + topic = prefix + "/2/e" + "/#" let qos = CocoaMQTTQoS(rawValue: UInt8(1))! connect(host: host, port: port, useSsl: useSsl, username: username, password: password, topic: topic, qos: qos, cleanSession: true) } diff --git a/Meshtastic/Info.plist b/Meshtastic/Info.plist index dfbd9ce4..a0552164 100644 --- a/Meshtastic/Info.plist +++ b/Meshtastic/Info.plist @@ -71,13 +71,13 @@ NSCameraUsageDescription We use the camera to share channels using a QR Code NSLocationAlwaysAndWhenInUseUsageDescription - We use your location to display it on the mesh map as well as to have GPS coordinatess to send to the connected device. Route Recording uses location in the background. + We use your location to display it on the mesh map as well as to have GPS coordinates to send to the connected device. Route Recording uses location in the background. NSLocationAlwaysUsageDescription - We use your location to display it on the mesh map as well as to have GPS coordinatess to send to the connected device. + We use your location to display it on the mesh map as well as to have GPS coordinates to send to the connected device. NSLocationUsageDescription - We use your location to display it on the mesh map as well as to have GPS coordinatess to send to the connected device. + We use your location to display it on the mesh map as well as to have GPS coordinates to send to the connected device. NSLocationWhenInUseUsageDescription - We use your location to display it on the mesh map as well as to have GPS coordinatess to send to the connected device. + We use your location to display it on the mesh map as well as to have GPS coordinates to send to the connected device. NSSupportsLiveActivities Privacy – Bluetooth Always Usage Description diff --git a/Meshtastic/Meshtastic.xcdatamodeld/.xccurrentversion b/Meshtastic/Meshtastic.xcdatamodeld/.xccurrentversion index a702965e..0b4b8e13 100644 --- a/Meshtastic/Meshtastic.xcdatamodeld/.xccurrentversion +++ b/Meshtastic/Meshtastic.xcdatamodeld/.xccurrentversion @@ -3,6 +3,6 @@ _XCCurrentVersionName - MeshtasticDataModelV 48.xcdatamodel + MeshtasticDataModelV 49.xcdatamodel diff --git a/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV 48.xcdatamodel/contents b/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV 48.xcdatamodel/contents index 709d5943..1ad6e791 100644 --- a/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV 48.xcdatamodel/contents +++ b/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV 48.xcdatamodel/contents @@ -1,5 +1,5 @@ - + diff --git a/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV 49.xcdatamodel/contents b/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV 49.xcdatamodel/contents new file mode 100644 index 00000000..5f12d9d0 --- /dev/null +++ b/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV 49.xcdatamodel/contents @@ -0,0 +1,493 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Meshtastic/Views/Helpers/PowerMetrics.swift b/Meshtastic/Views/Helpers/PowerMetrics.swift new file mode 100644 index 00000000..cbff60a2 --- /dev/null +++ b/Meshtastic/Views/Helpers/PowerMetrics.swift @@ -0,0 +1,96 @@ +// +// PowerMetrics.swift +// Meshtastic +// +// Created by Matthew Davies on 1/24/25. +// + +import Foundation +import SwiftUI + +struct PowerMetrics: View { + private let gridItemLayout = Array(repeating: GridItem(.flexible(), spacing: 10), count: 2) + + let metric: TelemetryEntity + + var body: some View { + + LazyVGrid(columns: gridItemLayout) { + + if metric.powerCh1Voltage != nil { + PowerMetricCompactWidget( + type: .voltage, + value: metric.powerCh1Voltage, + title: "Channel 1 Voltage" + ) + } + + if metric.powerCh1Current != nil { + PowerMetricCompactWidget( + type: .current, + value: metric.powerCh1Current, + title: "Channel 1 Current" + ) + } + + if metric.powerCh2Voltage != nil { + PowerMetricCompactWidget( + type: .voltage, + value: metric.powerCh2Voltage, + title: "Channel 2 Voltage" + ) + } + + if metric.powerCh2Current != nil { + PowerMetricCompactWidget( + type: .current, + value: metric.powerCh2Current, + title: "Channel 2 Current" + ) + } + + if metric.powerCh3Voltage != nil { + PowerMetricCompactWidget( + type: .voltage, + value: metric.powerCh3Voltage, + title: "Channel 3 Voltage" + ) + } + + if metric.powerCh3Current != nil { + PowerMetricCompactWidget( + type: .current, + value: metric.powerCh3Current, + title: "Channel 3 Current" + ) + } + } + } +} + +enum PowerMetricType: String { + case current = "current" + case voltage = "voltage" +} + +struct PowerMetricCompactWidget: View { + let type: PowerMetricType + let value: Float + let title: String + var body: some View { + VStack(alignment: .leading) { + HStack(spacing: 5.0) { + Image(systemName: type == .current ? "bolt.fill" : "powerplug.fill") + .foregroundColor(.accentColor) + .font(.callout) + Text(title) + .font(.caption) + } + Text("\(value, specifier: type == .current ? "%.1f" : "%.2f") \(type == .current ? "mA" : "V")") + .font(type == .current ? .system(size: 35) : .system(size: 30)) + } + .frame(minWidth: 100, idealWidth: 125, maxWidth: 150, minHeight: 120, idealHeight: 130, maxHeight: 140) + .padding() + .background(.tertiary, in: RoundedRectangle(cornerRadius: 20, style: .continuous)) + } +} diff --git a/Meshtastic/Views/Helpers/Weather/NodeWeatherForecast.swift b/Meshtastic/Views/Helpers/Weather/NodeWeatherForecast.swift index 15198c50..5fec377e 100644 --- a/Meshtastic/Views/Helpers/Weather/NodeWeatherForecast.swift +++ b/Meshtastic/Views/Helpers/Weather/NodeWeatherForecast.swift @@ -211,7 +211,7 @@ struct NodeWeatherForecast { struct NodeWeatherForecastView_Previews: PreviewProvider { static var previews: some View { - NodeWeatherForecastView(location: CLLocation(latitude: LocationHelper.currentLocation.latitude, longitude: LocationHelper.currentLocation.longitude) ) + NodeWeatherForecastView(location: CLLocation(latitude: LocationsHandler.currentLocation.latitude, longitude: LocationsHandler.currentLocation.longitude) ) .aspectRatio(2, contentMode: .fit) .padding() .previewLayout(.sizeThatFits) diff --git a/Meshtastic/Views/Messages/UserList.swift b/Meshtastic/Views/Messages/UserList.swift index a8986250..b0602d5f 100644 --- a/Meshtastic/Views/Messages/UserList.swift +++ b/Meshtastic/Views/Messages/UserList.swift @@ -346,9 +346,9 @@ struct UserList: View { } /// Distance if distanceFilter { - let pointOfInterest = LocationHelper.currentLocation + let pointOfInterest = LocationsHandler.currentLocation - if pointOfInterest.latitude != LocationHelper.DefaultLocation.latitude && pointOfInterest.longitude != LocationHelper.DefaultLocation.longitude { + if pointOfInterest.latitude != LocationsHandler.DefaultLocation.latitude && pointOfInterest.longitude != LocationsHandler.DefaultLocation.longitude { let d: Double = maxDistance * 1.1 let r: Double = 6371009 let meanLatitidue = pointOfInterest.latitude * .pi / 180 diff --git a/Meshtastic/Views/Nodes/Helpers/Map/MapContent/MeshMapContent.swift b/Meshtastic/Views/Nodes/Helpers/Map/MapContent/MeshMapContent.swift index dd49484a..6a0374f2 100644 --- a/Meshtastic/Views/Nodes/Helpers/Map/MapContent/MeshMapContent.swift +++ b/Meshtastic/Views/Nodes/Helpers/Map/MapContent/MeshMapContent.swift @@ -85,7 +85,7 @@ struct MeshMapContent: MapContent { let nodePositions = Array(positions) as? [PositionEntity] { if showRouteLines { let routeCoords = nodePositions.compactMap({(pos) -> CLLocationCoordinate2D in - return pos.nodeCoordinate ?? LocationHelper.DefaultLocation + return pos.nodeCoordinate ?? LocationsHandler.DefaultLocation }) let gradient = LinearGradient( colors: [Color(nodeColor.lighter().lighter()), Color(nodeColor.lighter()), Color(nodeColor)], @@ -148,9 +148,9 @@ struct MeshMapContent: MapContent { ForEach(routes) { route in if let routeLocations = route.locations, let locations = Array(routeLocations) as? [LocationEntity] { let routeCoords = locations.compactMap {(loc) -> CLLocationCoordinate2D in - return loc.locationCoordinate ?? LocationHelper.DefaultLocation + return loc.locationCoordinate ?? LocationsHandler.DefaultLocation } - Annotation("Start", coordinate: routeCoords.first ?? LocationHelper.DefaultLocation) { + Annotation("Start", coordinate: routeCoords.first ?? LocationsHandler.DefaultLocation) { ZStack { Circle() .fill(Color(.green)) @@ -159,7 +159,7 @@ struct MeshMapContent: MapContent { } } .annotationTitles(.automatic) - Annotation("Finish", coordinate: routeCoords.last ?? LocationHelper.DefaultLocation) { + Annotation("Finish", coordinate: routeCoords.last ?? LocationsHandler.DefaultLocation) { ZStack { Circle() .fill(Color(.black)) diff --git a/Meshtastic/Views/Nodes/Helpers/Map/WaypointForm.swift b/Meshtastic/Views/Nodes/Helpers/Map/WaypointForm.swift index 71d62590..2c2c267a 100644 --- a/Meshtastic/Views/Nodes/Helpers/Map/WaypointForm.swift +++ b/Meshtastic/Views/Nodes/Helpers/Map/WaypointForm.swift @@ -38,7 +38,7 @@ struct WaypointForm: View { .font(.largeTitle) Divider() Form { - let distance = CLLocation(latitude: LocationHelper.currentLocation.latitude, longitude: LocationHelper.currentLocation.longitude).distance(from: CLLocation(latitude: waypoint.coordinate.latitude, longitude: waypoint.coordinate.longitude )) + let distance = CLLocation(latitude: LocationsHandler.currentLocation.latitude, longitude: LocationsHandler.currentLocation.longitude).distance(from: CLLocation(latitude: waypoint.coordinate.latitude, longitude: waypoint.coordinate.longitude )) Section(header: Text("Coordinate") ) { HStack { Text("Location:") @@ -335,8 +335,8 @@ struct WaypointForm: View { .padding(.bottom, 5) } /// Distance - if LocationHelper.currentLocation.distance(from: LocationHelper.DefaultLocation) > 0.0 { - let metersAway = waypoint.coordinate.distance(from: LocationHelper.currentLocation) + if LocationsHandler.currentLocation.distance(from: LocationsHandler.DefaultLocation) > 0.0 { + let metersAway = waypoint.coordinate.distance(from: LocationsHandler.currentLocation) Label { Text("distance".localized + ": \(distanceFormatter.string(fromDistance: Double(metersAway)))") .foregroundColor(.primary) diff --git a/Meshtastic/Views/Nodes/Helpers/NodeDetail.swift b/Meshtastic/Views/Nodes/Helpers/NodeDetail.swift index 706b9d6e..9864565d 100644 --- a/Meshtastic/Views/Nodes/Helpers/NodeDetail.swift +++ b/Meshtastic/Views/Nodes/Helpers/NodeDetail.swift @@ -237,6 +237,15 @@ struct NodeDetail: View { } } } + if node.hasPowerMetrics && node.latestPowerMetrics != nil { + Section("Power") { + VStack { + if let metric = node.latestPowerMetrics { + PowerMetrics(metric: metric) + } + } + } + } Section("Logs") { // Metrics NavigationLink { @@ -251,6 +260,18 @@ struct NodeDetail: View { } .disabled(!node.hasDeviceMetrics) + NavigationLink { + PowerMetricsLog(node: node) + } label: { + Label { + Text("Power Metrics Log") + } icon: { + Image(systemName: "bolt") + .symbolRenderingMode(.multicolor) + } + } + .disabled(!node.hasPowerMetrics) + NavigationLink { NodeMapSwiftUI(node: node, showUserLocation: connectedNode?.num ?? 0 == node.num) } label: { diff --git a/Meshtastic/Views/Nodes/Helpers/NodeListItem.swift b/Meshtastic/Views/Nodes/Helpers/NodeListItem.swift index 2693f13e..8fe387db 100644 --- a/Meshtastic/Views/Nodes/Helpers/NodeListItem.swift +++ b/Meshtastic/Views/Nodes/Helpers/NodeListItem.swift @@ -114,12 +114,12 @@ struct NodeListItem: View { .font(UIDevice.current.userInterfaceIdiom == .phone ? .callout : .caption) .foregroundColor(.gray) let trueBearing = getBearingBetweenTwoPoints(point1: myCoord, point2: nodeCoord) - let headingDegrees = Angle.degrees(trueBearing) + let headingDegrees = Measurement(value: trueBearing, unit: UnitAngle.degrees).reciprocal() Image(systemName: "location.north") .font(.callout) .symbolRenderingMode(.multicolor) .clipShape(Circle()) - .rotationEffect(headingDegrees) + .rotationEffect(Angle(degrees: headingDegrees.value)) let heading = Measurement(value: trueBearing, unit: UnitAngle.degrees).reciprocal() Text("\(heading.formatted(.measurement(width: .narrow, numberFormatStyle: .number.precision(.fractionLength(0)))))") .font(UIDevice.current.userInterfaceIdiom == .phone ? .callout : .caption) diff --git a/Meshtastic/Views/Nodes/NodeList.swift b/Meshtastic/Views/Nodes/NodeList.swift index 3bf88f7a..3ba74de8 100644 --- a/Meshtastic/Views/Nodes/NodeList.swift +++ b/Meshtastic/Views/Nodes/NodeList.swift @@ -93,7 +93,7 @@ struct NodeList: View { ) /// Don't show message, trace route, position exchange or delete context menu items for the connected node if connectedNode.num != node.num { - if (!node.viaMqtt || node.viaMqtt && node.hopsAway == 0) { + if !node.viaMqtt || node.viaMqtt && node.hopsAway == 0 { Button(action: { if let url = URL(string: "meshtastic:///messages?userNum=\(node.num)") { UIApplication.shared.open(url) @@ -418,9 +418,9 @@ struct NodeList: View { } /// Distance if distanceFilter { - let pointOfInterest = LocationHelper.currentLocation + let pointOfInterest = LocationsHandler.currentLocation - if pointOfInterest.latitude != LocationHelper.DefaultLocation.latitude && pointOfInterest.longitude != LocationHelper.DefaultLocation.longitude { + if pointOfInterest.latitude != LocationsHandler.DefaultLocation.latitude && pointOfInterest.longitude != LocationsHandler.DefaultLocation.longitude { let d: Double = maxDistance * 1.1 let r: Double = 6371009 let meanLatitidue = pointOfInterest.latitude * .pi / 180 diff --git a/Meshtastic/Views/Nodes/PowerMetricsLog.swift b/Meshtastic/Views/Nodes/PowerMetricsLog.swift new file mode 100644 index 00000000..4e0629a6 --- /dev/null +++ b/Meshtastic/Views/Nodes/PowerMetricsLog.swift @@ -0,0 +1,293 @@ +// +// PowerMetricsLog.swift +// Meshtastic +// +// Created by Matthew Davies on 1/24/25. +// + +import Foundation +import SwiftUI +import Charts +import OSLog + +struct PowerMetricsLog: View { + + @Environment(\.managedObjectContext) var context + @EnvironmentObject var bleManager: BLEManager + @ObservedObject var node: NodeInfoEntity + private var idiom: UIUserInterfaceIdiom { UIDevice.current.userInterfaceIdiom } + @State private var sortOrder = [KeyPathComparator(\TelemetryEntity.time, order: .reverse)] + @State private var selection: TelemetryEntity.ID? + @State private var chartSelection: Date? + + @State private var isPresentingClearLogConfirm: Bool = false + @State var isExporting = false + @State var exportString = "" + + @State private var channelSelection = 0 + + var powerMetrics: [TelemetryEntity] { + let telemetries = node.telemetries?.filtered(using: NSPredicate(format: "metricsType == 2")) + return (telemetries?.reversed() as? [TelemetryEntity]) ?? [] + } + + var minMax: (min: Double, max: Double) { + let allValues = powerMetrics.flatMap { [ + $0.powerCh1Voltage, + $0.powerCh1Current, + $0.powerCh2Voltage, + $0.powerCh2Current, + $0.powerCh3Voltage, + $0.powerCh3Current + ]} + + guard !allValues.isEmpty else { + return (min: -10, max: 10) + } + + return (min: floor(Double(allValues.min()!)), max: ceil(Double(allValues.max()!))) + } + + var body: some View { + VStack { + if node.hasPowerMetrics { + let oneWeekAgo = Calendar.current.date(byAdding: .day, value: -7, to: Date()) + + let chartData = powerMetrics + .filter { $0.time != nil && $0.time! >= oneWeekAgo! } + .sorted { $0.time! < $1.time! } + if chartData.count > 0 { + GroupBox(label: Label("\(powerMetrics.count) Readings Total", systemImage: "chart.xyaxis.line")) { + + // allow switching between different channels + Picker("Select Channel", selection: $channelSelection) { + Text("Channel 1").tag(0) + Text("Channel 2").tag(1) + Text("Channel 3").tag(2) + } + + Chart { + ForEach(chartData, id: \.self) { point in + + let voltage = channelSelection == 0 ? point.powerCh1Voltage : channelSelection == 1 ? point.powerCh2Voltage : point.powerCh3Voltage + let current = channelSelection == 0 ? point.powerCh1Current : channelSelection == 1 ? point.powerCh2Current : point.powerCh3Current + + LineMark( + x: .value("Time", point.time ?? Date()), + y: .value("Voltage", voltage) + ) + .foregroundStyle(by: .value("Series", "Voltage")) + .interpolationMethod(.linear) + .accessibilityLabel("Voltage") + .accessibilityValue("X: \(point.time ?? Date()), Y: \(voltage)") + + LineMark( + x: .value("Time", point.time ?? Date()), + y: .value("Current", current) + ) + .foregroundStyle(by: .value("Series", "Current")) + .interpolationMethod(.linear) + .accessibilityLabel("Current") + .accessibilityValue("X: \(point.time ?? Date()), Y: \(current)") + + } + + if let chartSelection { + RuleMark(x: .value("Second", chartSelection, unit: .second)) + .foregroundStyle(.tertiary.opacity(0.5)) + } + + } + .chartXAxis(content: { + AxisMarks(position: .top) + }) + .chartXAxis(.automatic) + .chartXSelection(value: $chartSelection) + .chartYScale(domain: minMax.min...minMax.max) + .chartForegroundStyleScale([ + "Voltage": .blue, + "Current": .green + ]) + .chartLegend(position: .automatic, alignment: .bottom) + } + } + let localeDateFormat = DateFormatter.dateFormat(fromTemplate: "yyMdjmma", options: 0, locale: Locale.current) + let dateFormatString = (localeDateFormat ?? "M/d/YY j:mma").replacingOccurrences(of: ",", with: "") + + if idiom == .phone { + Table(powerMetrics, selection: $selection, sortOrder: $sortOrder) { + TableColumn("Timestamp") { m in + HStack { + Text(m.time?.formattedDate(format: dateFormatString) ?? "unknown.age".localized) + Spacer() + HStack { + VStack { + Text("Channel 1") + HStack { + Image(systemName: "powerplug.fill") + .font(.caption) + .symbolRenderingMode(.multicolor) + Text("\(String(format: "%.2f", m.powerCh1Voltage))V") + } + HStack { + Image(systemName: "bolt.fill") + .font(.caption) + .symbolRenderingMode(.multicolor) + Text("\(String(format: "%.2f", m.powerCh1Current))mA") + } + } + } + Spacer() + HStack { + VStack { + Text("Channel 2") + HStack { + Image(systemName: "powerplug.fill") + .font(.caption) + .symbolRenderingMode(.multicolor) + Text("\(String(format: "%.2f", m.powerCh2Voltage))V") + } + HStack { + Image(systemName: "bolt.fill") + .font(.caption) + .symbolRenderingMode(.multicolor) + Text("\(String(format: "%.2f", m.powerCh2Current))mA") + } + } + } + Spacer() + HStack { + VStack { + Text("Channel 3") + HStack { + Image(systemName: "powerplug.fill") + .font(.caption) + .symbolRenderingMode(.multicolor) + Text("\(String(format: "%.2f", m.powerCh3Voltage))V") + } + HStack { + Image(systemName: "bolt.fill") + .font(.caption) + .symbolRenderingMode(.multicolor) + Text("\(String(format: "%.2f", m.powerCh3Current))mA") + } + } + } + } + } + } + .onChange(of: selection) { _, newSelection in + guard let metrics = powerMetrics.first(where: { $0.id == newSelection }) else { + return + } + chartSelection = metrics.time + } + } else { + Table(powerMetrics, selection: $selection, sortOrder: $sortOrder) { + TableColumn("Ch1 Voltage") { dm in + Text("\(String(format: "%.2f", dm.powerCh1Voltage))V") + } + .width(min: 75) + TableColumn("Ch1 Current") { dm in + Text("\(String(format: "%.2f", dm.powerCh1Current))mA") + } + .width(min: 75) + TableColumn("Ch2 Voltage") { dm in + Text("\(String(format: "%.2f", dm.powerCh2Voltage))V") + } + .width(min: 75) + TableColumn("Ch2 Current") { dm in + Text("\(String(format: "%.2f", dm.powerCh2Current))mA") + } + .width(min: 75) + TableColumn("Ch3 Voltage") { dm in + Text("\(String(format: "%.2f", dm.powerCh3Voltage))V") + } + .width(min: 75) + TableColumn("Ch3 Current") { dm in + Text("\(String(format: "%.2f", dm.powerCh3Current))mA") + } + .width(min: 75) + TableColumn("timestamp") { dm in + Text(dm.time?.formattedDate(format: dateFormatString) ?? "unknown.age".localized) + } + .width(min: 180) + + } + .onChange(of: selection) { _, newSelection in + guard let metrics = powerMetrics.first(where: { $0.id == newSelection }) else { + return + } + chartSelection = metrics.time + } + } + HStack { + Button(role: .destructive) { + isPresentingClearLogConfirm = true + } label: { + Label("clear.log", systemImage: "trash.fill") + } + .buttonStyle(.bordered) + .buttonBorderShape(.capsule) + .controlSize(idiom == .phone ? .regular : .large) + .padding(.bottom) + .padding(.leading) + .confirmationDialog( + "are.you.sure", + isPresented: $isPresentingClearLogConfirm, + titleVisibility: .visible + ) { + Button("power.metrics.delete", role: .destructive) { + if clearTelemetry(destNum: node.num, metricsType: 2, context: context) { + Logger.data.notice("Cleared Power Metrics for \(node.num)") + } else { + Logger.data.error("Clear Power Metrics Log Failed") + } + } + } + + Button { + exportString = telemetryToCsvFile(telemetry: powerMetrics, metricsType: 2) + isExporting = true + } label: { + Label("save", systemImage: "square.and.arrow.down") + } + .buttonStyle(.bordered) + .buttonBorderShape(.capsule) + .controlSize(idiom == .phone ? .regular : .large) + .padding(.bottom) + .padding(.trailing) + } + .onChange(of: selection) { _, newSelection in + guard let metrics = powerMetrics.first(where: { $0.id == newSelection }) else { + return + } + chartSelection = metrics.time + } + } else { + ContentUnavailableView("No Power Metrics", systemImage: "slash.circle") + } + } + .navigationTitle("power.metrics.log") + .navigationBarTitleDisplayMode(.inline) + .navigationBarItems(trailing: + ZStack { + ConnectedDevice(bluetoothOn: bleManager.isSwitchedOn, deviceConnected: bleManager.connectedPeripheral != nil, name: (bleManager.connectedPeripheral != nil) ? bleManager.connectedPeripheral.shortName : "?") + }) + .fileExporter( + isPresented: $isExporting, + document: CsvDocument(emptyCsv: exportString), + contentType: .commaSeparatedText, + defaultFilename: String("\(node.user?.longName ?? "Node") \("power.metrics.log".localized)"), + onCompletion: { result in + switch result { + case .success: + self.isExporting = false + Logger.services.info("Power metrics log download succeeded.") + case .failure(let error): + Logger.services.error("Power metrics log download failed: \(error.localizedDescription)") + } + } + ) + } +} diff --git a/Meshtastic/Views/Settings/Config/Module/MQTTConfig.swift b/Meshtastic/Views/Settings/Config/Module/MQTTConfig.swift index ca54a40e..f616f8bf 100644 --- a/Meshtastic/Views/Settings/Config/Module/MQTTConfig.swift +++ b/Meshtastic/Views/Settings/Config/Module/MQTTConfig.swift @@ -174,7 +174,7 @@ struct MQTTConfig: View { .keyboardType(.default) } .autocorrectionDisabled() - if !proxyToClientEnabled && address != "mqtt.meshtastic.org" { + if address != "mqtt.meshtastic.org" { HStack { Label("mqtt.username", systemImage: "person.text.rectangle") TextField("mqtt.username", text: $username) @@ -216,7 +216,7 @@ struct MQTTConfig: View { .listRowSeparator(/*@START_MENU_TOKEN@*/.visible/*@END_MENU_TOKEN@*/) Toggle(isOn: $tlsEnabled) { Label("TLS Enabled", systemImage: "checkmark.shield.fill") - Text("Your MQTT Server must support TLS. Not available via the public mqtt server.") + Text("Your MQTT Server must support TLS.") } .toggleStyle(SwitchToggleStyle(tint: .accentColor)) } diff --git a/Meshtastic/Views/Settings/Routes.swift b/Meshtastic/Views/Settings/Routes.swift index 174221d2..74f9ac72 100644 --- a/Meshtastic/Views/Settings/Routes.swift +++ b/Meshtastic/Views/Settings/Routes.swift @@ -165,7 +165,7 @@ struct Routes: View { if selectedRoute != nil { let locationArray = selectedRoute?.locations?.array as? [LocationEntity] ?? [] let lineCoords = locationArray.compactMap({(location) -> CLLocationCoordinate2D in - return location.locationCoordinate ?? LocationHelper.DefaultLocation + return location.locationCoordinate ?? LocationsHandler.DefaultLocation }) Form { TextField( @@ -248,7 +248,7 @@ struct Routes: View { hasChanges = true } Map { - Annotation("Start", coordinate: lineCoords.first ?? LocationHelper.DefaultLocation) { + Annotation("Start", coordinate: lineCoords.first ?? LocationsHandler.DefaultLocation) { ZStack { Circle() .fill(Color(.green)) @@ -257,7 +257,7 @@ struct Routes: View { } } .annotationTitles(.automatic) - Annotation("Finish", coordinate: lineCoords.last ?? LocationHelper.DefaultLocation) { + Annotation("Finish", coordinate: lineCoords.last ?? LocationsHandler.DefaultLocation) { ZStack { Circle() .fill(Color(.black))