diff --git a/www/i18n/locale-ca.json b/www/i18n/locale-ca.json index 1437d053ad4a3404665569e27e20b4e44b9ac296..614bf90f9bb9156f65196b8c4a10c9863db1f2fe 100644 --- a/www/i18n/locale-ca.json +++ b/www/i18n/locale-ca.json @@ -128,19 +128,20 @@ "REPORT_ISSUE": "Informar d'un error", "NOT_YOUR_ACCOUNT_QUESTION": "Aquest no és el seu compte <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b>?", "BTN_CHANGE_ACCOUNT": "Desconnecta aquest compte", - "CONNECTION_ERROR": "Node <b>{{server}}</b> inabastable o adreça invà lida.<br/><br/>Comprobeu la vostra connexió a Internet, o node Duniter <a class=\"positive\" ng-click=\"doQuickFix('settings')\">a la configuració</a>." + "PEER_CONNECTION_ERROR": "Node <b>{{server}}</b> inabastable o adreça invà lida.<br/><br/>Comprobeu la vostra connexió a Internet, o node Duniter <a class=\"positive\" ng-click=\"doQuickFix('settings')\">a la configuració</a>.", + "NETWORK_CONNECTION_ERROR": "La xarxa és inaccesible.<br/><br/>Comprova la teva connexió a Internet, o selecciona un node manualment <a class=\"positive\" ng-click=\"doQuickFix('settings')\">a la configuració</a>." }, "SETTINGS": { "TITLE": "Configuració", "DISPLAY_DIVIDER": "Visualització", "STORAGE_DIVIDER": "Emmagatzemament", "NETWORK_SETTINGS": "Xarxa", - "PEER": "Adreça del node Duniter", + "PEER": "Node Duniter", "PEER_CHANGED_TEMPORARY": "Adreça usada temporalment", "PEER_SELECTED_AUTOMATICALLY": "Node seleccionat automà ticament a l'inici", - "PEER_TIMEOUT": "Temps d'espera mà xim (temps d'espera)", - "PEER_TIMEOUT_HELP": "Temps d'espera mà xim per obtenir una resposta del node", - "PEER_SHORT": "Node Duniter", + "NETWORK_ANALYZE_TIMEOUT": "Temps d'espera mà xim (temps d'espera)", + "NETWORK_ANALYZE_TIMEOUT_HELP": "Temps d'espera mà xim per a l'anà lisi de la xarxa", + "NETWORK_ANALYZE_TIMEOUT_AUTO": "Auto", "PERSIST_CACHE": "Conserva les dades de navegació (experimental)", "PERSIST_CACHE_HELP": "Permet una navegació més rà pida, conservant localment les dades rebudes, per reutilitzar d'una sesió a una altra.", "USE_LOCAL_STORAGE": "Activa l'emmagatzemament local", @@ -309,6 +310,8 @@ } }, "INFO": { + "CONNECTING_TO_NETWORK": "Connectant a la xarxa...", + "ANALYZING_NETWORK": "Anà lisi de la xarxa {{currency|abbreviate}}...", "ONLY_SSL_PEERS": "La visualización de los nodos sin SSL está deteriorada porque Cesium funciona en modo HTTPS." } }, diff --git a/www/i18n/locale-de-DE.json b/www/i18n/locale-de-DE.json index 70c6055525e5705bfaa27a4254e733afefb026bd..f21d2ad9d2e34883c6bf874babea41860ec24c74 100644 --- a/www/i18n/locale-de-DE.json +++ b/www/i18n/locale-de-DE.json @@ -135,7 +135,8 @@ "REPORT_ISSUE": "Ein Problem melden", "NOT_YOUR_ACCOUNT_QUESTION" : "Ist dieses Konto <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b> nicht von dir?", "BTN_CHANGE_ACCOUNT": "Von diesem Konto abmelden", - "CONNECTION_ERROR": "Der Knoten <b>{{server}}</b> ist nicht erreichbar oder die Adresse ist falsch.<br/><br/>Kontrolliere deine Internetverbindung, oder wähle einen anderen Knoten <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in deinen Einstellungen</a>.", + "PEER_CONNECTION_ERROR": "Der Knoten <b>{{server}}</b> ist nicht erreichbar oder die Adresse ist falsch.<br/><br/>Kontrolliere deine Internetverbindung, oder wähle einen anderen Knoten <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in deinen Einstellungen</a>.", + "NETWORK_CONNECTION_ERROR": "Netzwerk ist nicht erreichbar.<br/><br/>Ãœberprüfen Sie Ihre Internetverbindung, oder wählen Sie einen Knoten manuell <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in den Einstellungen</a> aus.", "SHOW_ALL_FEED": "Alles anzeigen", "READ_MORE": "Mehr lesen", "FEED_SOURCE": "Quelle" @@ -145,12 +146,12 @@ "DISPLAY_DIVIDER": "Anzeige", "STORAGE_DIVIDER": "Speicher", "NETWORK_SETTINGS": "Netzwerk", - "PEER": "Duniter Knoten-Adresse", - "PEER_SHORT": "Knoten-Adresse", + "PEER": "Duniter Knoten", "PEER_CHANGED_TEMPORARY": "Knotenadresse wird nur temporär gebraucht", "PEER_SELECTED_AUTOMATICALLY": "Knoten wird beim Start automatisch ausgewählt", - "PEER_TIMEOUT": "Maximale Wartezeit (Timeout)", - "PEER_TIMEOUT_HELP": "Maximale Wartezeit um eine Antwort vom Knoten zu bekommen", + "NETWORK_ANALYZE_TIMEOUT": "Maximale Wartezeit (Timeout)", + "NETWORK_ANALYZE_TIMEOUT_HELP": "Maximale Wartezeit für die Netzwerkanalyse", + "NETWORK_ANALYZE_TIMEOUT_AUTO": "Auto", "PERSIST_CACHE": "Navigationsdaten behalten (experimental)", "PERSIST_CACHE_HELP": "Erlaubt schnellere Navigation, durch Zwischenspeicherung der empfangenen Daten, von einer Sitzung zur nächsten.", "USE_LOCAL_STORAGE": "Lokales Speichern einschalten", @@ -325,6 +326,8 @@ } }, "INFO": { + "CONNECTING_TO_NETWORK": "Verbindung zum Netzwerk...", + "ANALYZING_NETWORK": "Analyse des {{currency|abbreviate}} Netzwerks...", "ONLY_SSL_PEERS": "Die nicht mit SSL gesicherten Knoten haben eine reduzierte Darstellung, weil Cesium im HTTPS Modus funktioniert." } }, diff --git a/www/i18n/locale-en-GB.json b/www/i18n/locale-en-GB.json index 37f5ef5f39d8321270a700a10dd537aae6f69a43..4828ae9dd27f17dcaeea8353d4224594df8b5953 100644 --- a/www/i18n/locale-en-GB.json +++ b/www/i18n/locale-en-GB.json @@ -131,7 +131,8 @@ "REPORT_ISSUE": "Report an issue", "NOT_YOUR_ACCOUNT_QUESTION" : "You do not own the account <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b>?", "BTN_CHANGE_ACCOUNT": "Disconnect this account", - "CONNECTION_ERROR": "Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or change node <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in the settings</a>.", + "PEER_CONNECTION_ERROR": "Node <b>{{server}}</b> is unreachable or address is invalid.<br/><br/>Check your Internet connection, or change the node <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in the settings</a>.", + "NETWORK_CONNECTION_ERROR": "Network is unreachable.<br/><br/>Check your Internet connection, or select a node manually <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in the settings</a>.", "SHOW_ALL_FEED": "Show all", "READ_MORE": "Read more", "FEED_SOURCE": "Source" @@ -141,12 +142,12 @@ "DISPLAY_DIVIDER": "Display", "STORAGE_DIVIDER": "Storage", "NETWORK_SETTINGS": "Network", - "PEER": "Duniter peer address", - "PEER_SHORT": "Peer address", + "PEER": "Duniter peer", "PEER_CHANGED_TEMPORARY": "Address used temporarily", "PEER_SELECTED_AUTOMATICALLY": "Peer selected automatically at startup", - "PEER_TIMEOUT": "Maximum waiting time (timeout)", - "PEER_TIMEOUT_HELP": "Maximum waiting time to get a response from the peer", + "NETWORK_ANALYZE_TIMEOUT": "Maximum waiting time (timeout)", + "NETWORK_ANALYZE_TIMEOUT_HELP": "Maximum waiting time for network analysis", + "NETWORK_ANALYZE_TIMEOUT_AUTO": "Auto", "PERSIST_CACHE": "Keep navigation data (experimental)", "PERSIST_CACHE_HELP": "Allows faster navigation, locally retaining the data received, for use from one session to another.", "USE_LOCAL_STORAGE": "Enable local storage", @@ -316,6 +317,8 @@ } }, "INFO": { + "CONNECTING_TO_NETWORK": "Connecting to the network...", + "ANALYZING_NETWORK": "Analyzing the {{currency|abbreviate}} network...", "ONLY_SSL_PEERS": "Non-SSL nodes have a degraded display because Cesium works in HTTPS mode." } }, diff --git a/www/i18n/locale-en.json b/www/i18n/locale-en.json index b9927cd8beb036f62ca9e6def1fbf0602dab0e66..f90658a63bc48d6065a89f392398e335850bce1a 100644 --- a/www/i18n/locale-en.json +++ b/www/i18n/locale-en.json @@ -131,7 +131,8 @@ "REPORT_ISSUE": "Report an issue", "NOT_YOUR_ACCOUNT_QUESTION" : "You do not own the account <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b>?", "BTN_CHANGE_ACCOUNT": "Disconnect this account", - "CONNECTION_ERROR": "Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or change node <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in the settings</a>.", + "PEER_CONNECTION_ERROR": "Node <b>{{server}}</b> is unreachable or address is invalid.<br/><br/>Check your Internet connection, or change the node <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in the settings</a>.", + "NETWORK_CONNECTION_ERROR": "Network is unreachable.<br/><br/>Check your Internet connection, or select a node manually <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in the settings</a>.", "SHOW_ALL_FEED": "Show all", "READ_MORE": "Read more", "FEED_SOURCE": "Source" @@ -141,12 +142,12 @@ "DISPLAY_DIVIDER": "Display", "STORAGE_DIVIDER": "Storage", "NETWORK_SETTINGS": "Network", - "PEER": "Duniter peer address", - "PEER_SHORT": "Peer address", + "PEER": "Duniter peer", "PEER_CHANGED_TEMPORARY": "Address used temporarily", "PEER_SELECTED_AUTOMATICALLY": "Peer selected automatically at startup", - "PEER_TIMEOUT": "Maximum waiting time (timeout)", - "PEER_TIMEOUT_HELP": "Maximum waiting time to get a response from the node", + "NETWORK_ANALYZE_TIMEOUT": "Maximum waiting time (timeout)", + "NETWORK_ANALYZE_TIMEOUT_HELP": "Maximum waiting time for network analysis", + "NETWORK_ANALYZE_TIMEOUT_AUTO": "Auto", "PERSIST_CACHE": "Keep navigation data (experimental)", "PERSIST_CACHE_HELP": "Allows faster navigation, locally retaining the data received, for use from one session to another.", "USE_LOCAL_STORAGE": "Enable local storage", @@ -316,6 +317,8 @@ } }, "INFO": { + "CONNECTING_TO_NETWORK": "Connecting to the network...", + "ANALYZING_NETWORK": "Analyzing the {{currency|abbreviate}} network...", "ONLY_SSL_PEERS": "Non-SSL nodes have a degraded display because Cesium works in HTTPS mode." } }, diff --git a/www/i18n/locale-eo-EO.json b/www/i18n/locale-eo-EO.json index 8dd7493eedf993391204e5e7357e13fd3bde9880..59f801e2a5e3279ac71ef57ec7b0a6998d2095c7 100644 --- a/www/i18n/locale-eo-EO.json +++ b/www/i18n/locale-eo-EO.json @@ -131,7 +131,8 @@ "REPORT_ISSUE": "fuÅaĵo", "NOT_YOUR_ACCOUNT_QUESTION" : "Vi ne posedas la konton <b class=\"ion-key\"> {{pubkey|formatPubkey}}</b> ?", "BTN_CHANGE_ACCOUNT": "Malkonektu tiun ĉi konton", - "CONNECTION_ERROR": "Nodo <b>{{server}}</b> neatingebla aÅ adreso nevalida.<br/><br/>Kontrolu vian retkonekton, aÅ elektu alian nodon <a class=\"positive\" ng-click=\"doQuickFix('settings')\">ĉe la parametroj</a>.", + "PEER_CONNECTION_ERROR": "Nodo <b>{{server}}</b> neatingebla aÅ adreso nevalida.<br/><br/>Kontrolu vian retkonekton, aÅ elektu alian nodon <a class=\"positive\" ng-click=\"doQuickFix('settings')\">ĉe la parametroj</a>.", + "NETWORK_CONNECTION_ERROR": "Reto neatingeblas.<br/><br/>Kontrolu vian interreta konekto, aÅ selektu nodon permane <a class=\"positive\" ng-click=\"doQuickFix('settings')\">en la agordoj</a>.", "SHOW_ALL_FEED": "Vidi ĉion", "READ_MORE": "Legi la sekvon", "FEED_SOURCE": "Fonto" @@ -141,12 +142,12 @@ "DISPLAY_DIVIDER": "AfiÅado", "STORAGE_DIVIDER": "Stokado", "NETWORK_SETTINGS": "Reto", - "PEER": "Adreso de la nodo Duniter", - "PEER_SHORT": "Adreso de la nodo", + "PEER": "Nodo Duniter", "PEER_CHANGED_TEMPORARY": "Adreso provizore uzata", "PEER_SELECTED_AUTOMATICALLY": "Nodo aÅtomate elektita ĉe starto", - "PEER_TIMEOUT": "Maksimuma atendotempo (eltempigo)", - "PEER_TIMEOUT_HELP": "Maksimuma atendotempo por ricevi respondon de la nodo", + "NETWORK_ANALYZE_TIMEOUT": "Maksimuma atendotempo (eltempigo)", + "NETWORK_ANALYZE_TIMEOUT_HELP": "Maksimuma atendotempo por reto analizo", + "NETWORK_ANALYZE_TIMEOUT_AUTO": "Auto", "PERSIST_CACHE": "Konservi la datenojn pri retumado (provaĵo)", "PERSIST_CACHE_HELP": "Ebligas pli rapidan retumadon, loke konservante la ricevitajn datenojn, por uzi ilin de seanco al alia.", "USE_LOCAL_STORAGE": "Aktivigi lokan stokadon", @@ -315,6 +316,8 @@ } }, "INFO": { + "CONNECTING_TO_NETWORK": "KonektiÄo al la reto...", + "ANALYZING_NETWORK": "Analizo de la {{currency|abbreviate}} reto...", "ONLY_SSL_PEERS": "La nodoj ne-SSL estas mis-afiÅitaj, ĉar Cesium funkcias laÅ moduso HTTPS." } }, diff --git a/www/i18n/locale-es-ES.json b/www/i18n/locale-es-ES.json index 85058a488d2caab6509b360796504b02c7db61e5..3e1f79846355d96bb4abb0d4c22b098a35fec97e 100644 --- a/www/i18n/locale-es-ES.json +++ b/www/i18n/locale-es-ES.json @@ -128,19 +128,20 @@ "REPORT_ISSUE": "Reportar anomalÃa", "NOT_YOUR_ACCOUNT_QUESTION": "¿No es suya la cuenta <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b>?", "BTN_CHANGE_ACCOUNT": "Desconectar esta cuenta", - "CONNECTION_ERROR": "Nodo <b>{{server}}</b> inalcanzable o dirección inválida.<br/><br/>Compruebe su conexión a Internet, o nodo Duniter <a class=\"positive\" ng-click=\"doQuickFix('settings')\">en los ajustes</a>." + "PEER_CONNECTION_ERROR": "Nodo <b>{{server}}</b> inalcanzable o dirección inválida.<br/><br/>Compruebe su conexión a Internet, o nodo Duniter <a class=\"positive\" ng-click=\"doQuickFix('settings')\">en los ajustes</a>.", + "NETWORK_CONNECTION_ERROR": "No se puede alcanzar la red.<br/><br/>Comprueba tu conexión a Internet, o selecciona un nodo manualmente <a class=\"positive\" ng-click=\"doQuickFix('settings')\">en los ajustes</a>." }, "SETTINGS": { "TITLE": "Ajustes", "DISPLAY_DIVIDER": "Visualización", "STORAGE_DIVIDER": "Almacenamiento", "NETWORK_SETTINGS": "Red", - "PEER": "Dirección del nodo Duniter", + "PEER": "Nodo Duniter", "PEER_CHANGED_TEMPORARY": "Dirección utilizada temporalmente", "PEER_SELECTED_AUTOMATICALLY": "Nodo seleccionado automáticamente al inicio", - "PEER_TIMEOUT": "Tiempo de espera máximo (timeout)", - "PEER_TIMEOUT_HELP": "Tiempo de espera máximo para obtener una respuesta del nodo", - "PEER_SHORT": "Nodo Duniter", + "NETWORK_ANALYZE_TIMEOUT": "Temps d'espera mà xim (timeout)", + "NETWORK_ANALYZE_TIMEOUT_HELP": "Tiempo de espera máximo para el análisis de la red", + "NETWORK_ANALYZE_TIMEOUT_AUTO": "Auto", "PERSIST_CACHE": "Conservar los datos de navegación (experimental)", "PERSIST_CACHE_HELP": "Permite una navegación más rápida, conservando localmente los datos recibidos, para usar de una sesión a otra.", "USE_LOCAL_STORAGE": "Activar el almacenamiento local", @@ -309,6 +310,8 @@ } }, "INFO": { + "CONNECTING_TO_NETWORK": "Conectando a la red...", + "ANALYZING_NETWORK": "Analizando la red {{currency|abbreviate}}...", "ONLY_SSL_PEERS": "La visualización de los nodos sin SSL está deteriorada porque Cesium funciona en modo HTTPS." } }, diff --git a/www/i18n/locale-fr-FR.json b/www/i18n/locale-fr-FR.json index bf6606cb7a3d8977678921fc8f4d0036fcc5ea0c..631ac79f618c94a3be9623a486f2048a178b8607 100644 --- a/www/i18n/locale-fr-FR.json +++ b/www/i18n/locale-fr-FR.json @@ -131,7 +131,8 @@ "REPORT_ISSUE": "anomalie", "NOT_YOUR_ACCOUNT_QUESTION" : "Vous n'êtes pas propriétaire du compte <b class=\"ion-key\"> {{pubkey|formatPubkey}}</b> ?", "BTN_CHANGE_ACCOUNT": "Déconnecter ce compte", - "CONNECTION_ERROR": "NÅ“ud <b>{{server}}</b> injoignable ou adresse invalide.<br/><br/>Vérifiez votre connexion Internet, ou changer de nÅ“ud <a class=\"positive\" ng-click=\"doQuickFix('settings')\">dans les paramètres</a>.", + "PEER_CONNECTION_ERROR": "NÅ“ud <b>{{server}}</b> injoignable ou adresse invalide.<br/><br/>Vérifiez votre connexion Internet, ou changer de nÅ“ud <a class=\"positive\" ng-click=\"doQuickFix('settings')\">dans les paramètres</a>.", + "NETWORK_CONNECTION_ERROR": "Réseau injoignable.<br/><br/>Vérifiez votre connexion Internet, ou sélectionnez un nÅ“ud manuellement <a class=\"positive\" ng-click=\"doQuickFix('settings')\">dans les paramètres</a>.", "SHOW_ALL_FEED": "Voir tout", "READ_MORE": "Lire la suite", "FEED_SOURCE": "Source" @@ -142,11 +143,11 @@ "STORAGE_DIVIDER": "Stockage", "NETWORK_SETTINGS": "Réseau", "PEER": "NÅ“ud Duniter", - "PEER_SHORT": "NÅ“ud Duniter", "PEER_CHANGED_TEMPORARY": "Adresse utilisée temporairement", "PEER_SELECTED_AUTOMATICALLY": "Sélection automatiquement du nÅ“ud au démarrage", - "PEER_TIMEOUT": "Délai d'attente maximal (timeout)", - "PEER_TIMEOUT_HELP": "Délai d'attente maximal pour obtenir la réponse du nÅ“ud", + "NETWORK_ANALYZE_TIMEOUT": "Délai d'attente maximal (timeout)", + "NETWORK_ANALYZE_TIMEOUT_HELP": "Délai d'attente maximal pour l'analyse du réseau", + "NETWORK_ANALYZE_TIMEOUT_AUTO": "Auto", "PERSIST_CACHE": "Conserver les données de navigation (expérimental)", "PERSIST_CACHE_HELP": "Permet une navigation plus rapide, en conservant localement les données reçues, pour les utiliser d'une session à l'autre.", "USE_LOCAL_STORAGE": "Activer le stockage local", @@ -315,8 +316,8 @@ } }, "INFO": { - "CONNECTING_TO_PEER": "Connexion au nÅ“ud réseau...", - "CHECKING_NETWORK_STATE": "Calcul de l'état du réseau {{currency|abbreviate}}...", + "CONNECTING_TO_NETWORK": "Connexion au réseau...", + "ANALYZING_NETWORK": "Analyse du réseau {{currency|abbreviate}}...", "ONLY_SSL_PEERS": "Les nÅ“uds non SSL ont un affichage dégradé, car Cesium fonctionne en mode HTTPS." } }, @@ -533,7 +534,7 @@ "SELECT_ACCOUNT_TYPE": "Choisissez le type de compte à créer :", "MEMBER_ACCOUNT": "Compte membre", "MEMBER_ACCOUNT_TITLE": "Création d'un compte membre", - "MEMBER_ACCOUNT_HELP": "Vous connaissez suffisamment la monnaie libre et vous voulez participer à sa création ?<br/>En tant qu'individu, vous pouvez créer votre compte membre (un seul par individu). Celui-ci fonctionne comme un compte simple portefeuille, mais permet en plus de co-produire la monnaie, en <b>recevant chaque {{parameters.dt|formatPeriod}} un dividende universel</b> : à vous ensuite d'en faire bon usage !", + "MEMBER_ACCOUNT_HELP": "Vous connaissez suffisamment la monnaie libre et vous voulez participer à sa co-création ?<br/>En tant qu'individu, vous pouvez créer votre compte membre (un seul par individu). Celui-ci fonctionne comme un compte simple portefeuille, mais permet en plus de co-produire la monnaie, en <b>recevant chaque {{parameters.dt|formatPeriod}} un dividende universel</b> : à vous ensuite d'en faire bon usage !", "WALLET_ACCOUNT": "Compte simple portefeuille", "WALLET_ACCOUNT_TITLE": "Création d'un portefeuille", "WALLET_ACCOUNT_HELP": "Vous <b>découvrez la monnaie libre</b> ? Vous avez besoin d'un compte supplémentaire ?<br/>Ce type de compte vous conviendra. Bien qu'il ne co-produise la monnaie (contrairement à un compte membre - voir ci-dessous), vous pourrez y recevoir et envoyer des paiements, dès la fin de l'inscription.<br/>Si besoin, vous pourrez le transformer en compte membre ultérieurement.", diff --git a/www/i18n/locale-it-IT.json b/www/i18n/locale-it-IT.json index 3415e5e1bfc1dd2c80b5b547b3f6d440433cd246..c75e106232bdc7e9b81646a8eb6e085d010e0ae9 100644 --- a/www/i18n/locale-it-IT.json +++ b/www/i18n/locale-it-IT.json @@ -131,7 +131,8 @@ "REPORT_ISSUE": "Segnalare un bug", "NOT_YOUR_ACCOUNT_QUESTION" : "Non sei proprietario del conto <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b>?", "BTN_CHANGE_ACCOUNT": "Disconettere questo conto", - "CONNECTION_ERROR": "Nodo <b>{{server}}</b> irraggiungibile o indirizzo non valido. <br/><br/> Verifica la tua connessione o cambia nodo. <a class=\"positive\" ng-click=\"doQuickFix('settings')\">nelle impostazioni. </a>.", + "PEER_CONNECTION_ERROR": "Nodo <b>{{server}}</b> irraggiungibile o indirizzo non valido. <br/><br/> Verifica la tua connessione o cambia nodo. <a class=\"positive\" ng-click=\"doQuickFix('settings')\">nelle impostazioni</a>.", + "NETWORK_CONNECTION_ERROR": "Rete non raggiungibile.<br/><br/>Controlla la tua connessione Internet, o seleziona un nodo manualmente <a class=\"positive\" ng-click=\"doQuickFix('settings')\">nelle impostazioni</a>.", "SHOW_ALL_FEED": "Mostra tutto", "READ_MORE": "Leggi di più", "FEED_SOURCE": "Fonte" @@ -141,12 +142,12 @@ "DISPLAY_DIVIDER": "Schermo", "STORAGE_DIVIDER": "Memoria", "NETWORK_SETTINGS": "Rete", - "PEER": "Indirizzo nodo Duniter", - "PEER_SHORT": "Indirizzo nodo", + "PEER": "Nodo Duniter", "PEER_CHANGED_TEMPORARY": "Indirizzo usato temporaneamente", "PEER_SELECTED_AUTOMATICALLY": "Nodo selezionato automaticamente all'avvio", - "PEER_TIMEOUT": "Tempo di attesa massimo (timeout)", - "PEER_TIMEOUT_HELP": "Tempo di attesa massimo per ottenere una risposta dal nodo", + "NETWORK_ANALYZE_TIMEOUT": "Tempo di attesa massimo (timeout)", + "NETWORK_ANALYZE_TIMEOUT_HELP": "Tempo di attesa massimo per l'analisi della rete", + "NETWORK_ANALYZE_TIMEOUT_AUTO": "Auto", "PERSIST_CACHE": "Mantenere i dati di navigazione (sperimentale)", "PERSIST_CACHE_HELP": "per la fruizione da una sessione all'altra., Consente una navigazione più veloce, conservando localmente i dati ricevuti, per un utilizzo da una sessione all'altra.", "USE_LOCAL_STORAGE": "Permetti salvataggio locale", @@ -316,6 +317,8 @@ } }, "INFO": { + "CONNECTING_TO_NETWORK": "Connessione alla rete...", + "ANALYZING_NETWORK": "Analisi della rete {{currency|abbreviate}}...", "ONLY_SSL_PEERS": "I nodi non-SSL hanno un display semplificato perche Cesium funziona in modalità HTTPS." } }, diff --git a/www/i18n/locale-nl-NL.json b/www/i18n/locale-nl-NL.json index ecb87d93860b0a751ed09fd5926f714a5e6a9bff..f6dd50d4207040ba847b64061cfbeebdd8188c5d 100644 --- a/www/i18n/locale-nl-NL.json +++ b/www/i18n/locale-nl-NL.json @@ -114,16 +114,18 @@ "REPORT_ISSUE": "Meld een probleem", "NOT_YOUR_ACCOUNT_QUESTION" : "Is rekening <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b> niet van jou?", "BTN_CHANGE_ACCOUNT": "Dze rekening ontkoppelen", - "CONNECTION_ERROR": "Node <b>{{server}}</b> onbereikbaar of ongeldig adres.<br/><br/>Controleer de internetverbinding, of schakel knooppunt <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in parameters</a>." + "CONNECTION_ERROR": "Node <b>{{server}}</b> onbereikbaar of ongeldig adres.<br/><br/>Controleer de internetverbinding, of schakel knooppunt <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in de instellingen</a>.", + "NETWORK_CONNECTION_ERROR": "Netwerk is niet bereikbaar.<br/><br/>Controleer uw internetverbinding, of selecteer een node handmatig <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in de instellingen</a>." }, "SETTINGS": { "TITLE": "Instellingen", "NETWORK_SETTINGS": "Netwerk", - "PEER": "Duniter knooppunt adres", + "PEER": "Duniter knooppunt", "PEER_CHANGED_TEMPORARY": "Adres tijdelijk worden gebruikt", "PEER_SELECTED_AUTOMATICALLY": "Node automatisch geselecteerd bij opstarten", - "PEER_TIMEOUT": "Maximale wachttijd (time-out)", - "PEER_TIMEOUT_HELP": "Maximale wachttijd om een reactie van de node te krijgen", + "NETWORK_ANALYZE_TIMEOUT": "Maximale wachttijd (time-out)", + "NETWORK_ANALYZE_TIMEOUT_HELP": "Maximale wachttijd voor netwerkanalyse", + "NETWORK_ANALYZE_TIMEOUT_AUTO": "Auto", "USE_LOCAL_STORAGE": "Lokale opslag inschakelen", "USE_LOCAL_STORAGE_HELP": "Laat je instellingen opslaan", "ENABLE_HELPTIP": "Contextgebonden hulp inschakelen", @@ -239,6 +241,8 @@ } }, "INFO": { + "CONNECTING_TO_NETWORK": "Verbinden met het netwerk...", + "ANALYZING_NETWORK": "Analyseren van het {{currency|abbreviate}} netwerk...", "ONLY_SSL_PEERS": "Les noeuds non SSL ont un affichage dégradé, car Cesium fonctionne en mode HTTPS." } }, diff --git a/www/i18n/locale-pt-PT.json b/www/i18n/locale-pt-PT.json index 7d1d51d957eb6f9c6752bfb83af43c0a2586d537..66f2f4d00754fcf419b35d2f9915c88af842272d 100644 --- a/www/i18n/locale-pt-PT.json +++ b/www/i18n/locale-pt-PT.json @@ -128,19 +128,20 @@ "REPORT_ISSUE": "Reportar anomalia", "NOT_YOUR_ACCOUNT_QUESTION": "Esta conta não é sua <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b>?", "BTN_CHANGE_ACCOUNT": "Sair desta conta", - "CONNECTION_ERROR": "Nó <b>{{server}}</b> indisponÃvel ou endereço inválido.<br/><br/>Teste a sua ligação à Internet, ou nó Duniter <a class=\"positive\" ng-click=\"doQuickFix('settings')\">nas definições</a>." + "PEER_CONNECTION_ERROR": "Nó <b>{{server}}</b> indisponÃvel ou endereço inválido.<br/><br/>Teste a sua ligação à Internet, ou nó Duniter <a class=\"positive\" ng-click=\"doQuickFix('settings')\">nas definições</a>.", + "NETWORK_CONNECTION_ERROR": "Rede inacessÃvel.<br/><br/>Verifique a sua ligação à Internet, ou selecione um nó manualmente <a class=\"positive\" ng-click=\"doQuickFix('settings')\">nas definições</a>." }, "SETTINGS": { "TITLE": "Definições", "DISPLAY_DIVIDER": "Visualização", "STORAGE_DIVIDER": "Armazenamento", "NETWORK_SETTINGS": "Rede", - "PEER": "Endereço do nó Duniter", + "PEER": "Nó Duniter", "PEER_CHANGED_TEMPORARY": "Endereço utilizado temporariamente", "PEER_SELECTED_AUTOMATICALLY": "Nó selecionado automaticamente na inicialização", - "PEER_TIMEOUT": "Tempo máximo de espera (timeout)", - "PEER_TIMEOUT_HELP": "Tempo máximo de espera para obter uma resposta do nó", - "PEER_SHORT": "Nó Duniter", + "NETWORK_ANALYZE_TIMEOUT": "Tempo máximo de espera (timeout)", + "NETWORK_ANALYZE_TIMEOUT_HELP": "Tempo máximo de espera para a análise de rede", + "NETWORK_ANALYZE_TIMEOUT_AUTO": "Auto", "PERSIST_CACHE": "Conservar os dados de navegação (experimental)", "PERSIST_CACHE_HELP": "Permite uma navegação mais rápida, manter localmente os dados recebidos, para usar entre sessões.", "USE_LOCAL_STORAGE": "Ativar o armazenamento local", @@ -309,6 +310,8 @@ } }, "INFO": { + "CONNECTING_TO_NETWORK": "A conectar à rede...", + "ANALYZING_NETWORK": "A analisar a rede {{currency|abbreviate}}...", "ONLY_SSL_PEERS": "A visualização de nós sem SSL está deteriorada porque Cesium funciona em modo HTTPS." } }, diff --git a/www/js/controllers/home-controllers.js b/www/js/controllers/home-controllers.js index 389e8e6da68081c3164f72f46e6c1da9d9351228..77326e56446041b5bfa42e7202cb932e8b47d284 100644 --- a/www/js/controllers/home-controllers.js +++ b/www/js/controllers/home-controllers.js @@ -25,7 +25,7 @@ angular.module('cesium.home.controllers', ['cesium.platform', 'cesium.services'] ; function HomeController($scope, $state, $timeout, $ionicHistory, $translate, $http, $q, $location, - UIUtils, BMA, csConfig, csCache, csPlatform, csCurrency, csSettings) { + UIUtils, BMA, Device, csConfig, csCache, csPlatform, csCurrency, csSettings) { 'ngInject'; $scope.loading = true; @@ -57,7 +57,6 @@ function HomeController($scope, $state, $timeout, $ionicHistory, $translate, $ht } else { - // Wait platform to be ready csPlatform.ready() .then(function() { @@ -196,12 +195,26 @@ function HomeController($scope, $state, $timeout, $ionicHistory, $translate, $ht } }; - // Listen platform messages csPlatform.api.start.on.message($scope, function(message) { $scope.loadingMessage = message; }); + // Listen network offline/online + Device.api.network.on.offline($scope, function() { + csPlatform.stop(); + $scope.loadingMessage = ''; + $scope.loading = false; + $scope.node = csCurrency.data.node; + $scope.error = true; + }); + Device.api.network.on.online($scope, function() { + if (!$scope.loading && $scope.error) { + delete $scope.error; + $scope.reload(); + } + }); + // For DEV ONLY /*$timeout(function() { $scope.loginAndGo(); diff --git a/www/js/controllers/settings-controllers.js b/www/js/controllers/settings-controllers.js index 6606308bec0878b5ca0e8ba853fd44bd80e462c2..37173985f11a1078315aeb3d3d77e5644e178b0f 100644 --- a/www/js/controllers/settings-controllers.js +++ b/www/js/controllers/settings-controllers.js @@ -36,13 +36,14 @@ function SettingsController($scope, $q, $window, $ionicHistory, $ionicPopup, $ti }; // Fill timeout $scope.timeouts = [ - 500, - 1000, - 5000, - 10000, - 30000, - 60000, - 300000 + {label: 'SETTINGS.NETWORK_ANALYZE_TIMEOUT_AUTO', value: -1}, + {value: 500}, + {value: 1000}, + {value: 5000}, + {value: 10000}, + {value: 30000}, + {value: 60000}, + {value: 300000} ]; $scope.keepAuthIdleLabels = { /*0: { @@ -183,6 +184,13 @@ function SettingsController($scope, $q, $window, $ionicHistory, $ionicPopup, $ti $translate.use(langKey); }; + $scope.changeExpertMode = function(expertMode) { + // Restart platform, to auto select node + if (!expertMode) { + csPlatform.restart(); + } + }; + // Change node $scope.changeNode = function(node, confirm) { diff --git a/www/js/platform.js b/www/js/platform.js index a15b0965d008ea19431df340f03cbcafad1e1586..419308e2c5ff6313ed561c7621050539f293f4a4 100644 --- a/www/js/platform.js +++ b/www/js/platform.js @@ -151,9 +151,9 @@ angular.module('cesium.platform', ['ngIdle', 'cesium.config', 'cesium.services'] checkBmaNodeAliveCounter++; if (checkBmaNodeAliveCounter > 3) throw 'ERROR.CHECK_NETWORK_CONNECTION'; // Avoid infinite loop - api.start.raise.message('NETWORK.INFO.CONNECTING_TO_PEER'); + api.start.raise.message('NETWORK.INFO.CONNECTING_TO_NETWORK'); - var timeout = csSettings.data.expertMode ? csSettings.data.timeout : Device.network.timeout(csConfig.timeout); + var timeout = csSettings.data.expertMode && csSettings.data.timeout > 0 ? csSettings.data.timeout : Device.network.timeout(); return BMA.filterAliveNodes(csSettings.data.fallbackNodes, timeout) .then(function (fallbackNodes) { if (!fallbackNodes.length) throw 'ERROR.CHECK_NETWORK_CONNECTION'; @@ -194,7 +194,7 @@ angular.module('cesium.platform', ['ngIdle', 'cesium.config', 'cesium.services'] var now = Date.now(); console.info("[platform] Checking if node is synchronized..."); - api.start.raise.message('NETWORK.INFO.CHECKING_NETWORK_STATE'); + api.start.raise.message('NETWORK.INFO.ANALYZING_NETWORK'); var askUserConfirmation = csSettings.data.expertMode; diff --git a/www/js/services/device-services.js b/www/js/services/device-services.js index 14a5fe84af9eed8dca2f89d3c18dd29119df44ff..505d3408284fe58cf36f712b8d7f91c996845bdd 100644 --- a/www/js/services/device-services.js +++ b/www/js/services/device-services.js @@ -21,7 +21,12 @@ angular.module('cesium.device.services', ['cesium.utils.services', 'cesium.setti }, cache = {}, started = false, - startPromise; + startPromise, + listeners = { + online: undefined, + offline: undefined + } + ; // removeIf(device) // workaround to quickly no is device or not (even before the ready() event) @@ -189,17 +194,20 @@ angular.module('cesium.device.services', ['cesium.utils.services', 'cesium.setti timeout = 1000; // 1 s break; case 'wifi': - timeout = 5000; // 5 s + timeout = 2000; break; case 'cell': // (e.g. iOS) + case 'cell_5g': + timeout = 3000; + break; case 'cell_4g': - timeout = 10000; // 10s for 4G + timeout = 5000; break; - case 'cell_2g': // Added cell_2g case - timeout = 60000; // 60s for 2G + case 'cell_3g': + timeout = 10000; // 10s break; - case 'cell_3g': // Added cell_3g case - timeout = 30000; // 30s for 2G + case 'cell_2g': + timeout = 40000; // 40s break; case 'none': timeout = 0; @@ -351,11 +359,11 @@ angular.module('cesium.device.services', ['cesium.utils.services', 'cesium.setti exports.start = function() { startPromise = ionicReady() - .then(function(){ + .then(function() { - exports.enable = window.cordova && cordova && cordova.plugins; + exports.enable = window.cordova && cordova && !!cordova.plugins || false; - if (exports.enable){ + if (exports.enable) { exports.camera.enable = !!navigator.camera; exports.keyboard.enable = cordova && cordova.plugins && !!cordova.plugins.Keyboard; exports.barcode.enable = cordova && cordova.plugins && !!cordova.plugins.barcodeScanner && (!exports.isOSX() || exports.isIOS()); @@ -375,6 +383,18 @@ angular.module('cesium.device.services', ['cesium.utils.services', 'cesium.setti console.debug('[device] Enabling InAppBrowser'); window.open = cordova.InAppBrowser.open; } + + // Add network listeners + if (exports.network.enable) { + document.addEventListener("offline", function() { + console.info('[device] Network is offline'); + api.network.raise.offline(); + }, false); + document.addEventListener("online", function() { + console.info('[device] Network is online'); + api.network.raise.online(); + }, false); + } } else { console.debug('[device] Ionic platform ready - no device detected.'); @@ -388,6 +408,8 @@ angular.module('cesium.device.services', ['cesium.utils.services', 'cesium.setti }; api.registerEvent('intent', 'new'); + api.registerEvent('network', 'offline'); + api.registerEvent('network', 'online'); // Export the event api (see ngApi) exports.api = api; diff --git a/www/js/services/settings-services.js b/www/js/services/settings-services.js index b55a314234e1e8d3648a17b851717c0e27bb54b0..4e1c140373f7fbd0fcfc58d3685105f8eb413fd7 100644 --- a/www/js/services/settings-services.js +++ b/www/js/services/settings-services.js @@ -70,7 +70,7 @@ angular.module('cesium.settings.services', ['ngApi', 'cesium.config']) httpsMode: false }, defaultSettings = angular.merge({ - timeout : undefined, // Default will be set by csConfig.timeout + timeout : -1, // -1 = auto useRelative: false, useLocalStorage: !!$window.localStorage, // override to false if no device useLocalStorageEncryption: false, diff --git a/www/templates/home/home.html b/www/templates/home/home.html index 73765b5c5528d2821b8e668a59f1f0678d658216..fa7dcf0170685ff4955a675567a0c573276f09a6 100644 --- a/www/templates/home/home.html +++ b/www/templates/home/home.html @@ -46,7 +46,8 @@ <div class="center padding animate-fade-in animate-show-hide ng-hide" ng-show="!loading && error"> <div class="card card-item padding"> <p class="item-content item-text-wrap"> - <span class="dark" trust-as-html="'HOME.CONNECTION_ERROR'|translate:node"></span> + <span class="dark" ng-if="$root.settings.expertMode" trust-as-html="'HOME.PEER_CONNECTION_ERROR'|translate:node"></span> + <span class="dark" ng-if="!$root.settings.expertMode" trust-as-html="'HOME.NETWORK_CONNECTION_ERROR'|translate"></span> </p> <!-- Retry --> diff --git a/www/templates/settings/settings.html b/www/templates/settings/settings.html index ebf3e9014d76f87827eb4e8f9e3c377438df9b3f..8edb5e3405b7bfc960b05d907e673b08402c209b 100644 --- a/www/templates/settings/settings.html +++ b/www/templates/settings/settings.html @@ -207,13 +207,25 @@ <div class="input-label" ng-bind-html="'SETTINGS.EXPERT_MODE' | translate"></div> <h4 class="gray" ng-bind-html="'SETTINGS.EXPERT_MODE_HELP' | translate"></h4> <label class="toggle toggle-royal"> - <input type="checkbox" ng-model="formData.expertMode" > + <input type="checkbox" ng-model="formData.expertMode" ng-change="changeExpertMode(formData.expertMode)" > <div class="track"> <div class="handle"></div> </div> </label> </div> + <!-- Duniter node --> + <!--<div class="item item-text-wrap item-toggle dark"> + <div class="input-label" ng-bind-html="'SETTINGS.EXPERT_MODE' | translate"></div> + <h4 class="gray" ng-bind-html="'SETTINGS.EXPERT_MODE_HELP' | translate"></h4> + <label class="toggle toggle-royal"> + <input type="checkbox" ng-model="formData.expertMode" > + <div class="track"> + <div class="handle"></div> + </div> + </label> + </div>--> + <!-- Duniter node --> <div class="item ink item-text-wrap item-icon-right" ng-click="changeNode()"> <div class="input-label" ng-class="{'gray': !formData.expertMode}" translate>SETTINGS.PEER</div> @@ -252,30 +264,16 @@ <i class="icon ion-ios-arrow-right" ng-if="formData.expertMode"></i> </div> -<!-- <ion-item class="ink item-icon-right visible-xs visible-sm" ng-click="changeNode()">--> -<!-- <div class="input-label hidden-xs" translate>SETTINGS.PEER</div>--> -<!-- <div class="input-label visible-xs" translate>SETTINGS.PEER_SHORT</div>--> - -<!-- <!– node temporary changed –>--> -<!-- <ng-if ng-if="formData.node.temporary">--> -<!-- <h4 class="gray text-wrap assertive" >--> -<!-- <span class="ion-alert-circled"></span>--> -<!-- <span ng-bind-html="'SETTINGS.PEER_CHANGED_TEMPORARY' | translate "></span>--> -<!-- </h4>--> -<!-- <div class="badge badge-assertive">{{bma.server}}</div>--> -<!-- </ng-if>--> -<!-- <div class="badge badge-balanced" ng-if="!formData.node.temporary">{{bma.server}}</div>--> -<!-- <i class="icon ion-ios-arrow-right" ng-if="formData.expertMode"></i>--> -<!-- </ion-item>--> + <!-- Network scan timeout --> <label class="item item-select item-text-wrap" ng-if="formData.expertMode"> <div class="input-label" style="max-width: 70%;"> - <span translate>SETTINGS.PEER_TIMEOUT</span> + <span translate>SETTINGS.NETWORK_ANALYZE_TIMEOUT</span> </div> - <h4 class="gray text-wrap hidden-xs" ng-bind-html="'SETTINGS.PEER_TIMEOUT_HELP' | translate"></h4> + <h4 class="gray text-wrap hidden-xs" ng-bind-html="'SETTINGS.NETWORK_ANALYZE_TIMEOUT_HELP' | translate"></h4> <select ng-model="formData.timeout" - ng-options="t as (t|formatDurationMs) for t in timeouts track by t"> + ng-options="t as ((t.label|translate) || (t.value|formatDurationMs)) for t in timeouts track by t.value"> </select> </label>