mirror of
https://github.com/zjs81/meshcore-open.git
synced 2026-06-15 15:14:26 +10:00
Merge pull request #404 from pioneer/ukrainian-translations
Ukrainian translation polished + localized hardcoded strings
This commit is contained in:
@@ -4018,7 +4018,7 @@ class MeshCoreConnector extends ChangeNotifier {
|
||||
);
|
||||
} else {
|
||||
appLogger.info(
|
||||
"Discovered contact ${contact.name} (type ${contact.typeLabel}) not added due to auto-add settings",
|
||||
"Discovered contact ${contact.name} (type ${contact.typeLabelRaw}) not added due to auto-add settings",
|
||||
tag: 'Connector',
|
||||
);
|
||||
return;
|
||||
@@ -4040,7 +4040,7 @@ class MeshCoreConnector extends ChangeNotifier {
|
||||
if (settings.notificationsEnabled && settings.notifyOnNewAdvert) {
|
||||
_notificationService.showAdvertNotification(
|
||||
contactName: contact.name,
|
||||
contactType: contact.typeLabel,
|
||||
contactType: contact.typeLabelRaw,
|
||||
contactId: contact.publicKeyHex,
|
||||
);
|
||||
}
|
||||
@@ -4115,7 +4115,7 @@ class MeshCoreConnector extends ChangeNotifier {
|
||||
if (settings.notificationsEnabled && settings.notifyOnNewAdvert) {
|
||||
_notificationService.showAdvertNotification(
|
||||
contactName: contact.name,
|
||||
contactType: contact.typeLabel,
|
||||
contactType: contact.typeLabelRaw,
|
||||
contactId: contact.publicKeyHex,
|
||||
);
|
||||
}
|
||||
@@ -6046,7 +6046,7 @@ class MeshCoreConnector extends ChangeNotifier {
|
||||
if (settings.notificationsEnabled && settings.notifyOnNewAdvert) {
|
||||
_notificationService.showAdvertNotification(
|
||||
contactName: contact.name,
|
||||
contactType: contact.typeLabel,
|
||||
contactType: contact.typeLabelRaw,
|
||||
contactId: contact.publicKeyHex,
|
||||
);
|
||||
}
|
||||
|
||||
+43
-1
@@ -104,6 +104,8 @@
|
||||
"settings_privacyModeEnabled": "Режим на поверителност е активиран",
|
||||
"settings_privacyModeDisabled": "Режим на поверителност е деактивиран",
|
||||
"settings_actions": "Действия",
|
||||
"settings_deleteAllPaths": "Delete All Paths",
|
||||
"settings_deleteAllPathsSubtitle": "Clear all path data from contacts.",
|
||||
"settings_sendAdvertisement": "Изпрати Реклама",
|
||||
"settings_sendAdvertisementSubtitle": "Сега присъствие в ефир",
|
||||
"settings_advertisementSent": "Реклама изпратена",
|
||||
@@ -682,7 +684,6 @@
|
||||
"map_showSharedMarkers": "Покажи споделени маркери",
|
||||
"map_lastSeenTime": "Последна видяна дата",
|
||||
"map_sharedPin": "Споделено копие",
|
||||
"map_sharedAt": "Споделено",
|
||||
"map_joinRoom": "Присъедини се към стаята",
|
||||
"map_manageRepeater": "Управление на Повтарящ се Елемент",
|
||||
"mapCache_title": "Кеш на офлайн карти",
|
||||
@@ -2067,7 +2068,48 @@
|
||||
"room_guest": "Информация за сървъра на стаята",
|
||||
"repeater_guest": "Информация за ретранслаторите",
|
||||
"repeater_guestTools": "Инструменти за гости",
|
||||
"common_done": "Done",
|
||||
"background_serviceTitle": "MeshCore running",
|
||||
"background_serviceText": "Keeping BLE connected",
|
||||
"appSettings_translationModelDeleted": "Deleted {name}",
|
||||
"@appSettings_translationModelDeleted": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_translationModelDeleteFailed": "Failed to delete: {error}",
|
||||
"@appSettings_translationModelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_channelUpdateFailed": "Failed to update channel: {error}",
|
||||
"@channels_channelUpdateFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_type": "Type",
|
||||
"map_path": "Path",
|
||||
"map_location": "Location",
|
||||
"map_estLocation": "Est. Location",
|
||||
"map_publicKey": "Public Key",
|
||||
"map_publicKeyPrefixHint": "e.g. ab12",
|
||||
"contact_typeChat": "Chat",
|
||||
"contact_typeRepeater": "Repeater",
|
||||
"contact_typeRoom": "Room",
|
||||
"contact_typeSensor": "Sensor",
|
||||
"contact_typeUnknown": "Unknown",
|
||||
"channels_via": "via {path}",
|
||||
"chat_score": "Score",
|
||||
"settings_multiAck": "Множество потвърждения",
|
||||
"map_sharedAt": "Споделено",
|
||||
"@losBlockedSpotChip": {
|
||||
"placeholders": {
|
||||
"distance": {
|
||||
|
||||
+43
-1
@@ -104,6 +104,8 @@
|
||||
"settings_privacyModeEnabled": "Datenschutzmodus aktiviert",
|
||||
"settings_privacyModeDisabled": "Datenschutzmodus deaktiviert",
|
||||
"settings_actions": "Aktionen",
|
||||
"settings_deleteAllPaths": "Delete All Paths",
|
||||
"settings_deleteAllPathsSubtitle": "Clear all path data from contacts.",
|
||||
"settings_sendAdvertisement": "Sende Ankündigung",
|
||||
"settings_sendAdvertisementSubtitle": "Sende eine Ankündigung",
|
||||
"settings_advertisementSent": "Ankündigung gesendet",
|
||||
@@ -682,7 +684,6 @@
|
||||
"map_showSharedMarkers": "Zeige gemeinsam genutzte Marker",
|
||||
"map_lastSeenTime": "Letzte Sichtung",
|
||||
"map_sharedPin": "Gemeinsames Passwort",
|
||||
"map_sharedAt": "Geteilt",
|
||||
"map_joinRoom": "Beitreten Sie dem Raum",
|
||||
"map_manageRepeater": "Repeater verwalten",
|
||||
"mapCache_title": "Offline-Karten-Cache",
|
||||
@@ -2095,7 +2096,48 @@
|
||||
"repeater_guestTools": "Gastwerkzeuge",
|
||||
"chat_sendMessage": "Nachricht senden",
|
||||
"room_guest": "Informationen zum Room Server",
|
||||
"common_done": "Done",
|
||||
"background_serviceTitle": "MeshCore running",
|
||||
"background_serviceText": "Keeping BLE connected",
|
||||
"appSettings_translationModelDeleted": "Deleted {name}",
|
||||
"@appSettings_translationModelDeleted": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_translationModelDeleteFailed": "Failed to delete: {error}",
|
||||
"@appSettings_translationModelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_channelUpdateFailed": "Failed to update channel: {error}",
|
||||
"@channels_channelUpdateFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_type": "Type",
|
||||
"map_path": "Path",
|
||||
"map_location": "Location",
|
||||
"map_estLocation": "Est. Location",
|
||||
"map_publicKey": "Public Key",
|
||||
"map_publicKeyPrefixHint": "e.g. ab12",
|
||||
"contact_typeChat": "Chat",
|
||||
"contact_typeRepeater": "Repeater",
|
||||
"contact_typeRoom": "Room",
|
||||
"contact_typeSensor": "Sensor",
|
||||
"contact_typeUnknown": "Unknown",
|
||||
"channels_via": "via {path}",
|
||||
"chat_score": "Score",
|
||||
"settings_multiAck": "Mehrere Bestätigungen",
|
||||
"map_sharedAt": "Geteilt",
|
||||
"@losBlockedSpotChip": {
|
||||
"placeholders": {
|
||||
"distance": {
|
||||
|
||||
+50
-1
@@ -12,6 +12,7 @@
|
||||
"common_delete": "Delete",
|
||||
"common_deleteAll": "Delete All",
|
||||
"common_close": "Close",
|
||||
"common_done": "Done",
|
||||
"common_edit": "Edit",
|
||||
"common_add": "Add",
|
||||
"common_settings": "Settings",
|
||||
@@ -181,6 +182,8 @@
|
||||
"settings_multiAck": "Multi-ACKs",
|
||||
"settings_telemetryModeUpdated": "Telemetry mode updated",
|
||||
"settings_actions": "Actions",
|
||||
"settings_deleteAllPaths": "Delete All Paths",
|
||||
"settings_deleteAllPathsSubtitle": "Clear all path data from contacts.",
|
||||
"settings_sendAdvertisement": "Send Advertisement",
|
||||
"settings_sendAdvertisementSubtitle": "Broadcast presence now",
|
||||
"settings_advertisementSent": "Advertisement sent",
|
||||
@@ -516,6 +519,14 @@
|
||||
},
|
||||
"channels_hashtagChannel": "Hashtag channel",
|
||||
"channels_public": "Public",
|
||||
"channels_via": "via {path}",
|
||||
"@channels_via": {
|
||||
"placeholders": {
|
||||
"path": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_private": "Private",
|
||||
"channels_publicChannel": "Public channel",
|
||||
"channels_privateChannel": "Private channel",
|
||||
@@ -766,6 +777,7 @@
|
||||
}
|
||||
},
|
||||
"chat_successes": "successes",
|
||||
"chat_score": "Score",
|
||||
"chat_removePath": "Remove path",
|
||||
"chat_noPathHistoryYet": "No path history yet.\nSend a message to discover paths.",
|
||||
"chat_pathActions": "Path Actions:",
|
||||
@@ -864,6 +876,12 @@
|
||||
"map_from": "From",
|
||||
"map_source": "Source",
|
||||
"map_flags": "Flags",
|
||||
"map_type": "Type",
|
||||
"map_path": "Path",
|
||||
"map_location": "Location",
|
||||
"map_estLocation": "Est. Location",
|
||||
"map_publicKey": "Public Key",
|
||||
"map_publicKeyPrefixHint": "e.g. ab12",
|
||||
"map_shareMarkerHere": "Share marker here",
|
||||
"map_setAsMyLocation": "Set as my location",
|
||||
"map_pinLabel": "Pin label",
|
||||
@@ -2157,5 +2175,36 @@
|
||||
}
|
||||
},
|
||||
"translation_translationOptions": "Translation options",
|
||||
"translation_systemLanguage": "System language"
|
||||
"translation_systemLanguage": "System language",
|
||||
"background_serviceTitle": "MeshCore running",
|
||||
"background_serviceText": "Keeping BLE connected",
|
||||
"appSettings_translationModelDeleted": "Deleted {name}",
|
||||
"@appSettings_translationModelDeleted": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_translationModelDeleteFailed": "Failed to delete: {error}",
|
||||
"@appSettings_translationModelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_channelUpdateFailed": "Failed to update channel: {error}",
|
||||
"@channels_channelUpdateFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"contact_typeChat": "Chat",
|
||||
"contact_typeRepeater": "Repeater",
|
||||
"contact_typeRoom": "Room",
|
||||
"contact_typeSensor": "Sensor",
|
||||
"contact_typeUnknown": "Unknown"
|
||||
}
|
||||
|
||||
+43
-1
@@ -104,6 +104,8 @@
|
||||
"settings_privacyModeEnabled": "Modo de privacidad activado",
|
||||
"settings_privacyModeDisabled": "Modo de privacidad desactivado",
|
||||
"settings_actions": "Acciones",
|
||||
"settings_deleteAllPaths": "Delete All Paths",
|
||||
"settings_deleteAllPathsSubtitle": "Clear all path data from contacts.",
|
||||
"settings_sendAdvertisement": "Enviar Anuncio",
|
||||
"settings_sendAdvertisementSubtitle": "Presencia de transmisión ahora",
|
||||
"settings_advertisementSent": "Anuncio enviado",
|
||||
@@ -682,7 +684,6 @@
|
||||
"map_showSharedMarkers": "Mostrar marcadores compartidos",
|
||||
"map_lastSeenTime": "Última vez que se vio",
|
||||
"map_sharedPin": "Pin compartido",
|
||||
"map_sharedAt": "Compartido",
|
||||
"map_joinRoom": "Únete a la sala",
|
||||
"map_manageRepeater": "Gestionar Repetidor",
|
||||
"mapCache_title": "Caché de Mapa Offline",
|
||||
@@ -2095,7 +2096,48 @@
|
||||
"chat_sendMessage": "Enviar mensaje",
|
||||
"repeater_guestTools": "Herramientas para invitados",
|
||||
"room_guest": "Información del servidor",
|
||||
"common_done": "Done",
|
||||
"background_serviceTitle": "MeshCore running",
|
||||
"background_serviceText": "Keeping BLE connected",
|
||||
"appSettings_translationModelDeleted": "Deleted {name}",
|
||||
"@appSettings_translationModelDeleted": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_translationModelDeleteFailed": "Failed to delete: {error}",
|
||||
"@appSettings_translationModelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_channelUpdateFailed": "Failed to update channel: {error}",
|
||||
"@channels_channelUpdateFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_type": "Type",
|
||||
"map_path": "Path",
|
||||
"map_location": "Location",
|
||||
"map_estLocation": "Est. Location",
|
||||
"map_publicKey": "Public Key",
|
||||
"map_publicKeyPrefixHint": "e.g. ab12",
|
||||
"contact_typeChat": "Chat",
|
||||
"contact_typeRepeater": "Repeater",
|
||||
"contact_typeRoom": "Room",
|
||||
"contact_typeSensor": "Sensor",
|
||||
"contact_typeUnknown": "Unknown",
|
||||
"channels_via": "via {path}",
|
||||
"chat_score": "Score",
|
||||
"settings_multiAck": "Múltiples respuestas de confirmación",
|
||||
"map_sharedAt": "Compartido",
|
||||
"@losBlockedSpotChip": {
|
||||
"placeholders": {
|
||||
"distance": {
|
||||
|
||||
+43
-1
@@ -104,6 +104,8 @@
|
||||
"settings_privacyModeEnabled": "Mode de confidentialité activé",
|
||||
"settings_privacyModeDisabled": "Mode de confidentialité désactivé",
|
||||
"settings_actions": "Actions",
|
||||
"settings_deleteAllPaths": "Delete All Paths",
|
||||
"settings_deleteAllPathsSubtitle": "Clear all path data from contacts.",
|
||||
"settings_sendAdvertisement": "S'annoncer",
|
||||
"settings_sendAdvertisementSubtitle": "Présence diffusée maintenant",
|
||||
"settings_advertisementSent": "Annonce envoyée",
|
||||
@@ -682,7 +684,6 @@
|
||||
"map_showSharedMarkers": "Afficher les marqueurs partagés",
|
||||
"map_lastSeenTime": "Dernière fois vu",
|
||||
"map_sharedPin": "Clé partagée",
|
||||
"map_sharedAt": "Partagé",
|
||||
"map_joinRoom": "Rejoindre le room server",
|
||||
"map_manageRepeater": "Gérer le répéteur",
|
||||
"mapCache_title": "Cache de Carte Hors Ligne",
|
||||
@@ -2067,7 +2068,48 @@
|
||||
"chat_sendMessage": "Envoyer un message",
|
||||
"room_guest": "Informations sur le serveur",
|
||||
"repeater_guest": "Informations sur les répéteurs",
|
||||
"common_done": "Done",
|
||||
"background_serviceTitle": "MeshCore running",
|
||||
"background_serviceText": "Keeping BLE connected",
|
||||
"appSettings_translationModelDeleted": "Deleted {name}",
|
||||
"@appSettings_translationModelDeleted": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_translationModelDeleteFailed": "Failed to delete: {error}",
|
||||
"@appSettings_translationModelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_channelUpdateFailed": "Failed to update channel: {error}",
|
||||
"@channels_channelUpdateFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_type": "Type",
|
||||
"map_path": "Path",
|
||||
"map_location": "Location",
|
||||
"map_estLocation": "Est. Location",
|
||||
"map_publicKey": "Public Key",
|
||||
"map_publicKeyPrefixHint": "e.g. ab12",
|
||||
"contact_typeChat": "Chat",
|
||||
"contact_typeRepeater": "Repeater",
|
||||
"contact_typeRoom": "Room",
|
||||
"contact_typeSensor": "Sensor",
|
||||
"contact_typeUnknown": "Unknown",
|
||||
"channels_via": "via {path}",
|
||||
"chat_score": "Score",
|
||||
"settings_multiAck": "Plusieurs accusés de réception",
|
||||
"map_sharedAt": "Partagé",
|
||||
"@losBlockedSpotChip": {
|
||||
"placeholders": {
|
||||
"distance": {
|
||||
|
||||
+43
-1
@@ -167,6 +167,8 @@
|
||||
"settings_privacyModeEnabled": "Adatvédelem mód beállítva",
|
||||
"settings_privacyModeDisabled": "Adatvédelem mód kikapcsolva",
|
||||
"settings_actions": "Tevékenységek",
|
||||
"settings_deleteAllPaths": "Delete All Paths",
|
||||
"settings_deleteAllPathsSubtitle": "Clear all path data from contacts.",
|
||||
"settings_sendAdvertisement": "Hirdetés küldése",
|
||||
"settings_sendAdvertisementSubtitle": "A nyilvános megjelenés",
|
||||
"settings_advertisementSent": "Hirdetés elküldve",
|
||||
@@ -861,7 +863,6 @@
|
||||
"map_guessedLocation": "Tippolt hely",
|
||||
"map_lastSeenTime": "Utoljára megjelent idő",
|
||||
"map_sharedPin": "Gemeinsames PIN-kód",
|
||||
"map_sharedAt": "Megosztva",
|
||||
"map_joinRoom": "Csatlakozás a szobához",
|
||||
"map_manageRepeater": "Ellenőriző eszköz kezelése",
|
||||
"map_tapToAdd": "Nyomj meg a csomópontokhoz, hogy hozzáadd őket az útvonalhoz.",
|
||||
@@ -2105,7 +2106,48 @@
|
||||
"room_guest": "Szoba szerver információk",
|
||||
"chat_sendMessage": "Üzenet küldése",
|
||||
"repeater_guest": "Adatok a repeaterről",
|
||||
"common_done": "Done",
|
||||
"background_serviceTitle": "MeshCore running",
|
||||
"background_serviceText": "Keeping BLE connected",
|
||||
"appSettings_translationModelDeleted": "Deleted {name}",
|
||||
"@appSettings_translationModelDeleted": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_translationModelDeleteFailed": "Failed to delete: {error}",
|
||||
"@appSettings_translationModelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_channelUpdateFailed": "Failed to update channel: {error}",
|
||||
"@channels_channelUpdateFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_type": "Type",
|
||||
"map_path": "Path",
|
||||
"map_location": "Location",
|
||||
"map_estLocation": "Est. Location",
|
||||
"map_publicKey": "Public Key",
|
||||
"map_publicKeyPrefixHint": "e.g. ab12",
|
||||
"contact_typeChat": "Chat",
|
||||
"contact_typeRepeater": "Repeater",
|
||||
"contact_typeRoom": "Room",
|
||||
"contact_typeSensor": "Sensor",
|
||||
"contact_typeUnknown": "Unknown",
|
||||
"channels_via": "via {path}",
|
||||
"chat_score": "Score",
|
||||
"settings_multiAck": "Többszörös visszaigazolások",
|
||||
"map_sharedAt": "Megosztva",
|
||||
"@losBlockedSpotChip": {
|
||||
"placeholders": {
|
||||
"distance": {
|
||||
|
||||
+43
-1
@@ -104,6 +104,8 @@
|
||||
"settings_privacyModeEnabled": "Modalità privacy abilitata",
|
||||
"settings_privacyModeDisabled": "Modalità privacy disabilitata",
|
||||
"settings_actions": "Azioni",
|
||||
"settings_deleteAllPaths": "Delete All Paths",
|
||||
"settings_deleteAllPathsSubtitle": "Clear all path data from contacts.",
|
||||
"settings_sendAdvertisement": "Invia Annuncio",
|
||||
"settings_sendAdvertisementSubtitle": "Presenza trasmessa ora",
|
||||
"settings_advertisementSent": "Annuncio inviato",
|
||||
@@ -682,7 +684,6 @@
|
||||
"map_showSharedMarkers": "Mostra i segnaposto condivisi",
|
||||
"map_lastSeenTime": "Ultimo Tempo di Visualizzazione",
|
||||
"map_sharedPin": "Condividi PIN",
|
||||
"map_sharedAt": "Condiviso",
|
||||
"map_joinRoom": "Unisciti alla stanza",
|
||||
"map_manageRepeater": "Gestisci Ripetitore",
|
||||
"mapCache_title": "Cache Mappa Offline",
|
||||
@@ -2067,7 +2068,48 @@
|
||||
"repeater_guestTools": "Strumenti per gli ospiti",
|
||||
"chat_sendMessage": "Invia messaggio",
|
||||
"room_guest": "Informazioni sul server",
|
||||
"common_done": "Done",
|
||||
"background_serviceTitle": "MeshCore running",
|
||||
"background_serviceText": "Keeping BLE connected",
|
||||
"appSettings_translationModelDeleted": "Deleted {name}",
|
||||
"@appSettings_translationModelDeleted": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_translationModelDeleteFailed": "Failed to delete: {error}",
|
||||
"@appSettings_translationModelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_channelUpdateFailed": "Failed to update channel: {error}",
|
||||
"@channels_channelUpdateFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_type": "Type",
|
||||
"map_path": "Path",
|
||||
"map_location": "Location",
|
||||
"map_estLocation": "Est. Location",
|
||||
"map_publicKey": "Public Key",
|
||||
"map_publicKeyPrefixHint": "e.g. ab12",
|
||||
"contact_typeChat": "Chat",
|
||||
"contact_typeRepeater": "Repeater",
|
||||
"contact_typeRoom": "Room",
|
||||
"contact_typeSensor": "Sensor",
|
||||
"contact_typeUnknown": "Unknown",
|
||||
"channels_via": "via {path}",
|
||||
"chat_score": "Score",
|
||||
"settings_multiAck": "ACK multipli",
|
||||
"map_sharedAt": "Condiviso",
|
||||
"@losBlockedSpotChip": {
|
||||
"placeholders": {
|
||||
"distance": {
|
||||
|
||||
+43
-1
@@ -167,6 +167,8 @@
|
||||
"settings_privacyModeEnabled": "プライバシーモードが有効になっています",
|
||||
"settings_privacyModeDisabled": "プライバシーモードは無効化されています",
|
||||
"settings_actions": "行動",
|
||||
"settings_deleteAllPaths": "Delete All Paths",
|
||||
"settings_deleteAllPathsSubtitle": "Clear all path data from contacts.",
|
||||
"settings_sendAdvertisement": "広告を送信する",
|
||||
"settings_sendAdvertisementSubtitle": "現在、放送での活動",
|
||||
"settings_advertisementSent": "広告が送信されました",
|
||||
@@ -861,7 +863,6 @@
|
||||
"map_guessedLocation": "推測された場所",
|
||||
"map_lastSeenTime": "最後に確認された時間",
|
||||
"map_sharedPin": "共有パスワード",
|
||||
"map_sharedAt": "共有済み",
|
||||
"map_joinRoom": "部屋に参加する",
|
||||
"map_manageRepeater": "リピーターの管理",
|
||||
"map_tapToAdd": "ノードをクリックして、パスに追加します。",
|
||||
@@ -2105,7 +2106,48 @@
|
||||
"chat_sendMessage": "メッセージを送信する",
|
||||
"repeater_guest": "繰り返し送信に関する情報",
|
||||
"repeater_guestTools": "ゲスト向けツール",
|
||||
"common_done": "Done",
|
||||
"background_serviceTitle": "MeshCore running",
|
||||
"background_serviceText": "Keeping BLE connected",
|
||||
"appSettings_translationModelDeleted": "Deleted {name}",
|
||||
"@appSettings_translationModelDeleted": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_translationModelDeleteFailed": "Failed to delete: {error}",
|
||||
"@appSettings_translationModelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_channelUpdateFailed": "Failed to update channel: {error}",
|
||||
"@channels_channelUpdateFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_type": "Type",
|
||||
"map_path": "Path",
|
||||
"map_location": "Location",
|
||||
"map_estLocation": "Est. Location",
|
||||
"map_publicKey": "Public Key",
|
||||
"map_publicKeyPrefixHint": "e.g. ab12",
|
||||
"contact_typeChat": "Chat",
|
||||
"contact_typeRepeater": "Repeater",
|
||||
"contact_typeRoom": "Room",
|
||||
"contact_typeSensor": "Sensor",
|
||||
"contact_typeUnknown": "Unknown",
|
||||
"channels_via": "via {path}",
|
||||
"chat_score": "Score",
|
||||
"settings_multiAck": "複数のACK(応答)",
|
||||
"map_sharedAt": "共有済み",
|
||||
"@losBlockedSpotChip": {
|
||||
"placeholders": {
|
||||
"distance": {
|
||||
|
||||
+43
-1
@@ -167,6 +167,8 @@
|
||||
"settings_privacyModeEnabled": "개인 정보 보호 모드 활성화",
|
||||
"settings_privacyModeDisabled": "개인 정보 보호 모드 비활성화",
|
||||
"settings_actions": "행동",
|
||||
"settings_deleteAllPaths": "Delete All Paths",
|
||||
"settings_deleteAllPathsSubtitle": "Clear all path data from contacts.",
|
||||
"settings_sendAdvertisement": "광고 전송",
|
||||
"settings_sendAdvertisementSubtitle": "방송 활동",
|
||||
"settings_advertisementSent": "광고 전송",
|
||||
@@ -861,7 +863,6 @@
|
||||
"map_guessedLocation": "추측된 위치",
|
||||
"map_lastSeenTime": "마지막으로 확인된 시간",
|
||||
"map_sharedPin": "공유 비밀번호",
|
||||
"map_sharedAt": "공유됨",
|
||||
"map_joinRoom": "방에 참여",
|
||||
"map_manageRepeater": "리피터 관리",
|
||||
"map_tapToAdd": "노드에 클릭하여 경로에 추가합니다.",
|
||||
@@ -2105,7 +2106,48 @@
|
||||
"chat_sendMessage": "메시지를 보내기",
|
||||
"repeater_guest": "반복 장비 정보",
|
||||
"room_guest": "서버 정보",
|
||||
"common_done": "Done",
|
||||
"background_serviceTitle": "MeshCore running",
|
||||
"background_serviceText": "Keeping BLE connected",
|
||||
"appSettings_translationModelDeleted": "Deleted {name}",
|
||||
"@appSettings_translationModelDeleted": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_translationModelDeleteFailed": "Failed to delete: {error}",
|
||||
"@appSettings_translationModelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_channelUpdateFailed": "Failed to update channel: {error}",
|
||||
"@channels_channelUpdateFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_type": "Type",
|
||||
"map_path": "Path",
|
||||
"map_location": "Location",
|
||||
"map_estLocation": "Est. Location",
|
||||
"map_publicKey": "Public Key",
|
||||
"map_publicKeyPrefixHint": "e.g. ab12",
|
||||
"contact_typeChat": "Chat",
|
||||
"contact_typeRepeater": "Repeater",
|
||||
"contact_typeRoom": "Room",
|
||||
"contact_typeSensor": "Sensor",
|
||||
"contact_typeUnknown": "Unknown",
|
||||
"channels_via": "via {path}",
|
||||
"chat_score": "Score",
|
||||
"settings_multiAck": "다중 ACK",
|
||||
"map_sharedAt": "공유됨",
|
||||
"@losBlockedSpotChip": {
|
||||
"placeholders": {
|
||||
"distance": {
|
||||
|
||||
@@ -202,6 +202,12 @@ abstract class AppLocalizations {
|
||||
/// **'Close'**
|
||||
String get common_close;
|
||||
|
||||
/// No description provided for @common_done.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Done'**
|
||||
String get common_done;
|
||||
|
||||
/// No description provided for @common_edit.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -916,6 +922,18 @@ abstract class AppLocalizations {
|
||||
/// **'Actions'**
|
||||
String get settings_actions;
|
||||
|
||||
/// No description provided for @settings_deleteAllPaths.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Delete All Paths'**
|
||||
String get settings_deleteAllPaths;
|
||||
|
||||
/// No description provided for @settings_deleteAllPathsSubtitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Clear all path data from contacts.'**
|
||||
String get settings_deleteAllPathsSubtitle;
|
||||
|
||||
/// No description provided for @settings_sendAdvertisement.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -2044,6 +2062,12 @@ abstract class AppLocalizations {
|
||||
/// **'Public'**
|
||||
String get channels_public;
|
||||
|
||||
/// No description provided for @channels_via.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'via {path}'**
|
||||
String channels_via(String path);
|
||||
|
||||
/// No description provided for @channels_private.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -2662,6 +2686,12 @@ abstract class AppLocalizations {
|
||||
/// **'successes'**
|
||||
String get chat_successes;
|
||||
|
||||
/// No description provided for @chat_score.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Score'**
|
||||
String get chat_score;
|
||||
|
||||
/// No description provided for @chat_removePath.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -2980,6 +3010,42 @@ abstract class AppLocalizations {
|
||||
/// **'Flags'**
|
||||
String get map_flags;
|
||||
|
||||
/// No description provided for @map_type.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Type'**
|
||||
String get map_type;
|
||||
|
||||
/// No description provided for @map_path.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Path'**
|
||||
String get map_path;
|
||||
|
||||
/// No description provided for @map_location.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Location'**
|
||||
String get map_location;
|
||||
|
||||
/// No description provided for @map_estLocation.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Est. Location'**
|
||||
String get map_estLocation;
|
||||
|
||||
/// No description provided for @map_publicKey.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Public Key'**
|
||||
String get map_publicKey;
|
||||
|
||||
/// No description provided for @map_publicKeyPrefixHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'e.g. ab12'**
|
||||
String get map_publicKeyPrefixHint;
|
||||
|
||||
/// No description provided for @map_shareMarkerHere.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -6447,6 +6513,66 @@ abstract class AppLocalizations {
|
||||
/// In en, this message translates to:
|
||||
/// **'System language'**
|
||||
String get translation_systemLanguage;
|
||||
|
||||
/// No description provided for @background_serviceTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'MeshCore running'**
|
||||
String get background_serviceTitle;
|
||||
|
||||
/// No description provided for @background_serviceText.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Keeping BLE connected'**
|
||||
String get background_serviceText;
|
||||
|
||||
/// No description provided for @appSettings_translationModelDeleted.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Deleted {name}'**
|
||||
String appSettings_translationModelDeleted(String name);
|
||||
|
||||
/// No description provided for @appSettings_translationModelDeleteFailed.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Failed to delete: {error}'**
|
||||
String appSettings_translationModelDeleteFailed(String error);
|
||||
|
||||
/// No description provided for @channels_channelUpdateFailed.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Failed to update channel: {error}'**
|
||||
String channels_channelUpdateFailed(String error);
|
||||
|
||||
/// No description provided for @contact_typeChat.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Chat'**
|
||||
String get contact_typeChat;
|
||||
|
||||
/// No description provided for @contact_typeRepeater.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Repeater'**
|
||||
String get contact_typeRepeater;
|
||||
|
||||
/// No description provided for @contact_typeRoom.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Room'**
|
||||
String get contact_typeRoom;
|
||||
|
||||
/// No description provided for @contact_typeSensor.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Sensor'**
|
||||
String get contact_typeSensor;
|
||||
|
||||
/// No description provided for @contact_typeUnknown.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Unknown'**
|
||||
String get contact_typeUnknown;
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
|
||||
@@ -44,6 +44,9 @@ class AppLocalizationsBg extends AppLocalizations {
|
||||
@override
|
||||
String get common_close => 'Затвори';
|
||||
|
||||
@override
|
||||
String get common_done => 'Done';
|
||||
|
||||
@override
|
||||
String get common_edit => 'Редактирай';
|
||||
|
||||
@@ -445,6 +448,13 @@ class AppLocalizationsBg extends AppLocalizations {
|
||||
@override
|
||||
String get settings_actions => 'Действия';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPaths => 'Delete All Paths';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPathsSubtitle =>
|
||||
'Clear all path data from contacts.';
|
||||
|
||||
@override
|
||||
String get settings_sendAdvertisement => 'Изпрати Реклама';
|
||||
|
||||
@@ -1095,6 +1105,11 @@ class AppLocalizationsBg extends AppLocalizations {
|
||||
@override
|
||||
String get channels_public => 'Публично';
|
||||
|
||||
@override
|
||||
String channels_via(String path) {
|
||||
return 'via $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get channels_private => 'Личен';
|
||||
|
||||
@@ -1456,6 +1471,9 @@ class AppLocalizationsBg extends AppLocalizations {
|
||||
@override
|
||||
String get chat_successes => 'Успехи';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Score';
|
||||
|
||||
@override
|
||||
String get chat_removePath => 'Премахни пътя';
|
||||
|
||||
@@ -1645,6 +1663,24 @@ class AppLocalizationsBg extends AppLocalizations {
|
||||
@override
|
||||
String get map_flags => 'Флаг';
|
||||
|
||||
@override
|
||||
String get map_type => 'Type';
|
||||
|
||||
@override
|
||||
String get map_path => 'Path';
|
||||
|
||||
@override
|
||||
String get map_location => 'Location';
|
||||
|
||||
@override
|
||||
String get map_estLocation => 'Est. Location';
|
||||
|
||||
@override
|
||||
String get map_publicKey => 'Public Key';
|
||||
|
||||
@override
|
||||
String get map_publicKeyPrefixHint => 'e.g. ab12';
|
||||
|
||||
@override
|
||||
String get map_shareMarkerHere => 'Споделете маркер тук';
|
||||
|
||||
@@ -3740,4 +3776,40 @@ class AppLocalizationsBg extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get translation_systemLanguage => 'Език на системата';
|
||||
|
||||
@override
|
||||
String get background_serviceTitle => 'MeshCore running';
|
||||
|
||||
@override
|
||||
String get background_serviceText => 'Keeping BLE connected';
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleted(String name) {
|
||||
return 'Deleted $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleteFailed(String error) {
|
||||
return 'Failed to delete: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String channels_channelUpdateFailed(String error) {
|
||||
return 'Failed to update channel: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contact_typeChat => 'Chat';
|
||||
|
||||
@override
|
||||
String get contact_typeRepeater => 'Repeater';
|
||||
|
||||
@override
|
||||
String get contact_typeRoom => 'Room';
|
||||
|
||||
@override
|
||||
String get contact_typeSensor => 'Sensor';
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Unknown';
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get common_close => 'Schließen';
|
||||
|
||||
@override
|
||||
String get common_done => 'Done';
|
||||
|
||||
@override
|
||||
String get common_edit => 'Bearbeiten';
|
||||
|
||||
@@ -443,6 +446,13 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get settings_actions => 'Aktionen';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPaths => 'Delete All Paths';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPathsSubtitle =>
|
||||
'Clear all path data from contacts.';
|
||||
|
||||
@override
|
||||
String get settings_sendAdvertisement => 'Sende Ankündigung';
|
||||
|
||||
@@ -1090,6 +1100,11 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get channels_public => 'Öffentlich';
|
||||
|
||||
@override
|
||||
String channels_via(String path) {
|
||||
return 'via $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get channels_private => 'Privat';
|
||||
|
||||
@@ -1455,6 +1470,9 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get chat_successes => 'Erfolgreich';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Score';
|
||||
|
||||
@override
|
||||
String get chat_removePath => 'Pfad entfernen';
|
||||
|
||||
@@ -1642,6 +1660,24 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get map_flags => 'Flags';
|
||||
|
||||
@override
|
||||
String get map_type => 'Type';
|
||||
|
||||
@override
|
||||
String get map_path => 'Path';
|
||||
|
||||
@override
|
||||
String get map_location => 'Location';
|
||||
|
||||
@override
|
||||
String get map_estLocation => 'Est. Location';
|
||||
|
||||
@override
|
||||
String get map_publicKey => 'Public Key';
|
||||
|
||||
@override
|
||||
String get map_publicKeyPrefixHint => 'e.g. ab12';
|
||||
|
||||
@override
|
||||
String get map_shareMarkerHere => 'Teilen Sie den Marker hier.';
|
||||
|
||||
@@ -3751,4 +3787,40 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get translation_systemLanguage => 'Sprache des Systems';
|
||||
|
||||
@override
|
||||
String get background_serviceTitle => 'MeshCore running';
|
||||
|
||||
@override
|
||||
String get background_serviceText => 'Keeping BLE connected';
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleted(String name) {
|
||||
return 'Deleted $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleteFailed(String error) {
|
||||
return 'Failed to delete: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String channels_channelUpdateFailed(String error) {
|
||||
return 'Failed to update channel: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contact_typeChat => 'Chat';
|
||||
|
||||
@override
|
||||
String get contact_typeRepeater => 'Repeater';
|
||||
|
||||
@override
|
||||
String get contact_typeRoom => 'Room';
|
||||
|
||||
@override
|
||||
String get contact_typeSensor => 'Sensor';
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Unknown';
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get common_close => 'Close';
|
||||
|
||||
@override
|
||||
String get common_done => 'Done';
|
||||
|
||||
@override
|
||||
String get common_edit => 'Edit';
|
||||
|
||||
@@ -435,6 +438,13 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get settings_actions => 'Actions';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPaths => 'Delete All Paths';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPathsSubtitle =>
|
||||
'Clear all path data from contacts.';
|
||||
|
||||
@override
|
||||
String get settings_sendAdvertisement => 'Send Advertisement';
|
||||
|
||||
@@ -1072,6 +1082,11 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get channels_public => 'Public';
|
||||
|
||||
@override
|
||||
String channels_via(String path) {
|
||||
return 'via $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get channels_private => 'Private';
|
||||
|
||||
@@ -1428,6 +1443,9 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get chat_successes => 'successes';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Score';
|
||||
|
||||
@override
|
||||
String get chat_removePath => 'Remove path';
|
||||
|
||||
@@ -1612,6 +1630,24 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get map_flags => 'Flags';
|
||||
|
||||
@override
|
||||
String get map_type => 'Type';
|
||||
|
||||
@override
|
||||
String get map_path => 'Path';
|
||||
|
||||
@override
|
||||
String get map_location => 'Location';
|
||||
|
||||
@override
|
||||
String get map_estLocation => 'Est. Location';
|
||||
|
||||
@override
|
||||
String get map_publicKey => 'Public Key';
|
||||
|
||||
@override
|
||||
String get map_publicKeyPrefixHint => 'e.g. ab12';
|
||||
|
||||
@override
|
||||
String get map_shareMarkerHere => 'Share marker here';
|
||||
|
||||
@@ -3671,4 +3707,40 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get translation_systemLanguage => 'System language';
|
||||
|
||||
@override
|
||||
String get background_serviceTitle => 'MeshCore running';
|
||||
|
||||
@override
|
||||
String get background_serviceText => 'Keeping BLE connected';
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleted(String name) {
|
||||
return 'Deleted $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleteFailed(String error) {
|
||||
return 'Failed to delete: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String channels_channelUpdateFailed(String error) {
|
||||
return 'Failed to update channel: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contact_typeChat => 'Chat';
|
||||
|
||||
@override
|
||||
String get contact_typeRepeater => 'Repeater';
|
||||
|
||||
@override
|
||||
String get contact_typeRoom => 'Room';
|
||||
|
||||
@override
|
||||
String get contact_typeSensor => 'Sensor';
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Unknown';
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get common_close => 'Cerrar';
|
||||
|
||||
@override
|
||||
String get common_done => 'Done';
|
||||
|
||||
@override
|
||||
String get common_edit => 'Editar';
|
||||
|
||||
@@ -442,6 +445,13 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get settings_actions => 'Acciones';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPaths => 'Delete All Paths';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPathsSubtitle =>
|
||||
'Clear all path data from contacts.';
|
||||
|
||||
@override
|
||||
String get settings_sendAdvertisement => 'Enviar Anuncio';
|
||||
|
||||
@@ -1092,6 +1102,11 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get channels_public => 'Público';
|
||||
|
||||
@override
|
||||
String channels_via(String path) {
|
||||
return 'via $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get channels_private => 'Privado';
|
||||
|
||||
@@ -1453,6 +1468,9 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get chat_successes => 'Éxitos';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Score';
|
||||
|
||||
@override
|
||||
String get chat_removePath => 'Eliminar ruta';
|
||||
|
||||
@@ -1641,6 +1659,24 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get map_flags => 'Banderas';
|
||||
|
||||
@override
|
||||
String get map_type => 'Type';
|
||||
|
||||
@override
|
||||
String get map_path => 'Path';
|
||||
|
||||
@override
|
||||
String get map_location => 'Location';
|
||||
|
||||
@override
|
||||
String get map_estLocation => 'Est. Location';
|
||||
|
||||
@override
|
||||
String get map_publicKey => 'Public Key';
|
||||
|
||||
@override
|
||||
String get map_publicKeyPrefixHint => 'e.g. ab12';
|
||||
|
||||
@override
|
||||
String get map_shareMarkerHere => 'Compartir marcador aquí';
|
||||
|
||||
@@ -3744,4 +3780,40 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get translation_systemLanguage => 'Idioma del sistema';
|
||||
|
||||
@override
|
||||
String get background_serviceTitle => 'MeshCore running';
|
||||
|
||||
@override
|
||||
String get background_serviceText => 'Keeping BLE connected';
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleted(String name) {
|
||||
return 'Deleted $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleteFailed(String error) {
|
||||
return 'Failed to delete: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String channels_channelUpdateFailed(String error) {
|
||||
return 'Failed to update channel: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contact_typeChat => 'Chat';
|
||||
|
||||
@override
|
||||
String get contact_typeRepeater => 'Repeater';
|
||||
|
||||
@override
|
||||
String get contact_typeRoom => 'Room';
|
||||
|
||||
@override
|
||||
String get contact_typeSensor => 'Sensor';
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Unknown';
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get common_close => 'Fermer';
|
||||
|
||||
@override
|
||||
String get common_done => 'Done';
|
||||
|
||||
@override
|
||||
String get common_edit => 'Modifier';
|
||||
|
||||
@@ -447,6 +450,13 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get settings_actions => 'Actions';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPaths => 'Delete All Paths';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPathsSubtitle =>
|
||||
'Clear all path data from contacts.';
|
||||
|
||||
@override
|
||||
String get settings_sendAdvertisement => 'S\'annoncer';
|
||||
|
||||
@@ -1097,6 +1107,11 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get channels_public => 'Public';
|
||||
|
||||
@override
|
||||
String channels_via(String path) {
|
||||
return 'via $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get channels_private => 'Privé';
|
||||
|
||||
@@ -1460,6 +1475,9 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get chat_successes => 'Succès';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Score';
|
||||
|
||||
@override
|
||||
String get chat_removePath => 'Supprimer le chemin';
|
||||
|
||||
@@ -1651,6 +1669,24 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get map_flags => 'Drapeaux';
|
||||
|
||||
@override
|
||||
String get map_type => 'Type';
|
||||
|
||||
@override
|
||||
String get map_path => 'Path';
|
||||
|
||||
@override
|
||||
String get map_location => 'Location';
|
||||
|
||||
@override
|
||||
String get map_estLocation => 'Est. Location';
|
||||
|
||||
@override
|
||||
String get map_publicKey => 'Public Key';
|
||||
|
||||
@override
|
||||
String get map_publicKeyPrefixHint => 'e.g. ab12';
|
||||
|
||||
@override
|
||||
String get map_shareMarkerHere => 'Partager le marqueur ici';
|
||||
|
||||
@@ -3768,4 +3804,40 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get translation_systemLanguage => 'Langue du système';
|
||||
|
||||
@override
|
||||
String get background_serviceTitle => 'MeshCore running';
|
||||
|
||||
@override
|
||||
String get background_serviceText => 'Keeping BLE connected';
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleted(String name) {
|
||||
return 'Deleted $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleteFailed(String error) {
|
||||
return 'Failed to delete: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String channels_channelUpdateFailed(String error) {
|
||||
return 'Failed to update channel: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contact_typeChat => 'Chat';
|
||||
|
||||
@override
|
||||
String get contact_typeRepeater => 'Repeater';
|
||||
|
||||
@override
|
||||
String get contact_typeRoom => 'Room';
|
||||
|
||||
@override
|
||||
String get contact_typeSensor => 'Sensor';
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Unknown';
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ class AppLocalizationsHu extends AppLocalizations {
|
||||
@override
|
||||
String get common_close => 'Bezárás';
|
||||
|
||||
@override
|
||||
String get common_done => 'Done';
|
||||
|
||||
@override
|
||||
String get common_edit => 'Szerkesztés';
|
||||
|
||||
@@ -445,6 +448,13 @@ class AppLocalizationsHu extends AppLocalizations {
|
||||
@override
|
||||
String get settings_actions => 'Tevékenységek';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPaths => 'Delete All Paths';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPathsSubtitle =>
|
||||
'Clear all path data from contacts.';
|
||||
|
||||
@override
|
||||
String get settings_sendAdvertisement => 'Hirdetés küldése';
|
||||
|
||||
@@ -1097,6 +1107,11 @@ class AppLocalizationsHu extends AppLocalizations {
|
||||
@override
|
||||
String get channels_public => 'A nyilvánosság számára';
|
||||
|
||||
@override
|
||||
String channels_via(String path) {
|
||||
return 'via $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get channels_private => 'Személyes';
|
||||
|
||||
@@ -1465,6 +1480,9 @@ class AppLocalizationsHu extends AppLocalizations {
|
||||
@override
|
||||
String get chat_successes => 'sikerek';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Score';
|
||||
|
||||
@override
|
||||
String get chat_removePath => 'Törölje a elérési útvonalat';
|
||||
|
||||
@@ -1653,6 +1671,24 @@ class AppLocalizationsHu extends AppLocalizations {
|
||||
@override
|
||||
String get map_flags => 'Zászló';
|
||||
|
||||
@override
|
||||
String get map_type => 'Type';
|
||||
|
||||
@override
|
||||
String get map_path => 'Path';
|
||||
|
||||
@override
|
||||
String get map_location => 'Location';
|
||||
|
||||
@override
|
||||
String get map_estLocation => 'Est. Location';
|
||||
|
||||
@override
|
||||
String get map_publicKey => 'Public Key';
|
||||
|
||||
@override
|
||||
String get map_publicKeyPrefixHint => 'e.g. ab12';
|
||||
|
||||
@override
|
||||
String get map_shareMarkerHere => 'Osztja ezt a tartalmat itt';
|
||||
|
||||
@@ -3760,4 +3796,40 @@ class AppLocalizationsHu extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get translation_systemLanguage => 'Rendszer nyelvé';
|
||||
|
||||
@override
|
||||
String get background_serviceTitle => 'MeshCore running';
|
||||
|
||||
@override
|
||||
String get background_serviceText => 'Keeping BLE connected';
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleted(String name) {
|
||||
return 'Deleted $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleteFailed(String error) {
|
||||
return 'Failed to delete: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String channels_channelUpdateFailed(String error) {
|
||||
return 'Failed to update channel: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contact_typeChat => 'Chat';
|
||||
|
||||
@override
|
||||
String get contact_typeRepeater => 'Repeater';
|
||||
|
||||
@override
|
||||
String get contact_typeRoom => 'Room';
|
||||
|
||||
@override
|
||||
String get contact_typeSensor => 'Sensor';
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Unknown';
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ class AppLocalizationsIt extends AppLocalizations {
|
||||
@override
|
||||
String get common_close => 'Chiudi';
|
||||
|
||||
@override
|
||||
String get common_done => 'Done';
|
||||
|
||||
@override
|
||||
String get common_edit => 'Modifica';
|
||||
|
||||
@@ -445,6 +448,13 @@ class AppLocalizationsIt extends AppLocalizations {
|
||||
@override
|
||||
String get settings_actions => 'Azioni';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPaths => 'Delete All Paths';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPathsSubtitle =>
|
||||
'Clear all path data from contacts.';
|
||||
|
||||
@override
|
||||
String get settings_sendAdvertisement => 'Invia Annuncio';
|
||||
|
||||
@@ -1093,6 +1103,11 @@ class AppLocalizationsIt extends AppLocalizations {
|
||||
@override
|
||||
String get channels_public => 'Pubblico';
|
||||
|
||||
@override
|
||||
String channels_via(String path) {
|
||||
return 'via $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get channels_private => 'Privato';
|
||||
|
||||
@@ -1454,6 +1469,9 @@ class AppLocalizationsIt extends AppLocalizations {
|
||||
@override
|
||||
String get chat_successes => 'successi';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Score';
|
||||
|
||||
@override
|
||||
String get chat_removePath => 'Rimuovi percorso';
|
||||
|
||||
@@ -1643,6 +1661,24 @@ class AppLocalizationsIt extends AppLocalizations {
|
||||
@override
|
||||
String get map_flags => 'Bandiere';
|
||||
|
||||
@override
|
||||
String get map_type => 'Type';
|
||||
|
||||
@override
|
||||
String get map_path => 'Path';
|
||||
|
||||
@override
|
||||
String get map_location => 'Location';
|
||||
|
||||
@override
|
||||
String get map_estLocation => 'Est. Location';
|
||||
|
||||
@override
|
||||
String get map_publicKey => 'Public Key';
|
||||
|
||||
@override
|
||||
String get map_publicKeyPrefixHint => 'e.g. ab12';
|
||||
|
||||
@override
|
||||
String get map_shareMarkerHere => 'Condividi marcatore qui';
|
||||
|
||||
@@ -3747,4 +3783,40 @@ class AppLocalizationsIt extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get translation_systemLanguage => 'Lingua del sistema';
|
||||
|
||||
@override
|
||||
String get background_serviceTitle => 'MeshCore running';
|
||||
|
||||
@override
|
||||
String get background_serviceText => 'Keeping BLE connected';
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleted(String name) {
|
||||
return 'Deleted $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleteFailed(String error) {
|
||||
return 'Failed to delete: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String channels_channelUpdateFailed(String error) {
|
||||
return 'Failed to update channel: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contact_typeChat => 'Chat';
|
||||
|
||||
@override
|
||||
String get contact_typeRepeater => 'Repeater';
|
||||
|
||||
@override
|
||||
String get contact_typeRoom => 'Room';
|
||||
|
||||
@override
|
||||
String get contact_typeSensor => 'Sensor';
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Unknown';
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get common_close => '閉じる';
|
||||
|
||||
@override
|
||||
String get common_done => 'Done';
|
||||
|
||||
@override
|
||||
String get common_edit => '編集';
|
||||
|
||||
@@ -422,6 +425,13 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get settings_actions => '行動';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPaths => 'Delete All Paths';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPathsSubtitle =>
|
||||
'Clear all path data from contacts.';
|
||||
|
||||
@override
|
||||
String get settings_sendAdvertisement => '広告を送信する';
|
||||
|
||||
@@ -1039,6 +1049,11 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get channels_public => '一般の人々';
|
||||
|
||||
@override
|
||||
String channels_via(String path) {
|
||||
return 'via $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get channels_private => '個人の';
|
||||
|
||||
@@ -1392,6 +1407,9 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get chat_successes => '成功事例';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Score';
|
||||
|
||||
@override
|
||||
String get chat_removePath => 'パスを削除する';
|
||||
|
||||
@@ -1571,6 +1589,24 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get map_flags => '旗';
|
||||
|
||||
@override
|
||||
String get map_type => 'Type';
|
||||
|
||||
@override
|
||||
String get map_path => 'Path';
|
||||
|
||||
@override
|
||||
String get map_location => 'Location';
|
||||
|
||||
@override
|
||||
String get map_estLocation => 'Est. Location';
|
||||
|
||||
@override
|
||||
String get map_publicKey => 'Public Key';
|
||||
|
||||
@override
|
||||
String get map_publicKeyPrefixHint => 'e.g. ab12';
|
||||
|
||||
@override
|
||||
String get map_shareMarkerHere => 'この場所でシェア';
|
||||
|
||||
@@ -3565,4 +3601,40 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get translation_systemLanguage => 'システム言語';
|
||||
|
||||
@override
|
||||
String get background_serviceTitle => 'MeshCore running';
|
||||
|
||||
@override
|
||||
String get background_serviceText => 'Keeping BLE connected';
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleted(String name) {
|
||||
return 'Deleted $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleteFailed(String error) {
|
||||
return 'Failed to delete: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String channels_channelUpdateFailed(String error) {
|
||||
return 'Failed to update channel: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contact_typeChat => 'Chat';
|
||||
|
||||
@override
|
||||
String get contact_typeRepeater => 'Repeater';
|
||||
|
||||
@override
|
||||
String get contact_typeRoom => 'Room';
|
||||
|
||||
@override
|
||||
String get contact_typeSensor => 'Sensor';
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Unknown';
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ class AppLocalizationsKo extends AppLocalizations {
|
||||
@override
|
||||
String get common_close => '닫기';
|
||||
|
||||
@override
|
||||
String get common_done => 'Done';
|
||||
|
||||
@override
|
||||
String get common_edit => '수정';
|
||||
|
||||
@@ -422,6 +425,13 @@ class AppLocalizationsKo extends AppLocalizations {
|
||||
@override
|
||||
String get settings_actions => '행동';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPaths => 'Delete All Paths';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPathsSubtitle =>
|
||||
'Clear all path data from contacts.';
|
||||
|
||||
@override
|
||||
String get settings_sendAdvertisement => '광고 전송';
|
||||
|
||||
@@ -1034,6 +1044,11 @@ class AppLocalizationsKo extends AppLocalizations {
|
||||
@override
|
||||
String get channels_public => '대중의';
|
||||
|
||||
@override
|
||||
String channels_via(String path) {
|
||||
return 'via $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get channels_private => '사립';
|
||||
|
||||
@@ -1388,6 +1403,9 @@ class AppLocalizationsKo extends AppLocalizations {
|
||||
@override
|
||||
String get chat_successes => '성공 사례';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Score';
|
||||
|
||||
@override
|
||||
String get chat_removePath => '경로 제거';
|
||||
|
||||
@@ -1567,6 +1585,24 @@ class AppLocalizationsKo extends AppLocalizations {
|
||||
@override
|
||||
String get map_flags => '깃발';
|
||||
|
||||
@override
|
||||
String get map_type => 'Type';
|
||||
|
||||
@override
|
||||
String get map_path => 'Path';
|
||||
|
||||
@override
|
||||
String get map_location => 'Location';
|
||||
|
||||
@override
|
||||
String get map_estLocation => 'Est. Location';
|
||||
|
||||
@override
|
||||
String get map_publicKey => 'Public Key';
|
||||
|
||||
@override
|
||||
String get map_publicKeyPrefixHint => 'e.g. ab12';
|
||||
|
||||
@override
|
||||
String get map_shareMarkerHere => '여기에서 마커 공유';
|
||||
|
||||
@@ -3564,4 +3600,40 @@ class AppLocalizationsKo extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get translation_systemLanguage => '시스템 언어';
|
||||
|
||||
@override
|
||||
String get background_serviceTitle => 'MeshCore running';
|
||||
|
||||
@override
|
||||
String get background_serviceText => 'Keeping BLE connected';
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleted(String name) {
|
||||
return 'Deleted $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleteFailed(String error) {
|
||||
return 'Failed to delete: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String channels_channelUpdateFailed(String error) {
|
||||
return 'Failed to update channel: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contact_typeChat => 'Chat';
|
||||
|
||||
@override
|
||||
String get contact_typeRepeater => 'Repeater';
|
||||
|
||||
@override
|
||||
String get contact_typeRoom => 'Room';
|
||||
|
||||
@override
|
||||
String get contact_typeSensor => 'Sensor';
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Unknown';
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get common_close => 'Sluiten';
|
||||
|
||||
@override
|
||||
String get common_done => 'Done';
|
||||
|
||||
@override
|
||||
String get common_edit => 'Bewerken';
|
||||
|
||||
@@ -440,6 +443,13 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get settings_actions => 'Acties';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPaths => 'Delete All Paths';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPathsSubtitle =>
|
||||
'Clear all path data from contacts.';
|
||||
|
||||
@override
|
||||
String get settings_sendAdvertisement => 'Verzend Advertentie';
|
||||
|
||||
@@ -1082,6 +1092,11 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get channels_public => 'Openbaar';
|
||||
|
||||
@override
|
||||
String channels_via(String path) {
|
||||
return 'via $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get channels_private => 'Privé';
|
||||
|
||||
@@ -1442,6 +1457,9 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get chat_successes => 'Succesvol';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Score';
|
||||
|
||||
@override
|
||||
String get chat_removePath => 'Pad verwijderen';
|
||||
|
||||
@@ -1630,6 +1648,24 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get map_flags => 'Vlaggen';
|
||||
|
||||
@override
|
||||
String get map_type => 'Type';
|
||||
|
||||
@override
|
||||
String get map_path => 'Path';
|
||||
|
||||
@override
|
||||
String get map_location => 'Location';
|
||||
|
||||
@override
|
||||
String get map_estLocation => 'Est. Location';
|
||||
|
||||
@override
|
||||
String get map_publicKey => 'Public Key';
|
||||
|
||||
@override
|
||||
String get map_publicKeyPrefixHint => 'e.g. ab12';
|
||||
|
||||
@override
|
||||
String get map_shareMarkerHere => 'Deel marker hier';
|
||||
|
||||
@@ -3724,4 +3760,40 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get translation_systemLanguage => 'Taal van het systeem';
|
||||
|
||||
@override
|
||||
String get background_serviceTitle => 'MeshCore running';
|
||||
|
||||
@override
|
||||
String get background_serviceText => 'Keeping BLE connected';
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleted(String name) {
|
||||
return 'Deleted $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleteFailed(String error) {
|
||||
return 'Failed to delete: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String channels_channelUpdateFailed(String error) {
|
||||
return 'Failed to update channel: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contact_typeChat => 'Chat';
|
||||
|
||||
@override
|
||||
String get contact_typeRepeater => 'Repeater';
|
||||
|
||||
@override
|
||||
String get contact_typeRoom => 'Room';
|
||||
|
||||
@override
|
||||
String get contact_typeSensor => 'Sensor';
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Unknown';
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ class AppLocalizationsPl extends AppLocalizations {
|
||||
@override
|
||||
String get common_close => 'Zamknij';
|
||||
|
||||
@override
|
||||
String get common_done => 'Done';
|
||||
|
||||
@override
|
||||
String get common_edit => 'Edytuj';
|
||||
|
||||
@@ -448,6 +451,13 @@ class AppLocalizationsPl extends AppLocalizations {
|
||||
@override
|
||||
String get settings_actions => 'Działania';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPaths => 'Delete All Paths';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPathsSubtitle =>
|
||||
'Clear all path data from contacts.';
|
||||
|
||||
@override
|
||||
String get settings_sendAdvertisement => 'Wyślij rozgłoszenie';
|
||||
|
||||
@@ -1102,6 +1112,11 @@ class AppLocalizationsPl extends AppLocalizations {
|
||||
@override
|
||||
String get channels_public => 'Publiczny';
|
||||
|
||||
@override
|
||||
String channels_via(String path) {
|
||||
return 'via $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get channels_private => 'Prywatny';
|
||||
|
||||
@@ -1466,6 +1481,9 @@ class AppLocalizationsPl extends AppLocalizations {
|
||||
@override
|
||||
String get chat_successes => 'Sukcesy';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Score';
|
||||
|
||||
@override
|
||||
String get chat_removePath => 'Usuń ścieżkę';
|
||||
|
||||
@@ -1654,6 +1672,24 @@ class AppLocalizationsPl extends AppLocalizations {
|
||||
@override
|
||||
String get map_flags => 'Flagi';
|
||||
|
||||
@override
|
||||
String get map_type => 'Type';
|
||||
|
||||
@override
|
||||
String get map_path => 'Path';
|
||||
|
||||
@override
|
||||
String get map_location => 'Location';
|
||||
|
||||
@override
|
||||
String get map_estLocation => 'Est. Location';
|
||||
|
||||
@override
|
||||
String get map_publicKey => 'Public Key';
|
||||
|
||||
@override
|
||||
String get map_publicKeyPrefixHint => 'e.g. ab12';
|
||||
|
||||
@override
|
||||
String get map_shareMarkerHere => 'Udostępnij znacznik tutaj';
|
||||
|
||||
@@ -3755,4 +3791,40 @@ class AppLocalizationsPl extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get translation_systemLanguage => 'Język systemu';
|
||||
|
||||
@override
|
||||
String get background_serviceTitle => 'MeshCore running';
|
||||
|
||||
@override
|
||||
String get background_serviceText => 'Keeping BLE connected';
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleted(String name) {
|
||||
return 'Deleted $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleteFailed(String error) {
|
||||
return 'Failed to delete: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String channels_channelUpdateFailed(String error) {
|
||||
return 'Failed to update channel: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contact_typeChat => 'Chat';
|
||||
|
||||
@override
|
||||
String get contact_typeRepeater => 'Repeater';
|
||||
|
||||
@override
|
||||
String get contact_typeRoom => 'Room';
|
||||
|
||||
@override
|
||||
String get contact_typeSensor => 'Sensor';
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Unknown';
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get common_close => 'Fechar';
|
||||
|
||||
@override
|
||||
String get common_done => 'Done';
|
||||
|
||||
@override
|
||||
String get common_edit => 'Editar';
|
||||
|
||||
@@ -444,6 +447,13 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get settings_actions => 'Ações';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPaths => 'Delete All Paths';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPathsSubtitle =>
|
||||
'Clear all path data from contacts.';
|
||||
|
||||
@override
|
||||
String get settings_sendAdvertisement => 'Enviar Publicidade';
|
||||
|
||||
@@ -1093,6 +1103,11 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get channels_public => 'Público';
|
||||
|
||||
@override
|
||||
String channels_via(String path) {
|
||||
return 'via $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get channels_private => 'Privado';
|
||||
|
||||
@@ -1453,6 +1468,9 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get chat_successes => 'Sucessos';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Score';
|
||||
|
||||
@override
|
||||
String get chat_removePath => 'Remover caminho';
|
||||
|
||||
@@ -1642,6 +1660,24 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get map_flags => 'Bandeiras';
|
||||
|
||||
@override
|
||||
String get map_type => 'Type';
|
||||
|
||||
@override
|
||||
String get map_path => 'Path';
|
||||
|
||||
@override
|
||||
String get map_location => 'Location';
|
||||
|
||||
@override
|
||||
String get map_estLocation => 'Est. Location';
|
||||
|
||||
@override
|
||||
String get map_publicKey => 'Public Key';
|
||||
|
||||
@override
|
||||
String get map_publicKeyPrefixHint => 'e.g. ab12';
|
||||
|
||||
@override
|
||||
String get map_shareMarkerHere => 'Compartilhar marcador aqui';
|
||||
|
||||
@@ -3738,4 +3774,40 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get translation_systemLanguage => 'Idioma do sistema';
|
||||
|
||||
@override
|
||||
String get background_serviceTitle => 'MeshCore running';
|
||||
|
||||
@override
|
||||
String get background_serviceText => 'Keeping BLE connected';
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleted(String name) {
|
||||
return 'Deleted $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleteFailed(String error) {
|
||||
return 'Failed to delete: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String channels_channelUpdateFailed(String error) {
|
||||
return 'Failed to update channel: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contact_typeChat => 'Chat';
|
||||
|
||||
@override
|
||||
String get contact_typeRepeater => 'Repeater';
|
||||
|
||||
@override
|
||||
String get contact_typeRoom => 'Room';
|
||||
|
||||
@override
|
||||
String get contact_typeSensor => 'Sensor';
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Unknown';
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get common_close => 'Закрыть';
|
||||
|
||||
@override
|
||||
String get common_done => 'Готово';
|
||||
|
||||
@override
|
||||
String get common_edit => 'Изменить';
|
||||
|
||||
@@ -444,6 +447,13 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get settings_actions => 'Действия';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPaths => 'Delete All Paths';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPathsSubtitle =>
|
||||
'Clear all path data from contacts.';
|
||||
|
||||
@override
|
||||
String get settings_sendAdvertisement => 'Отправить анонсирование';
|
||||
|
||||
@@ -1093,6 +1103,11 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get channels_public => 'Публичный';
|
||||
|
||||
@override
|
||||
String channels_via(String path) {
|
||||
return 'через $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get channels_private => 'Приватный';
|
||||
|
||||
@@ -1456,6 +1471,9 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get chat_successes => 'успешно';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Оценка';
|
||||
|
||||
@override
|
||||
String get chat_removePath => 'Удалить маршрут';
|
||||
|
||||
@@ -1645,6 +1663,24 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get map_flags => 'Флаги';
|
||||
|
||||
@override
|
||||
String get map_type => 'Тип';
|
||||
|
||||
@override
|
||||
String get map_path => 'Путь';
|
||||
|
||||
@override
|
||||
String get map_location => 'Местоположение';
|
||||
|
||||
@override
|
||||
String get map_estLocation => 'Прибл. местоположение';
|
||||
|
||||
@override
|
||||
String get map_publicKey => 'Публичный ключ';
|
||||
|
||||
@override
|
||||
String get map_publicKeyPrefixHint => 'напр. ab12';
|
||||
|
||||
@override
|
||||
String get map_shareMarkerHere => 'Поделиться меткой здесь';
|
||||
|
||||
@@ -3753,4 +3789,40 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get translation_systemLanguage => 'Язык системы';
|
||||
|
||||
@override
|
||||
String get background_serviceTitle => 'MeshCore работает';
|
||||
|
||||
@override
|
||||
String get background_serviceText => 'Поддерживает BLE-соединение';
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleted(String name) {
|
||||
return 'Удалено $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleteFailed(String error) {
|
||||
return 'Не удалось удалить: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String channels_channelUpdateFailed(String error) {
|
||||
return 'Не удалось обновить канал: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contact_typeChat => 'Чат';
|
||||
|
||||
@override
|
||||
String get contact_typeRepeater => 'Ретранслятор';
|
||||
|
||||
@override
|
||||
String get contact_typeRoom => 'Комната';
|
||||
|
||||
@override
|
||||
String get contact_typeSensor => 'Датчик';
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Неизвестно';
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ class AppLocalizationsSk extends AppLocalizations {
|
||||
@override
|
||||
String get common_close => 'Zavrieť';
|
||||
|
||||
@override
|
||||
String get common_done => 'Done';
|
||||
|
||||
@override
|
||||
String get common_edit => 'Upraviť';
|
||||
|
||||
@@ -439,6 +442,13 @@ class AppLocalizationsSk extends AppLocalizations {
|
||||
@override
|
||||
String get settings_actions => 'Možné akcie';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPaths => 'Delete All Paths';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPathsSubtitle =>
|
||||
'Clear all path data from contacts.';
|
||||
|
||||
@override
|
||||
String get settings_sendAdvertisement => 'Odoslať reklamu';
|
||||
|
||||
@@ -1082,6 +1092,11 @@ class AppLocalizationsSk extends AppLocalizations {
|
||||
@override
|
||||
String get channels_public => 'Veľké verejné';
|
||||
|
||||
@override
|
||||
String channels_via(String path) {
|
||||
return 'via $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get channels_private => 'Osobné';
|
||||
|
||||
@@ -1443,6 +1458,9 @@ class AppLocalizationsSk extends AppLocalizations {
|
||||
@override
|
||||
String get chat_successes => 'Úspechy';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Score';
|
||||
|
||||
@override
|
||||
String get chat_removePath => 'Odstrániť cestu';
|
||||
|
||||
@@ -1631,6 +1649,24 @@ class AppLocalizationsSk extends AppLocalizations {
|
||||
@override
|
||||
String get map_flags => 'Zástavy';
|
||||
|
||||
@override
|
||||
String get map_type => 'Type';
|
||||
|
||||
@override
|
||||
String get map_path => 'Path';
|
||||
|
||||
@override
|
||||
String get map_location => 'Location';
|
||||
|
||||
@override
|
||||
String get map_estLocation => 'Est. Location';
|
||||
|
||||
@override
|
||||
String get map_publicKey => 'Public Key';
|
||||
|
||||
@override
|
||||
String get map_publicKeyPrefixHint => 'e.g. ab12';
|
||||
|
||||
@override
|
||||
String get map_shareMarkerHere => 'Zdieľte značku tu';
|
||||
|
||||
@@ -3718,4 +3754,40 @@ class AppLocalizationsSk extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get translation_systemLanguage => 'Jazyk systému';
|
||||
|
||||
@override
|
||||
String get background_serviceTitle => 'MeshCore running';
|
||||
|
||||
@override
|
||||
String get background_serviceText => 'Keeping BLE connected';
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleted(String name) {
|
||||
return 'Deleted $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleteFailed(String error) {
|
||||
return 'Failed to delete: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String channels_channelUpdateFailed(String error) {
|
||||
return 'Failed to update channel: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contact_typeChat => 'Chat';
|
||||
|
||||
@override
|
||||
String get contact_typeRepeater => 'Repeater';
|
||||
|
||||
@override
|
||||
String get contact_typeRoom => 'Room';
|
||||
|
||||
@override
|
||||
String get contact_typeSensor => 'Sensor';
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Unknown';
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ class AppLocalizationsSl extends AppLocalizations {
|
||||
@override
|
||||
String get common_close => 'Zapri';
|
||||
|
||||
@override
|
||||
String get common_done => 'Done';
|
||||
|
||||
@override
|
||||
String get common_edit => 'Uredi';
|
||||
|
||||
@@ -438,6 +441,13 @@ class AppLocalizationsSl extends AppLocalizations {
|
||||
@override
|
||||
String get settings_actions => 'Akcije';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPaths => 'Delete All Paths';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPathsSubtitle =>
|
||||
'Clear all path data from contacts.';
|
||||
|
||||
@override
|
||||
String get settings_sendAdvertisement => 'Pošlji Oglas';
|
||||
|
||||
@@ -1080,6 +1090,11 @@ class AppLocalizationsSl extends AppLocalizations {
|
||||
@override
|
||||
String get channels_public => 'Javni';
|
||||
|
||||
@override
|
||||
String channels_via(String path) {
|
||||
return 'via $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get channels_private => 'Zasebni';
|
||||
|
||||
@@ -1440,6 +1455,9 @@ class AppLocalizationsSl extends AppLocalizations {
|
||||
@override
|
||||
String get chat_successes => 'Uspešni';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Score';
|
||||
|
||||
@override
|
||||
String get chat_removePath => 'Izbriši pot';
|
||||
|
||||
@@ -1627,6 +1645,24 @@ class AppLocalizationsSl extends AppLocalizations {
|
||||
@override
|
||||
String get map_flags => 'Zapestnice';
|
||||
|
||||
@override
|
||||
String get map_type => 'Type';
|
||||
|
||||
@override
|
||||
String get map_path => 'Path';
|
||||
|
||||
@override
|
||||
String get map_location => 'Location';
|
||||
|
||||
@override
|
||||
String get map_estLocation => 'Est. Location';
|
||||
|
||||
@override
|
||||
String get map_publicKey => 'Public Key';
|
||||
|
||||
@override
|
||||
String get map_publicKeyPrefixHint => 'e.g. ab12';
|
||||
|
||||
@override
|
||||
String get map_shareMarkerHere => 'Delite točke tukaj.';
|
||||
|
||||
@@ -3722,4 +3758,40 @@ class AppLocalizationsSl extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get translation_systemLanguage => 'Jezik sistema';
|
||||
|
||||
@override
|
||||
String get background_serviceTitle => 'MeshCore running';
|
||||
|
||||
@override
|
||||
String get background_serviceText => 'Keeping BLE connected';
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleted(String name) {
|
||||
return 'Deleted $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleteFailed(String error) {
|
||||
return 'Failed to delete: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String channels_channelUpdateFailed(String error) {
|
||||
return 'Failed to update channel: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contact_typeChat => 'Chat';
|
||||
|
||||
@override
|
||||
String get contact_typeRepeater => 'Repeater';
|
||||
|
||||
@override
|
||||
String get contact_typeRoom => 'Room';
|
||||
|
||||
@override
|
||||
String get contact_typeSensor => 'Sensor';
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Unknown';
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ class AppLocalizationsSv extends AppLocalizations {
|
||||
@override
|
||||
String get common_close => 'Stänga';
|
||||
|
||||
@override
|
||||
String get common_done => 'Done';
|
||||
|
||||
@override
|
||||
String get common_edit => 'Redigera';
|
||||
|
||||
@@ -436,6 +439,13 @@ class AppLocalizationsSv extends AppLocalizations {
|
||||
@override
|
||||
String get settings_actions => 'Åtgärder';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPaths => 'Delete All Paths';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPathsSubtitle =>
|
||||
'Clear all path data from contacts.';
|
||||
|
||||
@override
|
||||
String get settings_sendAdvertisement => 'Skicka Annons';
|
||||
|
||||
@@ -1073,6 +1083,11 @@ class AppLocalizationsSv extends AppLocalizations {
|
||||
@override
|
||||
String get channels_public => 'Offentligt';
|
||||
|
||||
@override
|
||||
String channels_via(String path) {
|
||||
return 'via $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get channels_private => 'Privat';
|
||||
|
||||
@@ -1435,6 +1450,9 @@ class AppLocalizationsSv extends AppLocalizations {
|
||||
@override
|
||||
String get chat_successes => 'framgångar';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Score';
|
||||
|
||||
@override
|
||||
String get chat_removePath => 'Ta bort sökväg';
|
||||
|
||||
@@ -1620,6 +1638,24 @@ class AppLocalizationsSv extends AppLocalizations {
|
||||
@override
|
||||
String get map_flags => 'Flaggor';
|
||||
|
||||
@override
|
||||
String get map_type => 'Type';
|
||||
|
||||
@override
|
||||
String get map_path => 'Path';
|
||||
|
||||
@override
|
||||
String get map_location => 'Location';
|
||||
|
||||
@override
|
||||
String get map_estLocation => 'Est. Location';
|
||||
|
||||
@override
|
||||
String get map_publicKey => 'Public Key';
|
||||
|
||||
@override
|
||||
String get map_publicKeyPrefixHint => 'e.g. ab12';
|
||||
|
||||
@override
|
||||
String get map_shareMarkerHere => 'Dela markeringen här';
|
||||
|
||||
@@ -3700,4 +3736,40 @@ class AppLocalizationsSv extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get translation_systemLanguage => 'Språk för systemet';
|
||||
|
||||
@override
|
||||
String get background_serviceTitle => 'MeshCore running';
|
||||
|
||||
@override
|
||||
String get background_serviceText => 'Keeping BLE connected';
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleted(String name) {
|
||||
return 'Deleted $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleteFailed(String error) {
|
||||
return 'Failed to delete: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String channels_channelUpdateFailed(String error) {
|
||||
return 'Failed to update channel: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contact_typeChat => 'Chat';
|
||||
|
||||
@override
|
||||
String get contact_typeRepeater => 'Repeater';
|
||||
|
||||
@override
|
||||
String get contact_typeRoom => 'Room';
|
||||
|
||||
@override
|
||||
String get contact_typeSensor => 'Sensor';
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Unknown';
|
||||
}
|
||||
|
||||
+258
-188
File diff suppressed because it is too large
Load Diff
@@ -44,6 +44,9 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get common_close => '关闭';
|
||||
|
||||
@override
|
||||
String get common_done => 'Done';
|
||||
|
||||
@override
|
||||
String get common_edit => '编辑';
|
||||
|
||||
@@ -416,6 +419,13 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get settings_actions => '操作';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPaths => 'Delete All Paths';
|
||||
|
||||
@override
|
||||
String get settings_deleteAllPathsSubtitle =>
|
||||
'Clear all path data from contacts.';
|
||||
|
||||
@override
|
||||
String get settings_sendAdvertisement => '发送广播';
|
||||
|
||||
@@ -1021,6 +1031,11 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get channels_public => '公共';
|
||||
|
||||
@override
|
||||
String channels_via(String path) {
|
||||
return 'via $path';
|
||||
}
|
||||
|
||||
@override
|
||||
String get channels_private => '私有';
|
||||
|
||||
@@ -1368,6 +1383,9 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get chat_successes => '成功';
|
||||
|
||||
@override
|
||||
String get chat_score => 'Score';
|
||||
|
||||
@override
|
||||
String get chat_removePath => '移除路径';
|
||||
|
||||
@@ -1539,6 +1557,24 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get map_flags => '标志';
|
||||
|
||||
@override
|
||||
String get map_type => 'Type';
|
||||
|
||||
@override
|
||||
String get map_path => 'Path';
|
||||
|
||||
@override
|
||||
String get map_location => 'Location';
|
||||
|
||||
@override
|
||||
String get map_estLocation => 'Est. Location';
|
||||
|
||||
@override
|
||||
String get map_publicKey => 'Public Key';
|
||||
|
||||
@override
|
||||
String get map_publicKeyPrefixHint => 'e.g. ab12';
|
||||
|
||||
@override
|
||||
String get map_shareMarkerHere => '在此分享标记';
|
||||
|
||||
@@ -3461,4 +3497,40 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get translation_systemLanguage => '系统语言';
|
||||
|
||||
@override
|
||||
String get background_serviceTitle => 'MeshCore running';
|
||||
|
||||
@override
|
||||
String get background_serviceText => 'Keeping BLE connected';
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleted(String name) {
|
||||
return 'Deleted $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String appSettings_translationModelDeleteFailed(String error) {
|
||||
return 'Failed to delete: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String channels_channelUpdateFailed(String error) {
|
||||
return 'Failed to update channel: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contact_typeChat => 'Chat';
|
||||
|
||||
@override
|
||||
String get contact_typeRepeater => 'Repeater';
|
||||
|
||||
@override
|
||||
String get contact_typeRoom => 'Room';
|
||||
|
||||
@override
|
||||
String get contact_typeSensor => 'Sensor';
|
||||
|
||||
@override
|
||||
String get contact_typeUnknown => 'Unknown';
|
||||
}
|
||||
|
||||
+43
-1
@@ -104,6 +104,8 @@
|
||||
"settings_privacyModeEnabled": "Privacy modus is ingeschakeld",
|
||||
"settings_privacyModeDisabled": "Privacy modus is uitgeschakeld",
|
||||
"settings_actions": "Acties",
|
||||
"settings_deleteAllPaths": "Delete All Paths",
|
||||
"settings_deleteAllPathsSubtitle": "Clear all path data from contacts.",
|
||||
"settings_sendAdvertisement": "Verzend Advertentie",
|
||||
"settings_sendAdvertisementSubtitle": "Nu aanwezigheid uitzenden",
|
||||
"settings_advertisementSent": "Advertentie verzonden",
|
||||
@@ -682,7 +684,6 @@
|
||||
"map_showSharedMarkers": "Toon gedeelde markeringen",
|
||||
"map_lastSeenTime": "Laatste Bekeken Tijd",
|
||||
"map_sharedPin": "Gedeelde pin",
|
||||
"map_sharedAt": "Gedeeld",
|
||||
"map_joinRoom": "Kamer Toetreden",
|
||||
"map_manageRepeater": "Beheer Repeater",
|
||||
"mapCache_title": "Offline Kaarten Cache",
|
||||
@@ -2067,7 +2068,48 @@
|
||||
"room_guest": "Informatie over de server",
|
||||
"chat_sendMessage": "Verzend bericht",
|
||||
"repeater_guest": "Informatie over herhalingsapparatuur",
|
||||
"common_done": "Done",
|
||||
"background_serviceTitle": "MeshCore running",
|
||||
"background_serviceText": "Keeping BLE connected",
|
||||
"appSettings_translationModelDeleted": "Deleted {name}",
|
||||
"@appSettings_translationModelDeleted": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_translationModelDeleteFailed": "Failed to delete: {error}",
|
||||
"@appSettings_translationModelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_channelUpdateFailed": "Failed to update channel: {error}",
|
||||
"@channels_channelUpdateFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_type": "Type",
|
||||
"map_path": "Path",
|
||||
"map_location": "Location",
|
||||
"map_estLocation": "Est. Location",
|
||||
"map_publicKey": "Public Key",
|
||||
"map_publicKeyPrefixHint": "e.g. ab12",
|
||||
"contact_typeChat": "Chat",
|
||||
"contact_typeRepeater": "Repeater",
|
||||
"contact_typeRoom": "Room",
|
||||
"contact_typeSensor": "Sensor",
|
||||
"contact_typeUnknown": "Unknown",
|
||||
"channels_via": "via {path}",
|
||||
"chat_score": "Score",
|
||||
"settings_multiAck": "Meerdere bevestigingen",
|
||||
"map_sharedAt": "Gedeeld",
|
||||
"@losBlockedSpotChip": {
|
||||
"placeholders": {
|
||||
"distance": {
|
||||
|
||||
+43
-1
@@ -104,6 +104,8 @@
|
||||
"settings_privacyModeEnabled": "Tryb prywatności włączony",
|
||||
"settings_privacyModeDisabled": "Tryb prywatności wyłączony",
|
||||
"settings_actions": "Działania",
|
||||
"settings_deleteAllPaths": "Delete All Paths",
|
||||
"settings_deleteAllPathsSubtitle": "Clear all path data from contacts.",
|
||||
"settings_sendAdvertisement": "Wyślij rozgłoszenie",
|
||||
"settings_sendAdvertisementSubtitle": "Nadaj obecność teraz",
|
||||
"settings_advertisementSent": "Rozgłoszenie wysłane",
|
||||
@@ -692,7 +694,6 @@
|
||||
"map_showSharedMarkers": "Pokaż udostępnione znaczniki.",
|
||||
"map_lastSeenTime": "Ostatni raz widziany",
|
||||
"map_sharedPin": "Udostępniona pinezka",
|
||||
"map_sharedAt": "Udostępnione",
|
||||
"map_joinRoom": "Dołącz do pokoju",
|
||||
"map_manageRepeater": "Zarządzaj przekaźnikiem",
|
||||
"mapCache_title": "Pamięć podręczna map offline",
|
||||
@@ -2105,7 +2106,48 @@
|
||||
"repeater_guestTools": "Narzędzia dla gości",
|
||||
"repeater_guest": "Informacje dotyczące urządzenia powtarzającego",
|
||||
"room_guest": "Informacje o serwerze",
|
||||
"common_done": "Done",
|
||||
"background_serviceTitle": "MeshCore running",
|
||||
"background_serviceText": "Keeping BLE connected",
|
||||
"appSettings_translationModelDeleted": "Deleted {name}",
|
||||
"@appSettings_translationModelDeleted": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_translationModelDeleteFailed": "Failed to delete: {error}",
|
||||
"@appSettings_translationModelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_channelUpdateFailed": "Failed to update channel: {error}",
|
||||
"@channels_channelUpdateFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_type": "Type",
|
||||
"map_path": "Path",
|
||||
"map_location": "Location",
|
||||
"map_estLocation": "Est. Location",
|
||||
"map_publicKey": "Public Key",
|
||||
"map_publicKeyPrefixHint": "e.g. ab12",
|
||||
"contact_typeChat": "Chat",
|
||||
"contact_typeRepeater": "Repeater",
|
||||
"contact_typeRoom": "Room",
|
||||
"contact_typeSensor": "Sensor",
|
||||
"contact_typeUnknown": "Unknown",
|
||||
"channels_via": "via {path}",
|
||||
"chat_score": "Score",
|
||||
"settings_multiAck": "Wielokrotne potwierdzenia odbioru",
|
||||
"map_sharedAt": "Udostępnione",
|
||||
"@losBlockedSpotChip": {
|
||||
"placeholders": {
|
||||
"distance": {
|
||||
|
||||
+43
-1
@@ -104,6 +104,8 @@
|
||||
"settings_privacyModeEnabled": "Modo de privacidade ativado",
|
||||
"settings_privacyModeDisabled": "Modo de privacidade desativado",
|
||||
"settings_actions": "Ações",
|
||||
"settings_deleteAllPaths": "Delete All Paths",
|
||||
"settings_deleteAllPathsSubtitle": "Clear all path data from contacts.",
|
||||
"settings_sendAdvertisement": "Enviar Publicidade",
|
||||
"settings_sendAdvertisementSubtitle": "Presença de transmissão agora",
|
||||
"settings_advertisementSent": "Anúncio enviado",
|
||||
@@ -682,7 +684,6 @@
|
||||
"map_showSharedMarkers": "Mostrar marcadores compartilhados",
|
||||
"map_lastSeenTime": "Último Tempo de Visualização",
|
||||
"map_sharedPin": "Pin compartilhado",
|
||||
"map_sharedAt": "Compartilhado",
|
||||
"map_joinRoom": "Junte-se à Sala",
|
||||
"map_manageRepeater": "Gerenciar Repetidor",
|
||||
"mapCache_title": "Cache de Mapa Offline",
|
||||
@@ -2068,6 +2069,47 @@
|
||||
"chat_sendMessage": "Enviar mensagem",
|
||||
"repeater_guest": "Informações sobre repetidores",
|
||||
"repeater_guestTools": "Ferramentas para hóspedes",
|
||||
"common_done": "Done",
|
||||
"background_serviceTitle": "MeshCore running",
|
||||
"background_serviceText": "Keeping BLE connected",
|
||||
"appSettings_translationModelDeleted": "Deleted {name}",
|
||||
"@appSettings_translationModelDeleted": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_translationModelDeleteFailed": "Failed to delete: {error}",
|
||||
"@appSettings_translationModelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_channelUpdateFailed": "Failed to update channel: {error}",
|
||||
"@channels_channelUpdateFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_type": "Type",
|
||||
"map_path": "Path",
|
||||
"map_location": "Location",
|
||||
"map_estLocation": "Est. Location",
|
||||
"map_publicKey": "Public Key",
|
||||
"map_publicKeyPrefixHint": "e.g. ab12",
|
||||
"contact_typeChat": "Chat",
|
||||
"contact_typeRepeater": "Repeater",
|
||||
"contact_typeRoom": "Room",
|
||||
"contact_typeSensor": "Sensor",
|
||||
"contact_typeUnknown": "Unknown",
|
||||
"channels_via": "via {path}",
|
||||
"chat_score": "Score",
|
||||
"map_sharedAt": "Compartilhado",
|
||||
"@losBlockedSpotChip": {
|
||||
"placeholders": {
|
||||
"distance": {
|
||||
|
||||
+43
-1
@@ -81,6 +81,8 @@
|
||||
"settings_privacyModeEnabled": "Режим конфиденциальности включен",
|
||||
"settings_privacyModeDisabled": "Режим конфиденциальности выключен",
|
||||
"settings_actions": "Действия",
|
||||
"settings_deleteAllPaths": "Delete All Paths",
|
||||
"settings_deleteAllPathsSubtitle": "Clear all path data from contacts.",
|
||||
"settings_sendAdvertisement": "Отправить анонсирование",
|
||||
"settings_sendAdvertisementSubtitle": "Отправить анонсирование о присутствии сейчас",
|
||||
"settings_advertisementSent": "Анонсирование отправлено",
|
||||
@@ -397,7 +399,6 @@
|
||||
"map_showSharedMarkers": "Показывать общие метки",
|
||||
"map_lastSeenTime": "Время последнего появления",
|
||||
"map_sharedPin": "Общая метка",
|
||||
"map_sharedAt": "Поделено",
|
||||
"map_joinRoom": "Присоединиться к комнате",
|
||||
"map_manageRepeater": "Управление репитером",
|
||||
"mapCache_title": "Кэш офлайн-карты",
|
||||
@@ -1307,7 +1308,48 @@
|
||||
"repeater_guest": "Информация о ретрансляторе",
|
||||
"room_guest": "Информация о сервере",
|
||||
"repeater_guestTools": "Инструменты для гостей",
|
||||
"common_done": "Готово",
|
||||
"background_serviceTitle": "MeshCore работает",
|
||||
"background_serviceText": "Поддерживает BLE-соединение",
|
||||
"appSettings_translationModelDeleted": "Удалено {name}",
|
||||
"@appSettings_translationModelDeleted": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_translationModelDeleteFailed": "Не удалось удалить: {error}",
|
||||
"@appSettings_translationModelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_channelUpdateFailed": "Не удалось обновить канал: {error}",
|
||||
"@channels_channelUpdateFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_type": "Тип",
|
||||
"map_path": "Путь",
|
||||
"map_location": "Местоположение",
|
||||
"map_estLocation": "Прибл. местоположение",
|
||||
"map_publicKey": "Публичный ключ",
|
||||
"map_publicKeyPrefixHint": "напр. ab12",
|
||||
"contact_typeChat": "Чат",
|
||||
"contact_typeRepeater": "Ретранслятор",
|
||||
"contact_typeRoom": "Комната",
|
||||
"contact_typeSensor": "Датчик",
|
||||
"contact_typeUnknown": "Неизвестно",
|
||||
"channels_via": "через {path}",
|
||||
"chat_score": "Оценка",
|
||||
"settings_multiAck": "Несколько подтверждений",
|
||||
"map_sharedAt": "Поделено",
|
||||
"@losBlockedSpotChip": {
|
||||
"placeholders": {
|
||||
"distance": {
|
||||
|
||||
+43
-1
@@ -104,6 +104,8 @@
|
||||
"settings_privacyModeEnabled": "Ochranný režim je povolený.",
|
||||
"settings_privacyModeDisabled": "Ochranný režim je vypnutý",
|
||||
"settings_actions": "Možné akcie",
|
||||
"settings_deleteAllPaths": "Delete All Paths",
|
||||
"settings_deleteAllPathsSubtitle": "Clear all path data from contacts.",
|
||||
"settings_sendAdvertisement": "Odoslať reklamu",
|
||||
"settings_sendAdvertisementSubtitle": "Momentálne priezornejšie.",
|
||||
"settings_advertisementSent": "Reklama odeslaná",
|
||||
@@ -682,7 +684,6 @@
|
||||
"map_showSharedMarkers": "Zobraziť zdieľané značky",
|
||||
"map_lastSeenTime": "Posledný čas sledovania",
|
||||
"map_sharedPin": "Zdieľaný PIN",
|
||||
"map_sharedAt": "Zdieľané",
|
||||
"map_joinRoom": "Pripojiť miestnosť",
|
||||
"map_manageRepeater": "Spravovať Opakovanie",
|
||||
"mapCache_title": "Offline Mapa Pamäť",
|
||||
@@ -2068,6 +2069,47 @@
|
||||
"repeater_guest": "Informácie o opakovači",
|
||||
"room_guest": "Informácie o serveri",
|
||||
"repeater_guestTools": "Nástroje pre hostí",
|
||||
"common_done": "Done",
|
||||
"background_serviceTitle": "MeshCore running",
|
||||
"background_serviceText": "Keeping BLE connected",
|
||||
"appSettings_translationModelDeleted": "Deleted {name}",
|
||||
"@appSettings_translationModelDeleted": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_translationModelDeleteFailed": "Failed to delete: {error}",
|
||||
"@appSettings_translationModelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_channelUpdateFailed": "Failed to update channel: {error}",
|
||||
"@channels_channelUpdateFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_type": "Type",
|
||||
"map_path": "Path",
|
||||
"map_location": "Location",
|
||||
"map_estLocation": "Est. Location",
|
||||
"map_publicKey": "Public Key",
|
||||
"map_publicKeyPrefixHint": "e.g. ab12",
|
||||
"contact_typeChat": "Chat",
|
||||
"contact_typeRepeater": "Repeater",
|
||||
"contact_typeRoom": "Room",
|
||||
"contact_typeSensor": "Sensor",
|
||||
"contact_typeUnknown": "Unknown",
|
||||
"channels_via": "via {path}",
|
||||
"chat_score": "Score",
|
||||
"map_sharedAt": "Zdieľané",
|
||||
"@losBlockedSpotChip": {
|
||||
"placeholders": {
|
||||
"distance": {
|
||||
|
||||
+43
-1
@@ -104,6 +104,8 @@
|
||||
"settings_privacyModeEnabled": "Privatni način je omogočen.",
|
||||
"settings_privacyModeDisabled": "Privatni način je onemogočen.",
|
||||
"settings_actions": "Akcije",
|
||||
"settings_deleteAllPaths": "Delete All Paths",
|
||||
"settings_deleteAllPathsSubtitle": "Clear all path data from contacts.",
|
||||
"settings_sendAdvertisement": "Pošlji Oglas",
|
||||
"settings_sendAdvertisementSubtitle": "Trenutna prisotnost v oddajah",
|
||||
"settings_advertisementSent": "Oglas poslan",
|
||||
@@ -682,7 +684,6 @@
|
||||
"map_showSharedMarkers": "Pokaži skupno označenja",
|
||||
"map_lastSeenTime": "Datum zadnjega vpogleda",
|
||||
"map_sharedPin": "Deljeno naslovno geslo",
|
||||
"map_sharedAt": "Deljeno",
|
||||
"map_joinRoom": "Pridružiti sobo",
|
||||
"map_manageRepeater": "Upravljajte Ponovitve",
|
||||
"mapCache_title": "Omrezni predpomnilnik zemljeških zemljejevskih slik",
|
||||
@@ -2067,7 +2068,48 @@
|
||||
"chat_sendMessage": "Pošlji sporočilo",
|
||||
"room_guest": "Informacije o strežniku",
|
||||
"repeater_guestTools": "Naložila za goste",
|
||||
"common_done": "Done",
|
||||
"background_serviceTitle": "MeshCore running",
|
||||
"background_serviceText": "Keeping BLE connected",
|
||||
"appSettings_translationModelDeleted": "Deleted {name}",
|
||||
"@appSettings_translationModelDeleted": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_translationModelDeleteFailed": "Failed to delete: {error}",
|
||||
"@appSettings_translationModelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_channelUpdateFailed": "Failed to update channel: {error}",
|
||||
"@channels_channelUpdateFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_type": "Type",
|
||||
"map_path": "Path",
|
||||
"map_location": "Location",
|
||||
"map_estLocation": "Est. Location",
|
||||
"map_publicKey": "Public Key",
|
||||
"map_publicKeyPrefixHint": "e.g. ab12",
|
||||
"contact_typeChat": "Chat",
|
||||
"contact_typeRepeater": "Repeater",
|
||||
"contact_typeRoom": "Room",
|
||||
"contact_typeSensor": "Sensor",
|
||||
"contact_typeUnknown": "Unknown",
|
||||
"channels_via": "via {path}",
|
||||
"chat_score": "Score",
|
||||
"settings_multiAck": "Več potrdil",
|
||||
"map_sharedAt": "Deljeno",
|
||||
"@losBlockedSpotChip": {
|
||||
"placeholders": {
|
||||
"distance": {
|
||||
|
||||
+43
-1
@@ -104,6 +104,8 @@
|
||||
"settings_privacyModeEnabled": "Privatläget är aktiverat",
|
||||
"settings_privacyModeDisabled": "Privatläge är avstängt",
|
||||
"settings_actions": "Åtgärder",
|
||||
"settings_deleteAllPaths": "Delete All Paths",
|
||||
"settings_deleteAllPathsSubtitle": "Clear all path data from contacts.",
|
||||
"settings_sendAdvertisement": "Skicka Annons",
|
||||
"settings_sendAdvertisementSubtitle": "Sändning finns nu",
|
||||
"settings_advertisementSent": "Annons skickad",
|
||||
@@ -682,7 +684,6 @@
|
||||
"map_showSharedMarkers": "Visa delade markörer",
|
||||
"map_lastSeenTime": "Senaste Visats Tid",
|
||||
"map_sharedPin": "Delad PIN",
|
||||
"map_sharedAt": "Delad",
|
||||
"map_joinRoom": "Gå med i rum",
|
||||
"map_manageRepeater": "Hantera Upprepare",
|
||||
"mapCache_title": "Offline Kartcache",
|
||||
@@ -2067,7 +2068,48 @@
|
||||
"chat_sendMessage": "Skicka meddelande",
|
||||
"repeater_guestTools": "Gästverktyg",
|
||||
"room_guest": "Information om servern",
|
||||
"common_done": "Done",
|
||||
"background_serviceTitle": "MeshCore running",
|
||||
"background_serviceText": "Keeping BLE connected",
|
||||
"appSettings_translationModelDeleted": "Deleted {name}",
|
||||
"@appSettings_translationModelDeleted": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_translationModelDeleteFailed": "Failed to delete: {error}",
|
||||
"@appSettings_translationModelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_channelUpdateFailed": "Failed to update channel: {error}",
|
||||
"@channels_channelUpdateFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_type": "Type",
|
||||
"map_path": "Path",
|
||||
"map_location": "Location",
|
||||
"map_estLocation": "Est. Location",
|
||||
"map_publicKey": "Public Key",
|
||||
"map_publicKeyPrefixHint": "e.g. ab12",
|
||||
"contact_typeChat": "Chat",
|
||||
"contact_typeRepeater": "Repeater",
|
||||
"contact_typeRoom": "Room",
|
||||
"contact_typeSensor": "Sensor",
|
||||
"contact_typeUnknown": "Unknown",
|
||||
"channels_via": "via {path}",
|
||||
"chat_score": "Score",
|
||||
"settings_multiAck": "Flera bekräftelser",
|
||||
"map_sharedAt": "Delad",
|
||||
"@losBlockedSpotChip": {
|
||||
"placeholders": {
|
||||
"distance": {
|
||||
|
||||
+198
-177
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"channels_channelDeleteFailed": "Не вдалося видалити канал \"{name}\"",
|
||||
"channels_channelDeleteFailed": "Не вдалось видалити канал \"{name}\"",
|
||||
"@channels_channelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
@@ -18,6 +18,7 @@
|
||||
"common_save": "Зберегти",
|
||||
"common_delete": "Видалити",
|
||||
"common_close": "Закрити",
|
||||
"common_done": "Готово",
|
||||
"common_edit": "Редагувати",
|
||||
"common_add": "Додати",
|
||||
"common_settings": "Налаштування",
|
||||
@@ -26,7 +27,7 @@
|
||||
"common_disconnected": "Відключено",
|
||||
"common_create": "Створити",
|
||||
"common_continue": "Продовжити",
|
||||
"common_share": "Поділитися",
|
||||
"common_share": "Поділитись",
|
||||
"common_copy": "Копіювати",
|
||||
"common_retry": "Повторити",
|
||||
"common_hide": "Приховати",
|
||||
@@ -81,7 +82,7 @@
|
||||
"device_meshcore": "MeshCore",
|
||||
"settings_title": "Налаштування",
|
||||
"settings_deviceInfo": "Інформація про пристрій",
|
||||
"settings_appSettings": "Налаштування програми",
|
||||
"settings_appSettings": "Налаштування застосунку",
|
||||
"settings_appSettingsSubtitle": "Сповіщення, повідомлення та налаштування карти",
|
||||
"settings_nodeSettings": "Налаштування вузла",
|
||||
"settings_nodeName": "Ім'я вузла",
|
||||
@@ -91,19 +92,21 @@
|
||||
"settings_radioSettings": "Налаштування радіо",
|
||||
"settings_radioSettingsSubtitle": "Частота, потужність, коефіцієнт розширення",
|
||||
"settings_radioSettingsUpdated": "Налаштування радіо оновлено",
|
||||
"settings_location": "Розташування",
|
||||
"settings_locationSubtitle": "GPS координати",
|
||||
"settings_locationUpdated": "Розташування оновлено",
|
||||
"settings_location": "Геопозиція",
|
||||
"settings_locationSubtitle": "GPS-координати",
|
||||
"settings_locationUpdated": "Геопозицію оновлено",
|
||||
"settings_locationBothRequired": "Введіть широту та довготу.",
|
||||
"settings_locationInvalid": "Некоректна широта або довгота.",
|
||||
"settings_latitude": "Широта",
|
||||
"settings_longitude": "Довгота",
|
||||
"settings_privacyMode": "Режим приватності",
|
||||
"settings_privacyModeSubtitle": "Приховати ім'я/розташування в оголошеннях",
|
||||
"settings_privacyModeToggle": "Увімкніть режим приватності, щоб приховати своє ім'я та місцезнаходження в оголошеннях.",
|
||||
"settings_privacyModeSubtitle": "Приховати ім'я/геопозицію в оголошеннях",
|
||||
"settings_privacyModeToggle": "Увімкніть режим приватності, щоб приховати своє ім'я та геопозицію в оголошеннях.",
|
||||
"settings_privacyModeEnabled": "Режим приватності увімкнено",
|
||||
"settings_privacyModeDisabled": "Режим приватності вимкнено",
|
||||
"settings_actions": "Дії",
|
||||
"settings_deleteAllPaths": "Видалити всі шляхи",
|
||||
"settings_deleteAllPathsSubtitle": "Очистити всі дані шляхів у контактах.",
|
||||
"settings_sendAdvertisement": "Оголосити себе",
|
||||
"settings_sendAdvertisementSubtitle": "Транслювати присутність зараз",
|
||||
"settings_advertisementSent": "Оголошення надіслано",
|
||||
@@ -118,9 +121,9 @@
|
||||
"settings_debug": "Налагодження",
|
||||
"settings_bleDebugLog": "Журнал налагодження BLE",
|
||||
"settings_bleDebugLogSubtitle": "Команди BLE, відповіді та необроблені дані",
|
||||
"settings_appDebugLog": "Журнал налагодження програми",
|
||||
"settings_appDebugLogSubtitle": "Повідомлення налагодження програми",
|
||||
"settings_about": "Про програму",
|
||||
"settings_appDebugLog": "Журнал налагодження застосунку",
|
||||
"settings_appDebugLogSubtitle": "Повідомлення налагодження застосунку",
|
||||
"settings_about": "Про застосунок",
|
||||
"settings_aboutVersion": "MeshCore Open v{version}",
|
||||
"@settings_aboutVersion": {
|
||||
"placeholders": {
|
||||
@@ -156,7 +159,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_title": "Налаштування програми",
|
||||
"appSettings_title": "Налаштування застосунку",
|
||||
"appSettings_appearance": "Вигляд",
|
||||
"appSettings_theme": "Тема",
|
||||
"appSettings_themeSystem": "Системна",
|
||||
@@ -194,9 +197,9 @@
|
||||
"appSettings_clearPathOnMaxRetry": "Очищати шлях після макс. спроб",
|
||||
"appSettings_clearPathOnMaxRetrySubtitle": "Скидати шлях до контакту після 5 невдалих спроб надсилання",
|
||||
"appSettings_pathsWillBeCleared": "Шляхи будуть очищені після 5 невдалих спроб.",
|
||||
"appSettings_pathsWillNotBeCleared": "Шляхи не будуть очищатися автоматично.",
|
||||
"appSettings_pathsWillNotBeCleared": "Шляхи не будуть очищатись автоматично.",
|
||||
"appSettings_autoRouteRotation": "Авторотація маршруту",
|
||||
"appSettings_autoRouteRotationSubtitle": "Чергувати найкращі шляхи та режим «на всю мережу» (flood)",
|
||||
"appSettings_autoRouteRotationSubtitle": "Чергувати найкращі шляхи та режим «через всю мережу» (flood)",
|
||||
"appSettings_autoRouteRotationEnabled": "Авторотація маршрутизації увімкнена",
|
||||
"appSettings_autoRouteRotationDisabled": "Авторотація маршрутизації вимкнена",
|
||||
"appSettings_battery": "Батарея",
|
||||
@@ -251,10 +254,10 @@
|
||||
}
|
||||
},
|
||||
"appSettings_debugCard": "Налагодження",
|
||||
"appSettings_appDebugLogging": "Логування налагодження програми",
|
||||
"appSettings_appDebugLoggingSubtitle": "Записувати повідомлення налагодження програми в лог для усунення несправностей.",
|
||||
"appSettings_appDebugLoggingEnabled": "Логування налагодження програми увімкнено",
|
||||
"appSettings_appDebugLoggingDisabled": "Налагодження програми вимкнено.",
|
||||
"appSettings_appDebugLogging": "Журналювання налагодження застосунку",
|
||||
"appSettings_appDebugLoggingSubtitle": "Записувати повідомлення налагодження застосунку в журнал для усунення несправностей.",
|
||||
"appSettings_appDebugLoggingEnabled": "Журналювання налагодження застосунку увімкнено",
|
||||
"appSettings_appDebugLoggingDisabled": "Журналювання налагодження застосунку вимкнено.",
|
||||
"contacts_title": "Контакти",
|
||||
"contacts_noContacts": "Контактів не знайдено.",
|
||||
"contacts_contactsWillAppear": "Контакти з'являться, коли пристрої надішлють оголошення.",
|
||||
@@ -338,8 +341,9 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_hashtagChannel": "Канал з хештегом",
|
||||
"channels_hashtagChannel": "Хештег-канал",
|
||||
"channels_public": "Публічний",
|
||||
"channels_via": "через {path}",
|
||||
"channels_private": "Приватний",
|
||||
"channels_publicChannel": "Публічний канал",
|
||||
"channels_privateChannel": "Приватний канал",
|
||||
@@ -371,7 +375,7 @@
|
||||
"channels_pskHex": "PSK (Hex)",
|
||||
"channels_generateRandomPsk": "Згенерувати випадковий ключ PSK",
|
||||
"channels_enterChannelName": "Будь ласка, введіть назву каналу",
|
||||
"channels_pskMustBe32Hex": "PSK має складатися з 32 шістнадцяткових символів.",
|
||||
"channels_pskMustBe32Hex": "PSK має складатись з 32 шістнадцяткових символів.",
|
||||
"channels_channelAdded": "Канал «{name}» додано",
|
||||
"@channels_channelAdded": {
|
||||
"placeholders": {
|
||||
@@ -422,7 +426,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"chat_location": "Розташування",
|
||||
"chat_location": "Геопозиція",
|
||||
"chat_sendMessageTo": "Надіслати повідомлення {contactName}",
|
||||
"@chat_sendMessageTo": {
|
||||
"placeholders": {
|
||||
@@ -466,17 +470,17 @@
|
||||
"gifPicker_searchHint": "Пошук GIF...",
|
||||
"gifPicker_poweredBy": "На базі GIPHY",
|
||||
"gifPicker_noGifsFound": "GIF не знайдено",
|
||||
"gifPicker_failedLoad": "Не вдалося завантажити GIF-файли",
|
||||
"gifPicker_failedLoad": "Не вдалось завантажити GIF-файли",
|
||||
"gifPicker_failedSearch": "Пошук GIF не вдався",
|
||||
"gifPicker_noInternet": "Немає інтернет-з'єднання",
|
||||
"debugLog_appTitle": "Журнал налагодження програми",
|
||||
"debugLog_appTitle": "Журнал налагодження застосунку",
|
||||
"debugLog_bleTitle": "Журнал налагодження BLE",
|
||||
"debugLog_copyLog": "Копіювати журнал",
|
||||
"debugLog_clearLog": "Очистити журнал",
|
||||
"debugLog_copied": "Журнал налагодження скопійовано",
|
||||
"debugLog_bleCopied": "Журнал BLE скопійовано",
|
||||
"debugLog_noEntries": "Поки що немає записів журналу налагодження.",
|
||||
"debugLog_enableInSettings": "Увімкніть налагодження програми в налаштуваннях",
|
||||
"debugLog_enableInSettings": "Увімкніть налагодження застосунку в налаштуваннях",
|
||||
"debugLog_frames": "Кадри",
|
||||
"debugLog_rawLogRx": "Необроблений лог - RX",
|
||||
"debugLog_noBleActivity": "Поки що немає активності BLE.",
|
||||
@@ -546,12 +550,12 @@
|
||||
"chat_pathManagement": "Керування шляхами",
|
||||
"chat_routingMode": "Режим маршрутизації",
|
||||
"chat_autoUseSavedPath": "Авто (використовувати збережений шлях)",
|
||||
"chat_forceFloodMode": "Примусово на всю мережу",
|
||||
"chat_recentAckPaths": "Недавні шляхи ACK (натисніть, щоб використати):",
|
||||
"chat_forceFloodMode": "Примусово через всю мережу",
|
||||
"chat_recentAckPaths": "Підтверджені шляхи (натисніть, щоб використати):",
|
||||
"chat_pathHistoryFull": "Історія шляхів заповнена. Видаліть записи, щоб додати нові.",
|
||||
"chat_hopSingular": "Стрибок",
|
||||
"chat_hopPlural": "стрибків",
|
||||
"chat_hopsCount": "{count} {count, plural, =1{стрибок} few{стрибки} many{стрибків} other{стрибків}}",
|
||||
"chat_hopSingular": "Перехід",
|
||||
"chat_hopPlural": "переходів",
|
||||
"chat_hopsCount": "{count} {count, plural, =1{перехід} few{переходи} many{переходів} other{переходів}}",
|
||||
"@chat_hopsCount": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
@@ -560,6 +564,7 @@
|
||||
}
|
||||
},
|
||||
"chat_successes": "Успішно",
|
||||
"chat_score": "Оцінка",
|
||||
"chat_removePath": "Видалити шлях",
|
||||
"chat_noPathHistoryYet": "Історія шляхів недоступна.\nНадішліть повідомлення, щоб виявити шляхи.",
|
||||
"chat_pathActions": "Дії зі шляхом:",
|
||||
@@ -568,11 +573,11 @@
|
||||
"chat_clearPath": "Очистити шлях",
|
||||
"chat_clearPathSubtitle": "Примусово повторити пошук при наступному надсиланні",
|
||||
"chat_pathCleared": "Шлях очищено. Наступне повідомлення оновить маршрут.",
|
||||
"chat_floodModeSubtitle": "Використовувати перемикач маршрутизації в панелі програми",
|
||||
"chat_floodModeEnabled": "Увімкнено режим «на всю мережу». Перемикайте через іконку маршрутизації на панелі інструментів.",
|
||||
"chat_floodModeSubtitle": "Використовувати перемикач маршрутизації в панелі застосунку",
|
||||
"chat_floodModeEnabled": "Увімкнено режим «через всю мережу». Перемикайте через іконку маршрутизації на панелі інструментів.",
|
||||
"chat_fullPath": "Повний шлях",
|
||||
"chat_pathDetailsNotAvailable": "Деталі шляху ще недоступні. Спробуйте надіслати повідомлення для оновлення.",
|
||||
"chat_pathSetHops": "Шлях встановлено: {hopCount} {hopCount, plural, =1{стрибок} few{стрибки} many{стрибків} other{стрибків}} - {status}",
|
||||
"chat_pathSetHops": "Шлях встановлено: {hopCount} {hopCount, plural, =1{перехід} few{переходи} many{переходів} other{переходів}} - {status}",
|
||||
"@chat_pathSetHops": {
|
||||
"placeholders": {
|
||||
"hopCount": {
|
||||
@@ -590,9 +595,9 @@
|
||||
"chat_path": "Шлях",
|
||||
"chat_publicKey": "Відкритий ключ",
|
||||
"chat_compressOutgoingMessages": "Стискати вихідні повідомлення",
|
||||
"chat_floodForced": "На всю мережу (примусово)",
|
||||
"chat_directForced": "Прямий (примусово)",
|
||||
"chat_hopsForced": "{count} стрибків (примусово)",
|
||||
"chat_floodForced": "Через всю мережу (примусово)",
|
||||
"chat_directForced": "Напряму (примусово)",
|
||||
"chat_hopsForced": "{count} переходів (примусово)",
|
||||
"@chat_hopsForced": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
@@ -600,9 +605,9 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"chat_floodAuto": "На всю мережу (авто)",
|
||||
"chat_direct": "Прямий",
|
||||
"chat_poiShared": "Точкою інтересу поділилися",
|
||||
"chat_floodAuto": "Через всю мережу (авто)",
|
||||
"chat_direct": "Напряму",
|
||||
"chat_poiShared": "Поділилися точкою інтересу",
|
||||
"chat_unread": "Непрочитано: {count}",
|
||||
"@chat_unread": {
|
||||
"placeholders": {
|
||||
@@ -614,7 +619,7 @@
|
||||
"chat_openLink": "Відкрити посилання?",
|
||||
"chat_openLinkConfirmation": "Ви хочете відкрити це посилання у браузері?",
|
||||
"chat_open": "Відкрити",
|
||||
"chat_couldNotOpenLink": "Не вдалося відкрити посилання: {url}",
|
||||
"chat_couldNotOpenLink": "Не вдалось відкрити посилання: {url}",
|
||||
"@chat_couldNotOpenLink": {
|
||||
"placeholders": {
|
||||
"url": {
|
||||
@@ -624,8 +629,8 @@
|
||||
},
|
||||
"chat_invalidLink": "Невірний формат посилання",
|
||||
"map_title": "Карта вузлів",
|
||||
"map_noNodesWithLocation": "Немає вузлів з даними про розташування",
|
||||
"map_nodesNeedGps": "Вузли повинні надавати свої GPS координати,\nщоб з'явитися на карті.",
|
||||
"map_noNodesWithLocation": "Немає вузлів з даними про геопозицію",
|
||||
"map_nodesNeedGps": "Вузли мають надавати свої GPS координати,\nщоб з'явитись на карті.",
|
||||
"map_nodesCount": "Вузли: {count}",
|
||||
"@map_nodesCount": {
|
||||
"placeholders": {
|
||||
@@ -650,19 +655,25 @@
|
||||
"map_pinPrivate": "Замок (Приватний)",
|
||||
"map_pinPublic": "Ключ (Публічний)",
|
||||
"map_lastSeen": "Останній раз бачили",
|
||||
"map_disconnectConfirm": "Ви впевнені, що хочете відключитися від цього пристрою?",
|
||||
"map_disconnectConfirm": "Ви впевнені, що хочете відключитись від цього пристрою?",
|
||||
"map_from": "Від",
|
||||
"map_source": "Джерело",
|
||||
"map_flags": "Прапорці",
|
||||
"map_shareMarkerHere": "Поділитися маркером тут",
|
||||
"map_type": "Тип",
|
||||
"map_path": "Шлях",
|
||||
"map_location": "Геопозиція",
|
||||
"map_estLocation": "Орієнтовна геопозиція",
|
||||
"map_publicKey": "Публічний ключ",
|
||||
"map_publicKeyPrefixHint": "напр. ab12",
|
||||
"map_shareMarkerHere": "Поділитись маркером тут",
|
||||
"map_pinLabel": "Мітка піна",
|
||||
"map_label": "Мітка",
|
||||
"map_pointOfInterest": "Точка інтересу",
|
||||
"map_sendToContact": "Надіслати контакту",
|
||||
"map_sendToChannel": "Надіслати в канал",
|
||||
"map_noChannelsAvailable": "Немає доступних каналів",
|
||||
"map_publicLocationShare": "Поділитися в публічному місці",
|
||||
"map_publicLocationShareConfirm": "Ви збираєтеся поділитися розташуванням у {channelLabel}. Цей канал публічний, і кожен, хто має ключ PSK, може це побачити.",
|
||||
"map_publicLocationShare": "Поділитись в публічному місці",
|
||||
"map_publicLocationShareConfirm": "Ви збираєтесь поділитись геопозицією у {channelLabel}. Цей канал публічний, і кожен, хто має ключ PSK, може це побачити.",
|
||||
"@map_publicLocationShareConfirm": {
|
||||
"placeholders": {
|
||||
"channelLabel": {
|
||||
@@ -670,7 +681,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_connectToShareMarkers": "Підключіться до пристрою, щоб поділитися маркерами",
|
||||
"map_connectToShareMarkers": "Підключіться до пристрою, щоб поділитись маркерами",
|
||||
"map_filterNodes": "Фільтрувати вузли",
|
||||
"map_nodeTypes": "Типи вузлів",
|
||||
"map_chatNodes": "Вузли чату",
|
||||
@@ -683,8 +694,7 @@
|
||||
"map_showSharedMarkers": "Показувати спільні маркери",
|
||||
"map_lastSeenTime": "Час останньої активності",
|
||||
"map_sharedPin": "Спільний пін",
|
||||
"map_sharedAt": "Поділено",
|
||||
"map_joinRoom": "Приєднатися до кімнати",
|
||||
"map_joinRoom": "Приєднатись до кімнати",
|
||||
"map_manageRepeater": "Керувати ретранслятором",
|
||||
"mapCache_title": "Офлайн-кеш карти",
|
||||
"mapCache_selectAreaFirst": "Спершу виберіть область для кешування",
|
||||
@@ -807,7 +817,7 @@
|
||||
"time_minutes": "хвилин",
|
||||
"time_allTime": "Весь час",
|
||||
"dialog_disconnect": "Відключити",
|
||||
"dialog_disconnectConfirm": "Ви впевнені, що хочете відключитися від цього пристрою?",
|
||||
"dialog_disconnectConfirm": "Ви впевнені, що хочете відключитись від цього пристрою?",
|
||||
"login_repeaterLogin": "Вхід у ретранслятор",
|
||||
"login_roomLogin": "Вхід у кімнату",
|
||||
"login_password": "Пароль",
|
||||
@@ -818,8 +828,8 @@
|
||||
"login_roomDescription": "Введіть пароль кімнати для доступу до налаштувань та статусу.",
|
||||
"login_routing": "Маршрутизація",
|
||||
"login_routingMode": "Режим маршрутизації",
|
||||
"login_autoUseSavedPath": "Авто (використовувати збережений шлях)",
|
||||
"login_forceFloodMode": "Примусово на всю мережу",
|
||||
"login_autoUseSavedPath": "Авто (збережений шлях)",
|
||||
"login_forceFloodMode": "Примусово через всю мережу",
|
||||
"login_managePaths": "Керувати шляхами",
|
||||
"login_login": "Вхід",
|
||||
"login_attempt": "Спроба {current}/{max}",
|
||||
@@ -852,7 +862,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"path_usingHopsPath": "Використання шляху з {count} {count, plural, =1{стрибком} few{стрибками} many{стрибками} other{стрибками}}",
|
||||
"path_usingHopsPath": "Використання шляху з {count} {count, plural, =1{переходом} few{переходами} many{переходами} other{переходами}}",
|
||||
"@path_usingHopsPath": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
@@ -862,10 +872,10 @@
|
||||
},
|
||||
"path_enterCustomPath": "Ввести власний шлях",
|
||||
"path_currentPathLabel": "Поточний шлях",
|
||||
"path_hexPrefixInstructions": "Введіть 2-символьні hex-префікси для кожного стрибка, розділені комами.",
|
||||
"path_hexPrefixInstructions": "Введіть 2-символьні hex-префікси для кожного переходу, розділені комами.",
|
||||
"path_hexPrefixExample": "Приклад: A1,F2,3C (кожен вузол використовує перший байт свого відкритого ключа).",
|
||||
"path_labelHexPrefixes": "Hex-префікси",
|
||||
"path_helperMaxHops": "Макс. 64 стрибки. Кожен префікс - 2 шістнадцяткові символи (1 байт)",
|
||||
"path_helperMaxHops": "Макс. 64 переходи. Кожен префікс — 2 шістнадцяткові символи (1 байт)",
|
||||
"path_selectFromContacts": "Вибрати з контактів:",
|
||||
"path_noRepeatersFound": "Ретрансляторів або серверів кімнат не знайдено.",
|
||||
"path_customPathsRequire": "Власні шляхи вимагають проміжних вузлів, які можуть передавати повідомлення.",
|
||||
@@ -877,7 +887,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"path_tooLong": "Шлях занадто довгий. Максимум 64 стрибки.",
|
||||
"path_tooLong": "Шлях занадто довгий. Максимум 64 переходи.",
|
||||
"path_setPath": "Встановити шлях",
|
||||
"repeater_management": "Керування ретранслятором",
|
||||
"repeater_managementTools": "Інструменти керування",
|
||||
@@ -892,7 +902,7 @@
|
||||
"repeater_statusTitle": "Статус ретранслятора",
|
||||
"repeater_routingMode": "Режим маршрутизації",
|
||||
"repeater_autoUseSavedPath": "Авто (використовувати збережений шлях)",
|
||||
"repeater_forceFloodMode": "Примусово на всю мережу",
|
||||
"repeater_forceFloodMode": "Примусово через всю мережу",
|
||||
"repeater_pathManagement": "Керування шляхами",
|
||||
"repeater_refresh": "Оновити",
|
||||
"repeater_statusRequestTimeout": "Час очікування запиту статусу вичерпано.",
|
||||
@@ -937,7 +947,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"repeater_packetTxTotal": "Всього: {total}, На всю мережу: {flood}, Прямі: {direct}",
|
||||
"repeater_packetTxTotal": "Всього: {total}, Через всю мережу: {flood}, Прямі: {direct}",
|
||||
"@repeater_packetTxTotal": {
|
||||
"placeholders": {
|
||||
"total": {
|
||||
@@ -951,7 +961,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"repeater_packetRxTotal": "Всього: {total}, На всю мережу: {flood}, Прямі: {direct}",
|
||||
"repeater_packetRxTotal": "Всього: {total}, Через всю мережу: {flood}, Прямі: {direct}",
|
||||
"@repeater_packetRxTotal": {
|
||||
"placeholders": {
|
||||
"total": {
|
||||
@@ -965,7 +975,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"repeater_duplicatesFloodDirect": "На всю мережу: {flood}, Прямі: {direct}",
|
||||
"repeater_duplicatesFloodDirect": "Через всю мережу: {flood}, Прямі: {direct}",
|
||||
"@repeater_duplicatesFloodDirect": {
|
||||
"placeholders": {
|
||||
"flood": {
|
||||
@@ -1000,7 +1010,7 @@
|
||||
"repeater_bandwidth": "Смуга пропускання",
|
||||
"repeater_spreadingFactor": "Коефіцієнт розширення",
|
||||
"repeater_codingRate": "Швидкість кодування",
|
||||
"repeater_locationSettings": "Налаштування розташування",
|
||||
"repeater_locationSettings": "Налаштування геопозиції",
|
||||
"repeater_latitude": "Широта",
|
||||
"repeater_latitudeHelper": "Десяткові градуси (наприклад, 37.7749)",
|
||||
"repeater_longitude": "Довгота",
|
||||
@@ -1011,9 +1021,9 @@
|
||||
"repeater_guestAccess": "Гостьовий доступ",
|
||||
"repeater_guestAccessSubtitle": "Дозволити гостьовий доступ лише для читання",
|
||||
"repeater_privacyMode": "Режим приватності",
|
||||
"repeater_privacyModeSubtitle": "Приховати ім'я/розташування в оголошеннях",
|
||||
"repeater_privacyModeSubtitle": "Приховати ім'я/геопозицію в оголошеннях",
|
||||
"repeater_advertisementSettings": "Налаштування оголошень",
|
||||
"repeater_localAdvertInterval": "Інтервал локальних оголошень (0 стрибків)",
|
||||
"repeater_localAdvertInterval": "Інтервал локальних оголошень (без ретрансляції)",
|
||||
"repeater_localAdvertIntervalMinutes": "{minutes} хвилин",
|
||||
"@repeater_localAdvertIntervalMinutes": {
|
||||
"placeholders": {
|
||||
@@ -1022,7 +1032,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"repeater_floodAdvertInterval": "Інтервал оголошень на всю мережу (flood)",
|
||||
"repeater_floodAdvertInterval": "Інтервал оголошень через всю мережу (flood)",
|
||||
"repeater_floodAdvertIntervalHours": "{hours} годин",
|
||||
"@repeater_floodAdvertIntervalHours": {
|
||||
"placeholders": {
|
||||
@@ -1036,9 +1046,9 @@
|
||||
"repeater_rebootRepeater": "Перезавантажити ретранслятор",
|
||||
"repeater_rebootRepeaterSubtitle": "Скинути пристрій ретранслятора",
|
||||
"repeater_rebootRepeaterConfirm": "Ви впевнені, що хочете перезавантажити цей ретранслятор?",
|
||||
"repeater_regenerateIdentityKey": "Перегенерувати ключ ідентичності",
|
||||
"repeater_regenerateIdentityKey": "Перегенерувати ключ ідентифікації",
|
||||
"repeater_regenerateIdentityKeySubtitle": "Згенерувати нову пару ключів (публічний/приватний)",
|
||||
"repeater_regenerateIdentityKeyConfirm": "Це створить нову ідентичність для ретранслятора. Продовжити?",
|
||||
"repeater_regenerateIdentityKeyConfirm": "Це створить нову ідентифікацію для ретранслятора. Продовжити?",
|
||||
"repeater_eraseFileSystem": "Очистити файлову систему",
|
||||
"repeater_eraseFileSystemSubtitle": "Відформатувати файлову систему ретранслятора",
|
||||
"repeater_eraseFileSystemConfirm": "УВАГА: Це видалить всі дані з ретранслятора. Це не можна скасувати!",
|
||||
@@ -1072,7 +1082,7 @@
|
||||
"repeater_refreshBasicSettings": "Оновити основні налаштування",
|
||||
"repeater_refreshRadioSettings": "Оновити налаштування радіо",
|
||||
"repeater_refreshTxPower": "Оновити потужність TX",
|
||||
"repeater_refreshLocationSettings": "Оновити налаштування розташування",
|
||||
"repeater_refreshLocationSettings": "Оновити налаштування геопозиції",
|
||||
"repeater_refreshPacketForwarding": "Оновити пересилання пакетів",
|
||||
"repeater_refreshGuestAccess": "Оновити гостьовий доступ",
|
||||
"repeater_refreshPrivacyMode": "Оновити режим приватності",
|
||||
@@ -1129,19 +1139,19 @@
|
||||
"repeater_cliHelpSetTx": "Встановлює потужність передачі LoRa в дБм (для застосування потрібне перезавантаження).",
|
||||
"repeater_cliHelpSetRepeat": "Вмикає або вимикає роль ретранслятора для цього вузла.",
|
||||
"repeater_cliHelpSetAllowReadOnly": "(Сервер кімнати) Якщо «увімкнено», порожній пароль дозволить вхід, але не дозволить публікувати в кімнаті. (тільки читання)",
|
||||
"repeater_cliHelpSetFloodMax": "Встановлює максимальну кількість стрибків для вхідних пакетів flood (якщо >= max, пакет не пересилається).",
|
||||
"repeater_cliHelpSetFloodMax": "Встановлює максимальну кількість переходів для вхідних пакетів flood (якщо >= max, пакет не пересилається).",
|
||||
"repeater_cliHelpSetIntThresh": "Встановлює поріг інтерференції (в дБ). Значення за замовчуванням — 14. Встановлення на 0 вимикає виявлення інтерференції каналу.",
|
||||
"repeater_cliHelpSetAgcResetInterval": "Встановлює інтервал скидання автоматичного контролера посилення (AGC). Встановіть 0 для вимкнення.",
|
||||
"repeater_cliHelpSetMultiAcks": "Вмикає або вимикає функціональність подвійних ACK.",
|
||||
"repeater_cliHelpSetAdvertInterval": "Встановлює інтервал таймера для надсилання локального пакету оголошення (без ретрансляції). Встановіть 0 для вимкнення.",
|
||||
"repeater_cliHelpSetFloodAdvertInterval": "Встановлює інтервал таймера в годинах для надсилання пакету оголошення на всю мережу. Встановіть 0 для вимкнення.",
|
||||
"repeater_cliHelpSetFloodAdvertInterval": "Встановлює інтервал таймера в годинах для надсилання пакету оголошення через всю мережу. Встановіть 0 для вимкнення.",
|
||||
"repeater_cliHelpSetGuestPassword": "Встановлює/оновлює гостьовий пароль. (для ретрансляторів гостьові підключення можуть надсилати запит «Get Stats»)",
|
||||
"repeater_cliHelpSetName": "Встановлює ім'я для оголошення.",
|
||||
"repeater_cliHelpSetLat": "Встановлює широту для карти оголошень. (десяткові градуси)",
|
||||
"repeater_cliHelpSetLon": "Встановлює довготу для карти оголошень. (десяткові градуси)",
|
||||
"repeater_cliHelpSetRadio": "Повністю встановлює нові параметри радіо та зберігає їх у налаштуваннях. Потребує команди «перезавантаження» для застосування.",
|
||||
"repeater_cliHelpSetRxDelay": "Базові (експериментальні) параметри для застосування невеликої затримки до отриманих пакетів залежно від сили сигналу/оцінки. Встановіть 0 для вимкнення.",
|
||||
"repeater_cliHelpSetTxDelay": "Встановлює множник для часу роботи в режимі «на всю мережу» (flood) для пакету та системи випадкових слотів, щоб затримати його відправку (для зменшення ймовірності колізій).",
|
||||
"repeater_cliHelpSetTxDelay": "Встановлює множник для часу роботи в режимі «через всю мережу» (flood) для пакету та системи випадкових слотів, щоб затримати його відправку (для зменшення ймовірності колізій).",
|
||||
"repeater_cliHelpSetDirectTxDelay": "Те саме, що й txdelay, але для застосування випадкової затримки при пересиланні пакетів у прямому режимі.",
|
||||
"repeater_cliHelpSetBridgeEnabled": "Увімкнути/Вимкнути міст.",
|
||||
"repeater_cliHelpSetBridgeDelay": "Встановити затримку перед пересиланням пакетів.",
|
||||
@@ -1157,7 +1167,7 @@
|
||||
"repeater_cliHelpLogErase": "Видаляє журнали пакетів з файлової системи.",
|
||||
"repeater_cliHelpNeighbors": "Показує список інших вузлів-ретрансляторів, почутих через оголошення без ретрансляції. Кожен рядок — id-hex-префікс:timestamp:snr-помножено-на-4",
|
||||
"repeater_cliHelpNeighborRemove": "Видаляє перший відповідний запис (за префіксом публічного ключа (hex)) зі списку сусідів.",
|
||||
"repeater_cliHelpRegion": "(тільки серійний) Перелічує всі визначені регіони та поточні дозволи на оголошення «на всю мережу» (flood).",
|
||||
"repeater_cliHelpRegion": "(тільки серійний) Перелічує всі визначені регіони та поточні дозволи на оголошення «через всю мережу» (flood).",
|
||||
"repeater_cliHelpRegionLoad": "ПРИМІТКА: це спеціальний виклик кількох команд. Кожна наступна команда — це назва регіону (з відступом пробілами для позначення ієрархії батьків, мінімум один пробіл). Завершується надсиланням порожнього рядка/команди.",
|
||||
"repeater_cliHelpRegionGet": "Шукає регіон із заданим префіксом назви (або «» для глобальної області). Відповідає: «-> ім'я-регіону (ім'я-батька) 'F'»",
|
||||
"repeater_cliHelpRegionPut": "Додає або оновлює визначення регіону з заданою назвою.",
|
||||
@@ -1171,14 +1181,14 @@
|
||||
"repeater_cliHelpGpsOnOff": "Увімкнути/вимкнути GPS.",
|
||||
"repeater_cliHelpGpsSync": "Синхронізує час вузла з годинником GPS.",
|
||||
"repeater_cliHelpGpsSetLoc": "Встановлює позицію вузла за координатами GPS і зберігає в налаштуваннях.",
|
||||
"repeater_cliHelpGpsAdvert": "Надає конфігурацію оголошення розташування вузла:\n- none : не включати розташування в оголошення\n- share : ділитися розташуванням GPS (з SensorManager)\n- prefs : оголошувати розташування, збережене в налаштуваннях",
|
||||
"repeater_cliHelpGpsAdvertSet": "Встановлює конфігурацію оголошення розташування.",
|
||||
"repeater_cliHelpGpsAdvert": "Надає конфігурацію оголошення геопозиції вузла:\n- none : не включати геопозицію в оголошення\n- share : ділитись геопозицією GPS (з SensorManager)\n- prefs : оголошувати геопозицію, збережену в налаштуваннях",
|
||||
"repeater_cliHelpGpsAdvertSet": "Встановлює конфігурацію оголошення геопозиції.",
|
||||
"repeater_commandsListTitle": "Список команд",
|
||||
"repeater_commandsListNote": "ПРИМІТКА: для різних команд «set»... також існує команда «get»...",
|
||||
"repeater_general": "Загальні",
|
||||
"repeater_settingsCategory": "Налаштування",
|
||||
"repeater_bridge": "Міст",
|
||||
"repeater_logging": "Логування",
|
||||
"repeater_logging": "Журналювання",
|
||||
"repeater_neighborsRepeaterOnly": "Сусіди (Тільки ретранслятор)",
|
||||
"repeater_regionManagementRepeaterOnly": "Керування регіонами (Тільки ретранслятор)",
|
||||
"repeater_regionNote": "Команди регіонів були введені для керування визначеннями та дозволами регіонів.",
|
||||
@@ -1249,7 +1259,7 @@
|
||||
"channelPath_title": "Шлях пакету",
|
||||
"channelPath_viewMap": "Показати карту",
|
||||
"channelPath_otherObservedPaths": "Інші спостережувані шляхи",
|
||||
"channelPath_repeaterHops": "Стрибки ретранслятора",
|
||||
"channelPath_repeaterHops": "Переходи через ретранслятори",
|
||||
"channelPath_noHopDetails": "Деталі відправки не надані для цього пакету.",
|
||||
"channelPath_messageDetails": "Деталі повідомлення",
|
||||
"channelPath_senderLabel": "Відправник",
|
||||
@@ -1268,7 +1278,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"channelPath_noLocationData": "Немає даних про розташування",
|
||||
"channelPath_noLocationData": "Немає даних про геопозицію",
|
||||
"channelPath_timeWithDate": "{day}/{month} {time}",
|
||||
"@channelPath_timeWithDate": {
|
||||
"placeholders": {
|
||||
@@ -1292,9 +1302,9 @@
|
||||
}
|
||||
},
|
||||
"channelPath_unknownPath": "Невідомий",
|
||||
"channelPath_floodPath": "На всю мережу",
|
||||
"channelPath_directPath": "Прямий",
|
||||
"channelPath_observedZeroOf": "0 з {total} стрибків",
|
||||
"channelPath_floodPath": "Через всю мережу",
|
||||
"channelPath_directPath": "Напряму",
|
||||
"channelPath_observedZeroOf": "0 з {total} переходів",
|
||||
"@channelPath_observedZeroOf": {
|
||||
"placeholders": {
|
||||
"total": {
|
||||
@@ -1302,7 +1312,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"channelPath_observedSomeOf": "{observed} з {total} стрибків",
|
||||
"channelPath_observedSomeOf": "{observed} з {total} переходів",
|
||||
"@channelPath_observedSomeOf": {
|
||||
"placeholders": {
|
||||
"observed": {
|
||||
@@ -1343,12 +1353,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"channelPath_noHopDetailsAvailable": "Деталі стрибків недоступні для цього пакету.",
|
||||
"channelPath_noHopDetailsAvailable": "Деталі переходів недоступні для цього пакету.",
|
||||
"channelPath_unknownRepeater": "Невідомий ретранслятор",
|
||||
"listFilter_tooltip": "Фільтр та сортування",
|
||||
"listFilter_sortBy": "Сортувати за",
|
||||
"listFilter_latestMessages": "Останні повідомлення",
|
||||
"listFilter_heardRecently": "Нещодавно чули",
|
||||
"listFilter_heardRecently": "Нещодавно почуті",
|
||||
"listFilter_az": "А-Я",
|
||||
"listFilter_filters": "Фільтри",
|
||||
"listFilter_all": "Все",
|
||||
@@ -1365,20 +1375,20 @@
|
||||
}
|
||||
},
|
||||
"repeater_neighbors": "Сусіди",
|
||||
"repeater_neighborsSubtitle": "Показати сусідів нульового стрибка.",
|
||||
"repeater_neighborsSubtitle": "Показати сусідів, доступних без ретрансляції.",
|
||||
"neighbors_receivedData": "Дані сусідів отримано",
|
||||
"neighbors_requestTimedOut": "Час запиту сусідів вичерпано.",
|
||||
"neighbors_errorLoading": "Помилка завантаження сусідів: {error}",
|
||||
"neighbors_repeatersNeighbors": "Ретранслятори-сусіди",
|
||||
"neighbors_noData": "Дані про сусідів недоступні.",
|
||||
"channels_createPrivateChannelDesc": "Захищено секретним ключем.",
|
||||
"channels_joinPrivateChannel": "Приєднатися до приватного каналу",
|
||||
"channels_joinPrivateChannel": "Приєднатись до приватного каналу",
|
||||
"channels_createPrivateChannel": "Створити приватний канал",
|
||||
"channels_joinPrivateChannelDesc": "Ввести секретний ключ вручну.",
|
||||
"channels_joinPublicChannel": "Приєднатися до публічного каналу",
|
||||
"channels_joinPublicChannelDesc": "Будь-хто може приєднатися до цього каналу.",
|
||||
"channels_joinHashtagChannel": "Приєднатися до каналу з хештегом",
|
||||
"channels_joinHashtagChannelDesc": "Будь-хто може приєднатися до каналів #hashtag.",
|
||||
"channels_joinPublicChannel": "Приєднатись до публічного каналу",
|
||||
"channels_joinPublicChannelDesc": "Будь-хто може приєднатись до цього каналу.",
|
||||
"channels_joinHashtagChannel": "Приєднатись до хештег-каналу",
|
||||
"channels_joinHashtagChannelDesc": "Будь-хто може приєднатись до хештег-каналів.",
|
||||
"channels_scanQrCode": "Сканувати QR-код",
|
||||
"channels_scanQrCodeComingSoon": "Скоро буде",
|
||||
"channels_enterHashtag": "Введіть хештег",
|
||||
@@ -1400,7 +1410,7 @@
|
||||
"neighbors_unknownContact": "Невідомий відкритий ключ {pubkey}",
|
||||
"neighbors_heardAgo": "Почуто: {time} тому",
|
||||
"settings_locationGPSEnable": "Увімкнути GPS",
|
||||
"settings_locationGPSEnableSubtitle": "Вмикає автоматичне оновлення місцезнаходження через GPS.",
|
||||
"settings_locationGPSEnableSubtitle": "Вмикає автоматичне оновлення геопозиції через GPS.",
|
||||
"settings_locationIntervalSec": "Інтервал для GPS (Секунди)",
|
||||
"settings_locationIntervalInvalid": "Інтервал має бути не менше 60 секунд і менше 86400 секунд.",
|
||||
"contacts_manageRoom": "Керувати сервером кімнати",
|
||||
@@ -1464,10 +1474,10 @@
|
||||
"common_ok": "ОК",
|
||||
"community_title": "Спільнота",
|
||||
"community_create": "Створити спільноту",
|
||||
"community_createDesc": "Створити нову спільноту та поділитися через QR-код.",
|
||||
"community_join": "Приєднатися",
|
||||
"community_joinTitle": "Приєднатися до спільноти",
|
||||
"community_joinConfirmation": "Ви бажаєте приєднатися до спільноти «{name}»?",
|
||||
"community_createDesc": "Створити нову спільноту та поділитись через QR-код.",
|
||||
"community_join": "Приєднатись",
|
||||
"community_joinTitle": "Приєднатись до спільноти",
|
||||
"community_joinConfirmation": "Ви бажаєте приєднатись до спільноти «{name}»?",
|
||||
"community_scanQr": "Сканувати QR спільноти",
|
||||
"community_scanInstructions": "Наведіть камеру на QR-код спільноти.",
|
||||
"community_showQr": "Показати QR-код",
|
||||
@@ -1477,9 +1487,9 @@
|
||||
"community_enterName": "Введіть назву спільноти",
|
||||
"community_created": "Спільноту «{name}» створено",
|
||||
"community_joined": "Приєднався до спільноти «{name}»",
|
||||
"community_qrTitle": "Поділитися спільнотою",
|
||||
"community_qrInstructions": "Відскануйте цей QR-код, щоб приєднатися до {name}",
|
||||
"community_hashtagPrivacyHint": "Канали хештегів спільноти доступні лише членам спільноти",
|
||||
"community_qrTitle": "Поділитись спільнотою",
|
||||
"community_qrInstructions": "Відскануйте цей QR-код, щоб приєднатись до {name}",
|
||||
"community_hashtagPrivacyHint": "Хештег-канали спільноти доступні лише членам спільноти",
|
||||
"community_invalidQrCode": "Недійсний QR-код спільноти",
|
||||
"community_alreadyMember": "Вже учасник",
|
||||
"community_alreadyMemberMessage": "Ви вже є учасником «{name}».",
|
||||
@@ -1500,10 +1510,10 @@
|
||||
},
|
||||
"community_deleted": "Спільноту «{name}» покинуто",
|
||||
"community_addHashtagChannel": "Додати хештег спільноти",
|
||||
"community_addHashtagChannelDesc": "Додати канал хештегу для цієї спільноти",
|
||||
"community_addHashtagChannelDesc": "Додати хештег-канал для цієї спільноти",
|
||||
"community_selectCommunity": "Вибрати спільноту",
|
||||
"community_regularHashtag": "Звичайний хештег",
|
||||
"community_regularHashtagDesc": "Публічний хештег (будь-хто може приєднатися)",
|
||||
"community_regularHashtagDesc": "Публічний хештег (будь-хто може приєднатись)",
|
||||
"community_communityHashtag": "Хештег спільноти",
|
||||
"community_communityHashtagDesc": "Ексклюзивно для членів спільноти",
|
||||
"community_forCommunity": "Для {name}",
|
||||
@@ -1535,13 +1545,13 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"community_regenerateSecret": "Перегенерувати секрет",
|
||||
"community_regenerateSecretConfirm": "Перегенерувати секретний ключ для «{name}»? Всі учасники повинні будуть відсканувати новий QR-код, щоб продовжити спілкування.",
|
||||
"community_regenerateSecret": "Перегенерувати секретний ключ",
|
||||
"community_regenerateSecretConfirm": "Перегенерувати секретний ключ для «{name}»? Усі учасники матимуть відсканувати новий QR-код, щоб продовжити спілкування.",
|
||||
"community_regenerate": "Перегенерувати",
|
||||
"community_secretRegenerated": "Секретний пароль для «{name}» перегенеровано",
|
||||
"community_scanToUpdateSecret": "Відскануйте новий QR-код, щоб оновити пароль для «{name}»",
|
||||
"community_updateSecret": "Оновити секрет",
|
||||
"community_secretUpdated": "Зміну секрету для «{name}» оновлено",
|
||||
"community_secretRegenerated": "Секретний ключ для «{name}» перегенеровано",
|
||||
"community_scanToUpdateSecret": "Відскануйте новий QR-код, щоб оновити секретний ключ для «{name}»",
|
||||
"community_updateSecret": "Оновити секретний ключ",
|
||||
"community_secretUpdated": "Секретний ключ для «{name}» оновлено",
|
||||
"@contacts_pathTraceTo": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
@@ -1550,76 +1560,76 @@
|
||||
}
|
||||
},
|
||||
"pathTrace_you": "Ви",
|
||||
"pathTrace_failed": "Відстеження шляху не вдалося.",
|
||||
"pathTrace_failed": "Відстеження шляху не вдалось.",
|
||||
"pathTrace_notAvailable": "Трасування шляху недоступне.",
|
||||
"pathTrace_refreshTooltip": "Оновити Path Trace",
|
||||
"pathTrace_refreshTooltip": "Оновити трасування шляху",
|
||||
"contacts_pathTrace": "Трасування шляхів",
|
||||
"contacts_ping": "Пінгувати",
|
||||
"contacts_repeaterPathTrace": "Трасування шляху до повторювача",
|
||||
"contacts_repeaterPing": "Пінгувати повторювач",
|
||||
"contacts_repeaterPathTrace": "Трасування шляху до ретранслятора",
|
||||
"contacts_repeaterPing": "Пінгувати ретранслятор",
|
||||
"contacts_roomPathTrace": "Трасування шляху до серверу кімнати",
|
||||
"contacts_roomPing": "Пінг сервера кімнати",
|
||||
"contacts_chatTraceRoute": "Трасування шляху",
|
||||
"contacts_pathTraceTo": "Відстежити маршрут до {name}",
|
||||
"contacts_invalidAdvertFormat": "Недійсні контактні дані",
|
||||
"contacts_contactImported": "Контакт було імпортовано.",
|
||||
"contacts_contactImportFailed": "Контакт не вдалося імпортувати",
|
||||
"contacts_zeroHopAdvert": "Реклама без перехоплення",
|
||||
"contacts_floodAdvert": "Залив реклами",
|
||||
"contacts_copyAdvertToClipboard": "Копіювати оголошення в буфер обміну",
|
||||
"contacts_contactImportFailed": "Контакт не вдалось імпортувати",
|
||||
"contacts_zeroHopAdvert": "Оголошення без ретрансляції",
|
||||
"contacts_floodAdvert": "Оголошення з ретрансляцією",
|
||||
"contacts_copyAdvertToClipboard": "Копіювати оголошення",
|
||||
"contacts_clipboardEmpty": "Буфер обміну порожній",
|
||||
"appSettings_languageRu": "Російська",
|
||||
"appSettings_enableMessageTracing": "Увімкнути відстеження повідомлень",
|
||||
"appSettings_enableMessageTracingSubtitle": "Показувати детальні метадані про маршрутизацію та час для повідомлень",
|
||||
"contacts_ShareContact": "Копіювати контакт у буфер обміну",
|
||||
"contacts_zeroHopContactAdvertFailed": "Не вдалося надіслати контакт.",
|
||||
"contacts_contactAdvertCopied": "Рекламу скопійовано до буфера обміну.",
|
||||
"contacts_contactAdvertCopyFailed": "Копіювання оголошення в буфер обміну завершилося невдало",
|
||||
"contacts_zeroHopContactAdvertFailed": "Не вдалось надіслати контакт.",
|
||||
"contacts_contactAdvertCopied": "Оголошення скопійовано до буфера обміну.",
|
||||
"contacts_contactAdvertCopyFailed": "Копіювання оголошення в буфер обміну завершилось невдало",
|
||||
"contacts_zeroHopContactAdvertSent": "Відправлено контакт за оголошенням",
|
||||
"contacts_addContactFromClipboard": "Додати контакт з буфера обміну",
|
||||
"contacts_ShareContactZeroHop": "Поділитися контактом за оголошенням",
|
||||
"contacts_addContactFromClipboard": "Додати контакт з буфера",
|
||||
"contacts_ShareContactZeroHop": "Поділитись контактом за оголошенням",
|
||||
"notification_activityTitle": "Активність MeshCore",
|
||||
"notification_messagesCount": "{count} {count, plural, =1{повідомлення} few{повідомлення} many{повідомлень} other{повідомлень}}",
|
||||
"notification_channelMessagesCount": "{count} {count, plural, =1{повідомлення каналу} few{повідомлення каналу} many{повідомлень каналу} other{повідомлень каналу}}",
|
||||
"notification_newNodesCount": "{count} {count, plural, =1{новий вузол} few{нових вузли} many{нових вузлів} other{нових вузлів}}",
|
||||
"notification_newNodesCount": "{count} {count, plural, =1{новий вузол} few{нові вузли} many{нових вузлів} other{нових вузлів}}",
|
||||
"notification_newTypeDiscovered": "Виявлено новий {contactType}",
|
||||
"notification_receivedNewMessage": "Отримано нове повідомлення",
|
||||
"settings_gpxExportRepeaters": "Експортувати ретранслятори / сервер кімнати до GPX",
|
||||
"settings_gpxExportRepeatersSubtitle": "Експортує ретранслятори / сервер кімнати з місцезнаходженням у файл GPX.",
|
||||
"settings_gpxExportRepeaters": "Експорт ретрансляторів і серверів кімнат у GPX",
|
||||
"settings_gpxExportRepeatersSubtitle": "Експортує ретранслятори та сервери кімнат з геопозицією у файл GPX.",
|
||||
"settings_gpxExportSuccess": "Успішно експортовано файл GPX.",
|
||||
"settings_gpxExportNoContacts": "Немає контактів для експорту.",
|
||||
"settings_gpxExportNotAvailable": "Не підтримується на вашому пристрої/операційній системі",
|
||||
"settings_gpxExportError": "Сталася помилка під час експорту.",
|
||||
"settings_gpxExportAllSubtitle": "Експортує всі контакти з місцем розташування у файл GPX.",
|
||||
"settings_gpxExportAll": "Експортувати всі контакти до GPX",
|
||||
"settings_gpxExportContactsSubtitle": "Експортує супутників з місцезнаходженням у файл GPX.",
|
||||
"settings_gpxExportContacts": "Експортувати супутників до GPX",
|
||||
"settings_gpxExportRepeatersRoom": "Місцезнаходження повторювача та сервера кімнати",
|
||||
"settings_gpxExportChat": "Місця супутників",
|
||||
"settings_gpxExportError": "Сталась помилка під час експорту.",
|
||||
"settings_gpxExportAllSubtitle": "Експортує всі контакти з геопозицією у файл GPX.",
|
||||
"settings_gpxExportAll": "Експорт усіх контактів у GPX",
|
||||
"settings_gpxExportContactsSubtitle": "Експортує контакти з геопозицією у файл GPX.",
|
||||
"settings_gpxExportContacts": "Експорт контактів у GPX",
|
||||
"settings_gpxExportRepeatersRoom": "Геопозиції ретрансляторів та серверів кімнат",
|
||||
"settings_gpxExportChat": "Геопозиції контактів",
|
||||
"settings_gpxExportShareText": "Дані карти експортовані з meshcore-open",
|
||||
"settings_gpxExportAllContacts": "Усі місця контактів",
|
||||
"settings_gpxExportShareSubject": "експорт даних карти meshcore-open у форматі GPX",
|
||||
"pathTrace_someHopsNoLocation": "Одне або більше хмелів відсутнє місце розташування!",
|
||||
"pathTrace_someHopsNoLocation": "Один або декілька переходів не мають даних про геопозицію!",
|
||||
"map_tapToAdd": "Натисніть на вузли, щоб додати їх до шляху",
|
||||
"map_runTrace": "Виконати трасування шляху",
|
||||
"pathTrace_clearTooltip": "Очистити шлях",
|
||||
"map_removeLast": "Видалити останній",
|
||||
"map_pathTraceCancelled": "Відмінується трасування шляху",
|
||||
"map_pathTraceCancelled": "Трасування шляху скасовано.",
|
||||
"scanner_enableBluetooth": "Увімкніть Bluetooth",
|
||||
"scanner_bluetoothOffMessage": "Будь ласка, увімкніть Bluetooth, щоб сканувати пристрої.",
|
||||
"scanner_chromeRequired": "Потрібен браузер Chrome",
|
||||
"scanner_chromeRequiredMessage": "Для підтримки Bluetooth у цьому веб-додатку потрібен Google Chrome або браузер на базі Chromium.",
|
||||
"scanner_chromeRequiredMessage": "Для підтримки Bluetooth у цьому вебзастосунку потрібен Google Chrome або браузер на базі Chromium.",
|
||||
"scanner_bluetoothOff": "Bluetooth вимкнено",
|
||||
"snrIndicator_lastSeen": "Останній раз бачили",
|
||||
"snrIndicator_nearByRepeaters": "Ближні ретранслятори",
|
||||
"snrIndicator_nearByRepeaters": "Найближчі ретранслятори",
|
||||
"chat_ShowAllPaths": "Показати всі шляхи",
|
||||
"settings_clientRepeatFreqWarning": "Повтор без підключення до мережі вимагає частоти 433, 869 або 918 МГц.",
|
||||
"settings_clientRepeatSubtitle": "Дозвольте цьому пристрою повторювати пакети даних для інших пристроїв.",
|
||||
"settings_clientRepeat": "Автономна система",
|
||||
"settings_aboutOpenMeteoAttribution": "Дані про висоту LOS: Open-Meteo (CC BY 4.0)",
|
||||
"appSettings_unitsTitle": "одиниці",
|
||||
"appSettings_unitsMetric": "Метричний (м / км)",
|
||||
"appSettings_unitsImperial": "Імперська (ft / mi)",
|
||||
"appSettings_unitsTitle": "Одиниці",
|
||||
"appSettings_unitsMetric": "Метричні (м / км)",
|
||||
"appSettings_unitsImperial": "Імперські (ft / mi)",
|
||||
"map_lineOfSight": "Пряма видимість",
|
||||
"map_losScreenTitle": "Пряма видимість",
|
||||
"losSelectStartEnd": "Виберіть початковий і кінцевий вузли для LOS.",
|
||||
@@ -1637,7 +1647,7 @@
|
||||
"losMenuSubtitle": "Торкніться вузлів або утримуйте карту, щоб отримати власні точки",
|
||||
"losShowDisplayNodes": "Показати вузли відображення",
|
||||
"losCustomPoints": "Користувальницькі точки",
|
||||
"losCustomPointLabel": "Спеціальний {index}",
|
||||
"losCustomPointLabel": "Власна точка {index}",
|
||||
"@losCustomPointLabel": {
|
||||
"placeholders": {
|
||||
"index": {
|
||||
@@ -1726,7 +1736,7 @@
|
||||
},
|
||||
"losErrorElevationUnavailable": "Дані про висоту недоступні для одного чи кількох зразків.",
|
||||
"losErrorInvalidInput": "Недійсні дані про точки/висоту для розрахунку LOS.",
|
||||
"losRenameCustomPoint": "Перейменуйте спеціальну точку",
|
||||
"losRenameCustomPoint": "Перейменувати власну точку",
|
||||
"losPointName": "Назва точки",
|
||||
"losShowPanelTooltip": "Показати панель LOS",
|
||||
"losHidePanelTooltip": "Приховати панель LOS",
|
||||
@@ -1806,19 +1816,19 @@
|
||||
"contacts_unread": "Непрочитане",
|
||||
"settings_contactSettingsSubtitle": "Налаштування для додавання контактів",
|
||||
"settings_contactSettings": "Налаштування контактів",
|
||||
"contactsSettings_autoAddUsersSubtitle": "Дозволити супутникові автоматично додавати виявлених користувачів",
|
||||
"contactsSettings_autoAddRepeatersTitle": "Автоматично додавати повторювачі",
|
||||
"contactsSettings_autoAddRepeatersSubtitle": "Дозволити супутнику автоматично додавати виявлені ретранслятори",
|
||||
"contactsSettings_autoAddUsersSubtitle": "Дозволити пристрою-компаньйону автоматично додавати виявлених користувачів",
|
||||
"contactsSettings_autoAddRepeatersTitle": "Автоматично додавати ретранслятори",
|
||||
"contactsSettings_autoAddRepeatersSubtitle": "Дозволити пристрою-компаньйону автоматично додавати виявлені ретранслятори",
|
||||
"contactsSettings_autoAddRoomServersTitle": "Автоматично додавати сервери кімнат",
|
||||
"contactsSettings_otherTitle": "Інші налаштування, пов'язані з контактами",
|
||||
"contactsSettings_autoAddTitle": "Автоматичне виявлення",
|
||||
"contactsSettings_autoAddUsersTitle": "Автоматично додавати користувачів",
|
||||
"contactsSettings_title": "Налаштування контактів",
|
||||
"contactsSettings_autoAddRoomServersSubtitle": "Дозволити супровіднику автоматично додавати виявлені сервери кімнат.",
|
||||
"contactsSettings_autoAddSensorsTitle": "Автоматично додавати датчики",
|
||||
"contactsSettings_autoAddRoomServersSubtitle": "Дозволити пристрою-компаньйону автоматично додавати виявлені сервери кімнат.",
|
||||
"contactsSettings_autoAddSensorsTitle": "Автоматично додавати сенсори",
|
||||
"discoveredContacts_searchHint": "Знайти виявлені контакти",
|
||||
"discoveredContacts_contactAdded": "Контакт додано",
|
||||
"contactsSettings_autoAddSensorsSubtitle": "Дозволити супровіднику автоматично додавати виявлені сенсори",
|
||||
"contactsSettings_autoAddSensorsSubtitle": "Дозволити пристрою-компаньйону автоматично додавати виявлені сенсори",
|
||||
"contactsSettings_overwriteOldestTitle": "Перезаписати найстаріше",
|
||||
"discoveredContacts_Title": "Виявлені контакти",
|
||||
"discoveredContacts_noMatching": "Відповідних контактів не знайдено",
|
||||
@@ -1829,9 +1839,9 @@
|
||||
"common_deleteAll": "Видалити все",
|
||||
"discoveredContacts_deleteContactAll": "Видалити всі виявлені контакти",
|
||||
"discoveredContacts_deleteContactAllContent": "Ви впевнені, що хочете видалити всі виявлені контакти?",
|
||||
"map_showGuessedLocations": "Показати місцезнаходження передбачених вузлів",
|
||||
"map_guessedLocation": "Визначено місцезнаходження",
|
||||
"usbScreenSubtitle": "Виберіть виявлене серійне пристрій і підключіть його безпосередньо до вашого вузла MeshCore.",
|
||||
"map_showGuessedLocations": "Показати геопозиції передбачених вузлів",
|
||||
"map_guessedLocation": "Передбачена геопозиція",
|
||||
"usbScreenSubtitle": "Виберіть виявлений USB-пристрій і підключіть його безпосередньо до вашого вузла MeshCore.",
|
||||
"usbScreenTitle": "Підключити через USB",
|
||||
"connectionChoiceBluetoothLabel": "Bluetooth",
|
||||
"connectionChoiceUsbLabel": "USB",
|
||||
@@ -1843,8 +1853,8 @@
|
||||
"usbErrorInvalidPort": "Виберіть дійсний USB-пристрій.",
|
||||
"usbErrorBusy": "Ще один запит на підключення через USB вже обробляється.",
|
||||
"usbErrorNotConnected": "Немає підключених пристроїв USB.",
|
||||
"usbErrorOpenFailed": "Не вдалося відкрити вибране USB-пристрій.",
|
||||
"usbErrorConnectFailed": "Не вдалося підключитися до вибраного USB-пристрою.",
|
||||
"usbErrorOpenFailed": "Не вдалось відкрити вибране USB-пристрій.",
|
||||
"usbErrorConnectFailed": "Не вдалось підключитись до вибраного USB-пристрою.",
|
||||
"usbErrorUnsupported": "Підтримка USB-серіального інтерфейсу не реалізована на цій платформі.",
|
||||
"usbErrorAlreadyActive": "USB-з'єднання вже встановлено.",
|
||||
"usbErrorNoDeviceSelected": "Не було вибрано жодного пристрою USB.",
|
||||
@@ -1859,9 +1869,9 @@
|
||||
},
|
||||
"usbStatus_searching": "Пошук пристроїв USB...",
|
||||
"usbStatus_notConnected": "Виберіть пристрій USB",
|
||||
"usbConnectionFailed": "Не вдалося встановити з'єднання через USB: {error}",
|
||||
"usbConnectionFailed": "Не вдалось встановити з'єднання через USB: {error}",
|
||||
"usbStatus_connecting": "Підключення до USB-пристрою...",
|
||||
"usbErrorConnectTimedOut": "З'єднання не вдалося встановити. Переконайтеся, що пристрій має встановлене програмне забезпечення USB Companion.",
|
||||
"usbErrorConnectTimedOut": "З'єднання не вдалось встановити. Переконайтесь, що пристрій має встановлене програмне забезпечення USB Companion.",
|
||||
"@tcpStatus_connectingTo": {
|
||||
"placeholders": {
|
||||
"endpoint": {
|
||||
@@ -1879,18 +1889,18 @@
|
||||
"connectionChoiceTcpLabel": "TCP",
|
||||
"tcpHostHint": "192.168.40.10",
|
||||
"tcpHostLabel": "IP-адреса",
|
||||
"tcpScreenTitle": "З'єднатися через протокол TCP",
|
||||
"tcpScreenTitle": "Підключитись через TCP",
|
||||
"tcpPortLabel": "Порт",
|
||||
"tcpPortHint": "5000",
|
||||
"tcpStatus_notConnected": "Введіть кінцеву точку та підключіться",
|
||||
"tcpStatus_connectingTo": "Підключення до {endpoint}...",
|
||||
"tcpErrorHostRequired": "Необхідно вказати IP-адресу.",
|
||||
"tcpErrorPortInvalid": "Порт повинен бути в межах від 1 до 65535.",
|
||||
"tcpErrorPortInvalid": "Порт має бути в межах від 1 до 65535.",
|
||||
"tcpErrorUnsupported": "Транспорт TCP не підтримується на цій платформі.",
|
||||
"tcpErrorTimedOut": "З'єднання TCP завершилося через закінчення часу очікування.",
|
||||
"tcpConnectionFailed": "Не вдалося встановити з'єднання TCP: {error}",
|
||||
"map_showDiscoveryContacts": "Показати контакти Відкриття",
|
||||
"map_setAsMyLocation": "Встановити моє місцезнаходження",
|
||||
"tcpErrorTimedOut": "З'єднання TCP завершилось через закінчення часу очікування.",
|
||||
"tcpConnectionFailed": "Не вдалось встановити з'єднання TCP: {error}",
|
||||
"map_showDiscoveryContacts": "Показати виявлені контакти",
|
||||
"map_setAsMyLocation": "Встановити мою геопозицію",
|
||||
"@path_routeWeight": {
|
||||
"placeholders": {
|
||||
"weight": {
|
||||
@@ -1901,12 +1911,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings_privacySubtitle": "Керуйте інформацією, яку буде спільно використовуватися",
|
||||
"settings_privacySubtitle": "Керуйте інформацією, яка буде спільно використовуватись",
|
||||
"settings_privacy": "Налаштування приватності",
|
||||
"settings_telemetryBaseMode": "Режим базової телеметрії",
|
||||
"settings_telemetryLocationMode": "Режим місця телеметрії",
|
||||
"settings_advertLocation": "Розміщення реклами",
|
||||
"settings_advertLocationSubtitle": "Включити місце розташування в оголошення",
|
||||
"settings_advertLocation": "Геопозиція в оголошенні",
|
||||
"settings_advertLocationSubtitle": "Включити геопозицію в оголошення",
|
||||
"settings_privacySettingsDescription": "Виберіть, яку інформацію ваш пристрій буде передавати іншим.",
|
||||
"settings_allowAll": "Дозволити все",
|
||||
"settings_denyAll": "Відхилити все",
|
||||
@@ -1914,8 +1924,8 @@
|
||||
"settings_telemetryEnvironmentMode": "Режим середовища телеметрії",
|
||||
"contact_info": "Контактна інформація",
|
||||
"contact_teleBaseSubtitle": "Дозволити спільний доступ до рівня заряду батареї та базової телеметрії",
|
||||
"contact_teleLoc": "Розташування телеметрії",
|
||||
"contact_teleBase": "Базовий телебачення",
|
||||
"contact_teleLoc": "Геопозиція телеметрії",
|
||||
"contact_teleBase": "Базова телеметрія",
|
||||
"contact_teleLocSubtitle": "Дозволити спільне використання даних про місцеположення",
|
||||
"contact_settings": "Налаштування контактів",
|
||||
"contact_telemetry": "Телеметрія",
|
||||
@@ -1935,8 +1945,8 @@
|
||||
"appSettings_maxMessageRetriesSubtitle": "Кількість спроб повторного відправлення повідомлення перед тим, як позначити його як невдале",
|
||||
"path_routeWeight": "{weight}/{max}",
|
||||
"settings_telemetryModeUpdated": "Режим телеметрії оновлено",
|
||||
"map_showOverlaps": "Перекриття ключа повторювача",
|
||||
"map_runTraceWithReturnPath": "Повернутися назад тим же шляхом",
|
||||
"map_showOverlaps": "Перекриття ключів ретрансляторів",
|
||||
"map_runTraceWithReturnPath": "Повернутись назад тим же шляхом",
|
||||
"@radioStats_noiseFloor": {
|
||||
"placeholders": {
|
||||
"noiseDbm": {
|
||||
@@ -1980,26 +1990,26 @@
|
||||
}
|
||||
},
|
||||
"chat_sendCooldown": "Будь ласка, зачекайте трохи, перш ніж відправляти знову.",
|
||||
"appSettings_languageHu": "Угорський",
|
||||
"appSettings_jumpToOldestUnreadSubtitle": "При відкритті чату з не прочитаними повідомленнями, прокрутіть до першого не прочитаного повідомлення, а не до останнього.",
|
||||
"appSettings_languageHu": "Угорська",
|
||||
"appSettings_jumpToOldestUnreadSubtitle": "При відкритті чату з непрочитаними повідомленнями, прокрутіть до першого непрочитаного повідомлення, а не до останнього.",
|
||||
"appSettings_jumpToOldestUnread": "Перейти до найстарішого непрочитаного повідомлення",
|
||||
"appSettings_languageJa": "Японська",
|
||||
"appSettings_languageKo": "Кореєська",
|
||||
"appSettings_languageKo": "Корейська",
|
||||
"radioStats_tooltip": "Статистика радіо та мережі",
|
||||
"radioStats_screenTitle": "Дані про радіостанції",
|
||||
"radioStats_notConnected": "Підключіться до пристрою, щоб переглядати статистику радіопередач.",
|
||||
"radioStats_firmwareTooOld": "Статистика радіо приймача вимагає супутнього програмного забезпечення версії 8 або новішої.",
|
||||
"radioStats_waiting": "Очікую на отримання даних…",
|
||||
"radioStats_screenTitle": "Статистика радіо",
|
||||
"radioStats_notConnected": "Підключіться до пристрою, щоб переглядати статистику радіо.",
|
||||
"radioStats_firmwareTooOld": "Статистика радіо вимагає прошивки пристрою-компаньйона версії 8 або новішої.",
|
||||
"radioStats_waiting": "Очікування даних…",
|
||||
"radioStats_noiseFloor": "Рівень шуму: {noiseDbm} дБм",
|
||||
"radioStats_lastRssi": "Останній показник RSSI: {rssiDbm} дБм",
|
||||
"radioStats_lastSnr": "Останній показник SNR: {snr} дБ",
|
||||
"radioStats_txAir": "Час трансляції на телеканалі TX (загальний): {seconds} секунд",
|
||||
"radioStats_rxAir": "Загальний час використання RX: {seconds} секунд",
|
||||
"radioStats_txAir": "Час в ефірі TX (загальний): {seconds} секунд",
|
||||
"radioStats_rxAir": "Час в ефірі RX (загальний): {seconds} секунд",
|
||||
"radioStats_chartCaption": "Рівень шуму (дБм) на основі останніх вимірювань.",
|
||||
"radioStats_stripNoise": "Рівень шуму: {noiseDbm} дБм",
|
||||
"radioStats_stripWaiting": "Отримано статистику радіо…",
|
||||
"radioStats_settingsTile": "Дані про радіостанції",
|
||||
"radioStats_settingsSubtitle": "Рівень шуму, RSSI, SNR та час, протягом якого пристрій використовує радіоканал.",
|
||||
"radioStats_settingsTile": "Статистика радіо",
|
||||
"radioStats_settingsSubtitle": "Рівень шуму, RSSI, SNR та час в ефірі.",
|
||||
"@translation_downloadFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
@@ -2013,9 +2023,9 @@
|
||||
"translation_enableSubtitle": "Перекладати отримані повідомлення та дозволяти попередній переклад перед відправкою.",
|
||||
"translation_composerSubtitle": "Контролює стан ікон перекладу, який використовується за замовчуванням.",
|
||||
"translation_targetLanguage": "Цільова мова",
|
||||
"translation_useAppLanguage": "Використовуйте мову додатку",
|
||||
"translation_useAppLanguage": "Використовувати мову застосунку",
|
||||
"translation_downloadedModelLabel": "Завантажений шаблон",
|
||||
"translation_presetModelLabel": "Заздалегідь налаштований модель від Hugging Face",
|
||||
"translation_presetModelLabel": "Попередньо налаштована модель з Hugging Face",
|
||||
"translation_manualUrlLabel": "Посилання на веб-сторінку з інструкцією",
|
||||
"translation_downloadModel": "Завантажити модель",
|
||||
"translation_downloading": "Завантаження...",
|
||||
@@ -2026,7 +2036,7 @@
|
||||
"translation_deleteModel": "Видалити модель",
|
||||
"translation_modelDownloaded": "Модель перекладу завантажена.",
|
||||
"translation_downloadStopped": "Завантаження призупинено.",
|
||||
"translation_downloadFailed": "Не вдалося завантажити: {error}",
|
||||
"translation_downloadFailed": "Не вдалось завантажити: {error}",
|
||||
"translation_enterUrlFirst": "Спочатку введіть URL моделі.",
|
||||
"@scanner_linuxPairingPinPrompt": {
|
||||
"placeholders": {
|
||||
@@ -2054,7 +2064,7 @@
|
||||
"scanner_linuxPairingPinPrompt": "Введіть PIN для {deviceName} (залиште порожнім, якщо його немає).",
|
||||
"scanner_linuxPairingHidePin": "Приховати PIN",
|
||||
"repeater_cliQuickClockSync": "Синхронізація годинника",
|
||||
"repeater_cliQuickDiscovery": "Відкрити сусідів",
|
||||
"repeater_cliQuickDiscovery": "Виявити сусідів",
|
||||
"@repeater_clockSyncAfterLogin": {
|
||||
"description": "Repeater setting: auto sync device clock after successful login"
|
||||
},
|
||||
@@ -2063,11 +2073,22 @@
|
||||
},
|
||||
"repeater_clockSyncAfterLoginSubtitle": "Автоматично надсилати повідомлення \"синхронізація годин\" після успішного входу.",
|
||||
"repeater_clockSyncAfterLogin": "Синхронізація годин після входу",
|
||||
"repeater_guestTools": "Інструменти для гостей",
|
||||
"repeater_guestTools": "Гостьові інструменти",
|
||||
"repeater_guest": "Інформація про ретранслятор",
|
||||
"room_guest": "Інформація про сервер кімнати",
|
||||
"chat_sendMessage": "Надіслати повідомлення",
|
||||
"background_serviceTitle": "MeshCore працює",
|
||||
"background_serviceText": "Підтримує з'єднання BLE",
|
||||
"appSettings_translationModelDeleted": "Видалено {name}",
|
||||
"appSettings_translationModelDeleteFailed": "Не вдалось видалити: {error}",
|
||||
"channels_channelUpdateFailed": "Не вдалось оновити канал: {error}",
|
||||
"contact_typeChat": "Чат",
|
||||
"contact_typeRepeater": "Ретранслятор",
|
||||
"contact_typeRoom": "Кімната",
|
||||
"contact_typeSensor": "Сенсор",
|
||||
"contact_typeUnknown": "Невідомо",
|
||||
"settings_multiAck": "Багато підтверджень",
|
||||
"map_sharedAt": "Поділено",
|
||||
"@losBlockedSpotChip": {
|
||||
"placeholders": {
|
||||
"distance": {
|
||||
|
||||
+43
-1
@@ -109,6 +109,8 @@
|
||||
"settings_privacyModeEnabled": "隐私模式已启用",
|
||||
"settings_privacyModeDisabled": "隐私模式已关闭",
|
||||
"settings_actions": "操作",
|
||||
"settings_deleteAllPaths": "Delete All Paths",
|
||||
"settings_deleteAllPathsSubtitle": "Clear all path data from contacts.",
|
||||
"settings_sendAdvertisement": "发送广播",
|
||||
"settings_sendAdvertisementSubtitle": "立即发送广播",
|
||||
"settings_advertisementSent": "已发送广播",
|
||||
@@ -709,7 +711,6 @@
|
||||
"map_showSharedMarkers": "显示共享标记",
|
||||
"map_lastSeenTime": "最后在线时间",
|
||||
"map_sharedPin": "共享标记",
|
||||
"map_sharedAt": "已分享",
|
||||
"map_joinRoom": "加入房间",
|
||||
"map_manageRepeater": "管理转发节点",
|
||||
"mapCache_title": "离线地图缓存",
|
||||
@@ -2073,6 +2074,47 @@
|
||||
"repeater_guest": "重复器信息",
|
||||
"chat_sendMessage": "发送消息",
|
||||
"room_guest": "服务器信息",
|
||||
"common_done": "Done",
|
||||
"background_serviceTitle": "MeshCore running",
|
||||
"background_serviceText": "Keeping BLE connected",
|
||||
"appSettings_translationModelDeleted": "Deleted {name}",
|
||||
"@appSettings_translationModelDeleted": {
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appSettings_translationModelDeleteFailed": "Failed to delete: {error}",
|
||||
"@appSettings_translationModelDeleteFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels_channelUpdateFailed": "Failed to update channel: {error}",
|
||||
"@channels_channelUpdateFailed": {
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_type": "Type",
|
||||
"map_path": "Path",
|
||||
"map_location": "Location",
|
||||
"map_estLocation": "Est. Location",
|
||||
"map_publicKey": "Public Key",
|
||||
"map_publicKeyPrefixHint": "e.g. ab12",
|
||||
"contact_typeChat": "Chat",
|
||||
"contact_typeRepeater": "Repeater",
|
||||
"contact_typeRoom": "Room",
|
||||
"contact_typeSensor": "Sensor",
|
||||
"contact_typeUnknown": "Unknown",
|
||||
"channels_via": "via {path}",
|
||||
"chat_score": "Score",
|
||||
"map_sharedAt": "已分享",
|
||||
"@losBlockedSpotChip": {
|
||||
"placeholders": {
|
||||
"distance": {
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
import '../connector/meshcore_protocol.dart';
|
||||
import '../models/contact.dart';
|
||||
import 'app_localizations.dart';
|
||||
|
||||
/// UI-level localization helpers for [Contact].
|
||||
///
|
||||
/// Kept out of the model layer so `Contact` does not depend on
|
||||
/// `AppLocalizations`. Use these from widgets/screens; for logs and
|
||||
/// non-UI export use `Contact.typeLabelRaw`.
|
||||
extension ContactLocalization on Contact {
|
||||
String typeLabel(AppLocalizations l10n) {
|
||||
switch (type) {
|
||||
case advTypeChat:
|
||||
return l10n.contact_typeChat;
|
||||
case advTypeRepeater:
|
||||
return l10n.contact_typeRepeater;
|
||||
case advTypeRoom:
|
||||
return l10n.contact_typeRoom;
|
||||
case advTypeSensor:
|
||||
return l10n.contact_typeSensor;
|
||||
default:
|
||||
return l10n.contact_typeUnknown;
|
||||
}
|
||||
}
|
||||
|
||||
String pathLabel(AppLocalizations l10n) {
|
||||
if (pathOverride != null) {
|
||||
if (pathOverride! < 0) return l10n.chat_floodForced;
|
||||
if (pathOverride == 0) return l10n.chat_directForced;
|
||||
return l10n.chat_hopsForced(pathOverride!);
|
||||
}
|
||||
if (pathLength < 0) return l10n.channelPath_floodPath;
|
||||
if (pathLength == 0) return l10n.chat_direct;
|
||||
return l10n.chat_hopsCount(pathLength);
|
||||
}
|
||||
}
|
||||
@@ -59,6 +59,9 @@ void main() async {
|
||||
final notificationService = NotificationService();
|
||||
await notificationService.initialize();
|
||||
await backgroundService.initialize();
|
||||
backgroundService.setLanguageOverrideProvider(
|
||||
() => appSettingsService.settings.languageOverride,
|
||||
);
|
||||
_registerThirdPartyLicenses();
|
||||
|
||||
await chatTextScaleService.initialize();
|
||||
|
||||
+4
-12
@@ -41,7 +41,10 @@ class Contact {
|
||||
|
||||
String get publicKeyHex => pubKeyToHex(publicKey);
|
||||
|
||||
String get typeLabel {
|
||||
/// Non-localized type label, intended for logs and non-UI exports
|
||||
/// (e.g. GPX). For UI use the `typeLabel(l10n)` extension in
|
||||
/// `lib/l10n/contact_localization.dart`.
|
||||
String get typeLabelRaw {
|
||||
switch (type) {
|
||||
case advTypeChat:
|
||||
return 'Chat';
|
||||
@@ -56,17 +59,6 @@ class Contact {
|
||||
}
|
||||
}
|
||||
|
||||
String get pathLabel {
|
||||
if (pathOverride != null) {
|
||||
if (pathOverride! < 0) return 'Flood (forced)';
|
||||
if (pathOverride == 0) return 'Direct (forced)';
|
||||
return '$pathOverride hops (forced)';
|
||||
}
|
||||
if (pathLength < 0) return 'Flood';
|
||||
if (pathLength == 0) return 'Direct';
|
||||
return '$pathLength hops';
|
||||
}
|
||||
|
||||
bool get hasLocation {
|
||||
const double epsilon = 1e-6;
|
||||
final lat = latitude ?? 0.0;
|
||||
|
||||
@@ -1237,15 +1237,20 @@ class AppSettingsScreen extends StatelessWidget {
|
||||
if (!context.mounted) return;
|
||||
showDismissibleSnackBar(
|
||||
context,
|
||||
// TODO: l10n
|
||||
content: Text('Deleted ${translationModelFriendlyName(model)}.'),
|
||||
content: Text(
|
||||
context.l10n.appSettings_translationModelDeleted(
|
||||
translationModelFriendlyName(model),
|
||||
),
|
||||
),
|
||||
);
|
||||
} catch (error) {
|
||||
if (!context.mounted) return;
|
||||
showDismissibleSnackBar(
|
||||
context,
|
||||
content: Text('Delete failed: $error'),
|
||||
); // TODO: l10n
|
||||
content: Text(
|
||||
context.l10n.appSettings_translationModelDeleteFailed('$error'),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'dart:math' as math;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/scheduler.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../connector/meshcore_connector.dart';
|
||||
@@ -62,6 +63,10 @@ class _ChannelChatScreenState extends State<ChannelChatScreen> {
|
||||
bool _channelSkipNextBottomSnap = false;
|
||||
String? _unreadDividerMessageId;
|
||||
|
||||
String? _cachedFormatLocale;
|
||||
late DateFormat _hmFormat;
|
||||
late DateFormat _mdFormat;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
@@ -601,7 +606,9 @@ class _ChannelChatScreenState extends State<ChannelChatScreen> {
|
||||
? const EdgeInsets.symmetric(horizontal: 8)
|
||||
: EdgeInsets.zero,
|
||||
child: Text(
|
||||
'via ${_formatPathPrefixes(displayPath)}',
|
||||
context.l10n.channels_via(
|
||||
_formatPathPrefixes(displayPath),
|
||||
),
|
||||
style: TextStyle(
|
||||
fontSize: 11,
|
||||
color: Colors.grey[600],
|
||||
@@ -622,7 +629,7 @@ class _ChannelChatScreenState extends State<ChannelChatScreen> {
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Text(
|
||||
_formatTime(message.timestamp),
|
||||
_formatTime(context, message.timestamp),
|
||||
style: TextStyle(
|
||||
fontSize: 11,
|
||||
color: Colors.grey[600],
|
||||
@@ -1269,14 +1276,21 @@ class _ChannelChatScreenState extends State<ChannelChatScreen> {
|
||||
);
|
||||
}
|
||||
|
||||
String _formatTime(DateTime time) {
|
||||
String _formatTime(BuildContext context, DateTime time) {
|
||||
final now = DateTime.now();
|
||||
final diff = now.difference(time);
|
||||
final locale = Localizations.localeOf(context).toString();
|
||||
if (locale != _cachedFormatLocale) {
|
||||
_cachedFormatLocale = locale;
|
||||
_hmFormat = DateFormat.Hm(locale);
|
||||
_mdFormat = DateFormat.Md(locale);
|
||||
}
|
||||
final hm = _hmFormat.format(time);
|
||||
|
||||
if (diff.inDays > 0) {
|
||||
return '${time.day}/${time.month} ${time.hour}:${time.minute.toString().padLeft(2, '0')}';
|
||||
return '${_mdFormat.format(time)} $hm';
|
||||
} else {
|
||||
return '${time.hour}:${time.minute.toString().padLeft(2, '0')}';
|
||||
return hm;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1497,7 +1497,7 @@ class _ChannelsScreenState extends State<ChannelsScreen>
|
||||
if (!context.mounted) return;
|
||||
showDismissibleSnackBar(
|
||||
context,
|
||||
content: Text('Failed to update channel: $e'),
|
||||
content: Text(context.l10n.channels_channelUpdateFailed('$e')),
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -19,6 +19,7 @@ import '../helpers/gif_helper.dart';
|
||||
import '../helpers/path_helper.dart';
|
||||
import '../models/channel_message.dart';
|
||||
import '../models/contact.dart';
|
||||
import '../l10n/contact_localization.dart';
|
||||
import '../models/message.dart';
|
||||
import '../models/path_history.dart';
|
||||
import '../models/translation_support.dart';
|
||||
@@ -1217,8 +1218,8 @@ class _ChatScreenState extends State<ChatScreen> {
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
_buildInfoRow(context.l10n.chat_type, contact.typeLabel),
|
||||
_buildInfoRow(context.l10n.chat_path, contact.pathLabel),
|
||||
_buildInfoRow(context.l10n.chat_type, contact.typeLabel(context.l10n)),
|
||||
_buildInfoRow(context.l10n.chat_path, contact.pathLabel(context.l10n)),
|
||||
_buildInfoRow(
|
||||
context.l10n.contact_lastSeen,
|
||||
_formatContactLastMessage(contact.lastMessageAt),
|
||||
|
||||
@@ -13,6 +13,7 @@ import '../connector/meshcore_connector.dart';
|
||||
import '../l10n/l10n.dart';
|
||||
import '../connector/meshcore_protocol.dart';
|
||||
import '../models/contact.dart';
|
||||
import '../l10n/contact_localization.dart';
|
||||
import '../models/contact_group.dart';
|
||||
import '../services/ui_view_state_service.dart';
|
||||
import '../utils/contact_search.dart';
|
||||
@@ -1136,7 +1137,9 @@ class _ContactsScreenState extends State<ContactsScreen>
|
||||
return CheckboxListTile(
|
||||
value: isSelected,
|
||||
title: Text(contact.name),
|
||||
subtitle: Text(contact.typeLabel),
|
||||
subtitle: Text(
|
||||
contact.typeLabel(context.l10n),
|
||||
),
|
||||
onChanged: (value) {
|
||||
setDialogState(() {
|
||||
if (value == true) {
|
||||
@@ -1478,7 +1481,7 @@ class _ContactTile extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
contact.pathLabel,
|
||||
contact.pathLabel(context.l10n),
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
|
||||
@@ -16,6 +16,7 @@ import '../connector/meshcore_protocol.dart';
|
||||
import '../models/app_settings.dart';
|
||||
import '../models/channel.dart';
|
||||
import '../models/contact.dart';
|
||||
import '../l10n/contact_localization.dart';
|
||||
import '../services/app_settings_service.dart';
|
||||
import '../services/path_history_service.dart';
|
||||
import '../services/map_marker_service.dart';
|
||||
@@ -1479,23 +1480,23 @@ class _MapScreenState extends State<MapScreen> {
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
_buildInfoRow('Type', contact.typeLabel),
|
||||
_buildInfoRow('Path', contact.pathLabel),
|
||||
_buildInfoRow(context.l10n.map_type, contact.typeLabel(context.l10n)),
|
||||
_buildInfoRow(context.l10n.map_path, contact.pathLabel(context.l10n)),
|
||||
if (contact.hasLocation)
|
||||
_buildInfoRow(
|
||||
'Location',
|
||||
context.l10n.map_location,
|
||||
'${contact.latitude!.toStringAsFixed(6)}, ${contact.longitude!.toStringAsFixed(6)}',
|
||||
)
|
||||
else if (guessedPosition != null)
|
||||
_buildInfoRow(
|
||||
'Est. Location',
|
||||
context.l10n.map_estLocation,
|
||||
'~${guessedPosition.latitude.toStringAsFixed(6)}, ${guessedPosition.longitude.toStringAsFixed(6)}',
|
||||
),
|
||||
_buildInfoRow(
|
||||
context.l10n.map_lastSeen,
|
||||
_formatLastSeen(contact.lastSeen),
|
||||
),
|
||||
_buildInfoRow('Public Key', contact.publicKeyHex),
|
||||
_buildInfoRow(context.l10n.map_publicKey, contact.publicKeyHex),
|
||||
],
|
||||
),
|
||||
actions: [
|
||||
@@ -1616,7 +1617,7 @@ class _MapScreenState extends State<MapScreen> {
|
||||
_formatLastSeen(marker.timestamp),
|
||||
),
|
||||
_buildInfoRow(
|
||||
'Location',
|
||||
context.l10n.map_location,
|
||||
'${marker.position.latitude.toStringAsFixed(6)}, ${marker.position.longitude.toStringAsFixed(6)}',
|
||||
),
|
||||
if (marker.flags.isNotEmpty)
|
||||
@@ -2089,7 +2090,7 @@ class _MapScreenState extends State<MapScreen> {
|
||||
enabled: settings.mapKeyPrefixEnabled,
|
||||
decoration: InputDecoration(
|
||||
labelText: context.l10n.map_publicKeyPrefix,
|
||||
hintText: 'e.g. ab12',
|
||||
hintText: context.l10n.map_publicKeyPrefixHint,
|
||||
border: const OutlineInputBorder(),
|
||||
isDense: true,
|
||||
),
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:meshcore_open/connector/meshcore_protocol.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import '../l10n/l10n.dart';
|
||||
import '../models/contact.dart';
|
||||
import '../l10n/contact_localization.dart';
|
||||
import '../services/app_settings_service.dart';
|
||||
import 'repeater_status_screen.dart';
|
||||
import 'repeater_cli_screen.dart';
|
||||
@@ -93,7 +94,7 @@ class RepeaterHubScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Text(
|
||||
repeater.pathLabel,
|
||||
repeater.pathLabel(context.l10n),
|
||||
style: TextStyle(fontSize: 14, color: Colors.grey[600]),
|
||||
),
|
||||
if (repeater.hasLocation) ...[
|
||||
|
||||
@@ -341,9 +341,9 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.delete_outline, color: Colors.red),
|
||||
title: Text("Delete All Paths"),
|
||||
title: Text(l10n.settings_deleteAllPaths),
|
||||
subtitle: Text(
|
||||
"Clear all path data from contacts.",
|
||||
l10n.settings_deleteAllPathsSubtitle,
|
||||
style: TextStyle(color: Colors.red[700]),
|
||||
),
|
||||
onTap: () => connector.deleteAllPaths(),
|
||||
|
||||
@@ -1,8 +1,19 @@
|
||||
import '../utils/platform_info.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_foreground_task/flutter_foreground_task.dart';
|
||||
|
||||
import '../l10n/app_localizations.dart';
|
||||
import '../utils/platform_info.dart';
|
||||
|
||||
class BackgroundService {
|
||||
bool _initialized = false;
|
||||
String? Function()? _languageOverrideProvider;
|
||||
|
||||
/// Allows the app to expose its current language override (e.g. from
|
||||
/// AppSettingsService) so the foreground notification matches the app UI
|
||||
/// language instead of only the system locale.
|
||||
void setLanguageOverrideProvider(String? Function()? provider) {
|
||||
_languageOverrideProvider = provider;
|
||||
}
|
||||
|
||||
Future<void> initialize() async {
|
||||
if (!PlatformInfo.isAndroid || _initialized) return;
|
||||
@@ -34,13 +45,32 @@ class BackgroundService {
|
||||
}
|
||||
final running = await FlutterForegroundTask.isRunningService;
|
||||
if (running) return;
|
||||
final l10n = await _loadLocalizations();
|
||||
await FlutterForegroundTask.startService(
|
||||
notificationTitle: 'MeshCore running',
|
||||
notificationText: 'Keeping BLE connected',
|
||||
notificationTitle: l10n.background_serviceTitle,
|
||||
notificationText: l10n.background_serviceText,
|
||||
callback: startCallback,
|
||||
);
|
||||
}
|
||||
|
||||
Future<AppLocalizations> _loadLocalizations() async {
|
||||
final supported = AppLocalizations.supportedLocales;
|
||||
final override = _languageOverrideProvider?.call();
|
||||
if (override != null && override.isNotEmpty) {
|
||||
final overrideLocale = Locale(override);
|
||||
final isSupported = supported.any(
|
||||
(l) => l.languageCode == overrideLocale.languageCode,
|
||||
);
|
||||
if (isSupported) {
|
||||
return AppLocalizations.delegate.load(overrideLocale);
|
||||
}
|
||||
}
|
||||
final preferred =
|
||||
WidgetsBinding.instance.platformDispatcher.locales;
|
||||
final match = basicLocaleListResolution(preferred, supported);
|
||||
return AppLocalizations.delegate.load(match);
|
||||
}
|
||||
|
||||
Future<void> stop() async {
|
||||
if (!PlatformInfo.isAndroid) return;
|
||||
final running = await FlutterForegroundTask.isRunningService;
|
||||
|
||||
@@ -72,8 +72,8 @@ class GpxExport {
|
||||
contact.name,
|
||||
contact.latitude!,
|
||||
contact.longitude!,
|
||||
"Type: ${contact.typeLabel}\nPublic Key: ${contact.publicKeyHex}",
|
||||
url,
|
||||
"Type: ${contact.typeLabelRaw}\nPublic Key: ${contact.publicKeyHex}",
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -91,8 +91,8 @@ class GpxExport {
|
||||
contact.name,
|
||||
contact.latitude!,
|
||||
contact.longitude!,
|
||||
"Type: ${contact.typeLabel}\nPublic Key: ${contact.publicKeyHex}",
|
||||
url,
|
||||
"Type: ${contact.typeLabelRaw}\nPublic Key: ${contact.publicKeyHex}",
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -110,8 +110,8 @@ class GpxExport {
|
||||
contact.name,
|
||||
contact.latitude ?? 0.0,
|
||||
contact.longitude ?? 0.0,
|
||||
"Type: ${contact.typeLabel}\nPublic Key: ${contact.publicKeyHex}",
|
||||
url,
|
||||
"Type: ${contact.typeLabelRaw}\nPublic Key: ${contact.publicKeyHex}",
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import 'package:provider/provider.dart';
|
||||
import '../connector/meshcore_connector.dart';
|
||||
import '../l10n/l10n.dart';
|
||||
import '../models/contact.dart';
|
||||
import '../l10n/contact_localization.dart';
|
||||
import '../helpers/path_helper.dart';
|
||||
import '../services/path_history_service.dart';
|
||||
import '../helpers/snack_bar_builder.dart';
|
||||
@@ -147,7 +148,7 @@ class _PathManagementDialogState extends State<_PathManagementDialog> {
|
||||
context,
|
||||
availableContacts: availableContacts,
|
||||
initialPath: pathForInput.isEmpty ? null : pathForInput,
|
||||
currentPathLabel: currentContact.pathLabel,
|
||||
currentPathLabel: currentContact.pathLabel(l10n),
|
||||
onRefresh: connector.isConnected ? connector.getContacts : null,
|
||||
);
|
||||
|
||||
@@ -236,7 +237,7 @@ class _PathManagementDialogState extends State<_PathManagementDialog> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
l10n.path_currentPath(currentContact.pathLabel),
|
||||
l10n.path_currentPath(currentContact.pathLabel(l10n)),
|
||||
style: const TextStyle(fontSize: 12, color: Colors.grey),
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
@@ -303,7 +304,7 @@ class _PathManagementDialogState extends State<_PathManagementDialog> {
|
||||
),
|
||||
isThreeLine: true,
|
||||
subtitle: Text(
|
||||
'${(path.tripTimeMs / 1000).toStringAsFixed(2)}s • ${_formatRelativeTime(context, path.timestamp)}\n${path.successCount} ${l10n.chat_successes} • Score: ${path.routeWeight.toStringAsFixed(1)}',
|
||||
'${(path.tripTimeMs / 1000).toStringAsFixed(2)}s • ${_formatRelativeTime(context, path.timestamp)}\n${path.successCount} ${l10n.chat_successes} • ${l10n.chat_score}: ${path.routeWeight.toStringAsFixed(1)}',
|
||||
style: const TextStyle(fontSize: 11),
|
||||
),
|
||||
trailing: Row(
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:meshcore_open/connector/meshcore_protocol.dart';
|
||||
import '../l10n/l10n.dart';
|
||||
import '../models/contact.dart';
|
||||
import '../l10n/contact_localization.dart';
|
||||
import '../helpers/snack_bar_builder.dart';
|
||||
|
||||
class PathSelectionDialog extends StatefulWidget {
|
||||
@@ -311,7 +312,7 @@ class _PathSelectionDialogState extends State<PathSelectionDialog> {
|
||||
style: const TextStyle(fontSize: 14),
|
||||
),
|
||||
subtitle: Text(
|
||||
'${contact.typeLabel} • ${contact.publicKeyHex.substring(0, 2)}',
|
||||
'${contact.typeLabel(l10n)} • ${contact.publicKeyHex.substring(0, 2)}',
|
||||
style: const TextStyle(fontSize: 10),
|
||||
),
|
||||
trailing: isSelected
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:qr_flutter/qr_flutter.dart';
|
||||
|
||||
import '../l10n/l10n.dart';
|
||||
|
||||
/// A reusable QR code display widget for sharing data.
|
||||
///
|
||||
/// Features:
|
||||
@@ -197,7 +199,7 @@ class QrCodeShareDialog extends StatelessWidget {
|
||||
width: double.infinity,
|
||||
child: FilledButton(
|
||||
onPressed: () => Navigator.pop(context),
|
||||
child: const Text('Done'),
|
||||
child: Text(context.l10n.common_done),
|
||||
),
|
||||
),
|
||||
],
|
||||
|
||||
@@ -6,6 +6,7 @@ import 'package:flutter/foundation.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import '../l10n/l10n.dart';
|
||||
import '../models/contact.dart';
|
||||
import '../l10n/contact_localization.dart';
|
||||
import '../services/storage_service.dart';
|
||||
import '../connector/meshcore_connector.dart';
|
||||
import '../connector/meshcore_protocol.dart';
|
||||
@@ -467,7 +468,7 @@ class _RepeaterLoginDialogState extends State<RepeaterLoginDialog> {
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
Text(
|
||||
repeater.pathLabel,
|
||||
repeater.pathLabel(context.l10n),
|
||||
style: const TextStyle(fontSize: 11, color: Colors.grey),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
|
||||
@@ -6,6 +6,7 @@ import 'package:flutter/foundation.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import '../l10n/l10n.dart';
|
||||
import '../models/contact.dart';
|
||||
import '../l10n/contact_localization.dart';
|
||||
import '../services/storage_service.dart';
|
||||
import '../connector/meshcore_connector.dart';
|
||||
import '../connector/meshcore_protocol.dart';
|
||||
@@ -393,7 +394,7 @@ class _RoomLoginDialogState extends State<RoomLoginDialog> {
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
Text(
|
||||
repeater.pathLabel,
|
||||
repeater.pathLabel(context.l10n),
|
||||
style: const TextStyle(fontSize: 11, color: Colors.grey),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:meshcore_open/connector/meshcore_protocol.dart';
|
||||
import 'package:meshcore_open/l10n/app_localizations.dart';
|
||||
import 'package:meshcore_open/l10n/contact_localization.dart';
|
||||
import 'package:meshcore_open/models/contact.dart';
|
||||
|
||||
Contact _contact({
|
||||
int type = advTypeChat,
|
||||
int pathLength = 0,
|
||||
int? pathOverride,
|
||||
}) {
|
||||
return Contact(
|
||||
publicKey: Uint8List.fromList(List.generate(32, (i) => i + 1)),
|
||||
name: 'Node',
|
||||
type: type,
|
||||
pathLength: pathLength,
|
||||
path: Uint8List(0),
|
||||
pathOverride: pathOverride,
|
||||
lastSeen: DateTime.fromMillisecondsSinceEpoch(0),
|
||||
);
|
||||
}
|
||||
|
||||
void main() {
|
||||
late AppLocalizations l10n;
|
||||
|
||||
setUpAll(() async {
|
||||
l10n = await AppLocalizations.delegate.load(const Locale('en'));
|
||||
});
|
||||
|
||||
group('Contact.typeLabel', () {
|
||||
test('chat', () {
|
||||
expect(_contact(type: advTypeChat).typeLabel(l10n), 'Chat');
|
||||
});
|
||||
|
||||
test('repeater', () {
|
||||
expect(
|
||||
_contact(type: advTypeRepeater).typeLabel(l10n),
|
||||
'Repeater',
|
||||
);
|
||||
});
|
||||
|
||||
test('room', () {
|
||||
expect(_contact(type: advTypeRoom).typeLabel(l10n), 'Room');
|
||||
});
|
||||
|
||||
test('sensor', () {
|
||||
expect(_contact(type: advTypeSensor).typeLabel(l10n), 'Sensor');
|
||||
});
|
||||
|
||||
test('unknown type falls back', () {
|
||||
expect(_contact(type: 99).typeLabel(l10n), 'Unknown');
|
||||
});
|
||||
});
|
||||
|
||||
group('Contact.pathLabel (override)', () {
|
||||
test('override < 0 -> flood (forced)', () {
|
||||
expect(
|
||||
_contact(pathOverride: -1).pathLabel(l10n),
|
||||
'Flood (forced)',
|
||||
);
|
||||
});
|
||||
|
||||
test('override == 0 -> direct (forced)', () {
|
||||
expect(
|
||||
_contact(pathOverride: 0).pathLabel(l10n),
|
||||
'Direct (forced)',
|
||||
);
|
||||
});
|
||||
|
||||
test('override > 0 -> hops (forced)', () {
|
||||
expect(
|
||||
_contact(pathOverride: 3).pathLabel(l10n),
|
||||
'3 hops (forced)',
|
||||
);
|
||||
});
|
||||
|
||||
test('override takes precedence over pathLength', () {
|
||||
expect(
|
||||
_contact(pathLength: 5, pathOverride: -1).pathLabel(l10n),
|
||||
'Flood (forced)',
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
group('Contact.pathLabel (auto)', () {
|
||||
test('pathLength < 0 -> flood', () {
|
||||
expect(_contact(pathLength: -1).pathLabel(l10n), 'Flood');
|
||||
});
|
||||
|
||||
test('pathLength == 0 -> direct', () {
|
||||
expect(_contact(pathLength: 0).pathLabel(l10n), 'Direct');
|
||||
});
|
||||
|
||||
test('pathLength == 1 -> singular hop', () {
|
||||
expect(_contact(pathLength: 1).pathLabel(l10n), '1 hop');
|
||||
});
|
||||
|
||||
test('pathLength > 1 -> plural hops', () {
|
||||
expect(_contact(pathLength: 4).pathLabel(l10n), '4 hops');
|
||||
});
|
||||
});
|
||||
}
|
||||
+60
-12
@@ -1,38 +1,86 @@
|
||||
{
|
||||
"bg": [
|
||||
"losSelectedObstructionDetails"
|
||||
"chat_markAsUnread",
|
||||
"chat_newMessages"
|
||||
],
|
||||
|
||||
"de": [
|
||||
"chat_markAsUnread",
|
||||
"chat_newMessages"
|
||||
],
|
||||
|
||||
"es": [
|
||||
"chat_markAsUnread",
|
||||
"chat_newMessages"
|
||||
],
|
||||
|
||||
"fr": [
|
||||
"chat_markAsUnread",
|
||||
"chat_newMessages"
|
||||
],
|
||||
|
||||
"hu": [
|
||||
"chat_markAsUnread",
|
||||
"chat_newMessages"
|
||||
],
|
||||
|
||||
"it": [
|
||||
"losSelectedObstructionDetails"
|
||||
"chat_markAsUnread",
|
||||
"chat_newMessages"
|
||||
],
|
||||
|
||||
"ja": [
|
||||
"chat_markAsUnread",
|
||||
"chat_newMessages"
|
||||
],
|
||||
|
||||
"ko": [
|
||||
"losSelectedObstructionDetails"
|
||||
"chat_markAsUnread",
|
||||
"chat_newMessages"
|
||||
],
|
||||
|
||||
"nl": [
|
||||
"losSelectedObstructionDetails"
|
||||
"chat_markAsUnread",
|
||||
"chat_newMessages"
|
||||
],
|
||||
|
||||
"pl": [
|
||||
"losSelectedObstructionDetails"
|
||||
"chat_markAsUnread",
|
||||
"chat_newMessages"
|
||||
],
|
||||
|
||||
"pt": [
|
||||
"losSelectedObstructionDetails"
|
||||
"chat_markAsUnread",
|
||||
"chat_newMessages"
|
||||
],
|
||||
|
||||
"ru": [
|
||||
"losSelectedObstructionDetails"
|
||||
"chat_markAsUnread",
|
||||
"chat_newMessages"
|
||||
],
|
||||
|
||||
"sk": [
|
||||
"losSelectedObstructionDetails"
|
||||
"chat_markAsUnread",
|
||||
"chat_newMessages"
|
||||
],
|
||||
|
||||
"sl": [
|
||||
"losSelectedObstructionDetails"
|
||||
"chat_markAsUnread",
|
||||
"chat_newMessages"
|
||||
],
|
||||
|
||||
"sv": [
|
||||
"losSelectedObstructionDetails"
|
||||
"chat_markAsUnread",
|
||||
"chat_newMessages"
|
||||
],
|
||||
|
||||
"uk": [
|
||||
"losSelectedObstructionDetails"
|
||||
"chat_markAsUnread",
|
||||
"chat_newMessages"
|
||||
],
|
||||
|
||||
"zh": [
|
||||
"losSelectedObstructionDetails"
|
||||
"chat_markAsUnread",
|
||||
"chat_newMessages"
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user