From ee290d8b4fe6f0d56a4e11bfe69aa3c91b6dab4e Mon Sep 17 00:00:00 2001 From: Michael Ritchie Date: Fri, 7 Dec 2018 11:15:36 -0300 Subject: [PATCH] * Added French translations * Show SSL certificate permissions only once --- app/build.gradle | 2 +- .../ui/fragments/PlatformFragment.kt | 43 +- app/src/main/res/values-fr/strings.xml | 427 ++++++++++++++++++ app/src/main/res/values/donottranslate.xml | 2 +- 4 files changed, 454 insertions(+), 20 deletions(-) create mode 100755 app/src/main/res/values-fr/strings.xml diff --git a/app/build.gradle b/app/build.gradle index f7b5d121..56288db7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,7 +38,7 @@ repositories { def versionMajor = 0 def versionMinor = 8 def versionPatch = 5 -def versionBuild = 4 // bump for dog food builds, public betas, etc. +def versionBuild = 5 // bump for dog food builds, public betas, etc. def ALARM_CODE() { Properties properties = new Properties() diff --git a/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/ui/fragments/PlatformFragment.kt b/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/ui/fragments/PlatformFragment.kt index e727bfd6..5bdddb3e 100644 --- a/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/ui/fragments/PlatformFragment.kt +++ b/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/ui/fragments/PlatformFragment.kt @@ -55,8 +55,9 @@ class PlatformFragment : BaseFragment() { private var bottomSheetBehavior: BottomSheetBehavior? = null private var displayProgress = true private var zoomLevel = 1.0f - private var hasWebView:Boolean = true; + private var hasWebView:Boolean = true private val mOnScrollChangedListener = ViewTreeObserver.OnScrollChangedListener { swipeContainer?.isEnabled = webView.scrollY == 0 } + private var certPermissionsShown = false interface OnPlatformFragmentListener { fun navigateAlarmPanel() @@ -203,23 +204,29 @@ class PlatformFragment : BaseFragment() { } // TODO we need to load SSL certificates override fun onReceivedSslError(view: WebView, handler: SslErrorHandler?, error: SslError?) { - - var message = getString(R.string.dialog_message_ssl_generic) - when (error?.primaryError) { - SslError.SSL_UNTRUSTED -> message = getString(R.string.dialog_message_ssl_untrusted) - SslError.SSL_EXPIRED -> message = getString(R.string.dialog_message_ssl_expired) - SslError.SSL_IDMISMATCH -> message = getString(R.string.dialog_message_ssl_mismatch) - SslError.SSL_NOTYETVALID -> message = getString(R.string.dialog_message_ssl_not_yet_valid) - } - message += getString(R.string.dialog_message_ssl_continue) - if(isAdded && activity != null) { - dialogUtils.showAlertDialog(activity!!, getString(R.string.dialog_title_ssl_error), message, - DialogInterface.OnClickListener { _, _ -> - handler?.proceed() - }, - DialogInterface.OnClickListener { _, _ -> - handler?.cancel() - }) + if(!certPermissionsShown) { + var message = getString(R.string.dialog_message_ssl_generic) + when (error?.primaryError) { + SslError.SSL_UNTRUSTED -> message = getString(R.string.dialog_message_ssl_untrusted) + SslError.SSL_EXPIRED -> message = getString(R.string.dialog_message_ssl_expired) + SslError.SSL_IDMISMATCH -> message = getString(R.string.dialog_message_ssl_mismatch) + SslError.SSL_NOTYETVALID -> message = getString(R.string.dialog_message_ssl_not_yet_valid) + } + message += getString(R.string.dialog_message_ssl_continue) + if (isAdded && activity != null) { + dialogUtils.showAlertDialog(activity!!, getString(R.string.dialog_title_ssl_error), message, + DialogInterface.OnClickListener { _, _ -> + certPermissionsShown = true + handler?.proceed() + }, + DialogInterface.OnClickListener { _, _ -> + certPermissionsShown = false + handler?.cancel() + }) + } + } else { + // we have already shown permissions, no need to show again on page refreshes or when page auto-refreshes itself + handler?.proceed() } } } diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml new file mode 100755 index 00000000..3d7a02d9 --- /dev/null +++ b/app/src/main/res/values-fr/strings.xml @@ -0,0 +1,427 @@ + + + + Alarm Panel + + + + Paramètres + Publier + + + + + Le code saisi est identique au code actuel. Veuillez saisir un code différent. + Alarme modifiée! + Code d\'alarme inchangé! + Code de l\'alarme modifiée avec succès! + Le code ne correspond pas, essayez à nouveau. + Le code est invalide, essayez à nouveau. + + + Veuillez saisir un nouveau code + Veuillez saisir le code à nouveau + + + Renseigner le code de l\'alarme (défaut 1234). + Code de sécurité + MQTT + Renseigner les valeurs concernant le serveur MQTT + Serveur MQTT + Renseigner l\'adresse du serveur MQTT. Pour TCP/SSL, exclure le préfixe (192.168.1.1). Pour les autres, inclure le préfixe (http://192.168.1.1). + Identifiant du client + Renseigner l\'identifiant du client si nécessaire. + Connexion SSL/TLS + En SSL/TLS, écouter le serveur MQTT sur le port 8883. + Port + Renseigner le port, généralement 8123 si non sécurisé. + Commandes de l\'alarme + Topic des commandes + Renseigner le topic pour l\'envoi de commandes au serveur MQTT. + Renseigner le topic d\'état de l\'alarme publié par le serveur MQTT. + Utilisateur + Nom d\'utilisateur pour le serveur MQTT (si nécessaire). + Mot de passe + Mot de passe de l\'utilisateur MQTT (si nécessaire). + Alarme + Paramétrage du code de l\'alarme + Délai avant armement (Pending Time) + Délai, en secondes, avant que l\'alarme ne passe en mode absent (away) ou présent (home). Actuellement %1$s secondes. + Délai avant déclenchement (Trigger Time) + Délai, en secondes, avant que l\'alarme ne se déclenche. Actuellement %1$s secondes. + + Météo + Une fois activée, la météo apparaîtra sur l\'écran principal. + DarkSky + Activer la météo fournie par DarkSky. + Clé d\'API + Renseigner la clé d\'API DarkSky. + Latitude + Renseigner la latitude. + Longitude + Renseigner la longitude. + Unité de température + Utiliser les Celsius (°C) comme unité de température. + + Affichage + Economiseur d\'écran + Si activé, affiche une horloge comme économiseur d\'écran. + Horloge comme économiseur d\'écran + Identifiant Imgur + Renseigner l\'identifiant Imgur disponible ici https://api.imgur.com. + + Images comme économiseur d\'écran + Si activé, utilise un défilement d\'images d\'Imgur comme économiseur d\'écran. + Images comme économiseur d\'écran + + Utiliser un défilement d\'images d\'Instagram comme économisuer d\'écran. + + Tag Imgur + Renseigner un tag Imgur à utiliser pour sélectionner les images (exemple: space, architecture, flowers, or landscape). + Rogner les images + Rogner les images à la taille de l\'écran. + Intervalle de défilement + Intervalle de défilement des images (en minutes). Actuellement %1$s minute(s). + + Navigateur + Autoriser le chargement d\'interfaces externes, comme Home Assistant. + Interface externe + Affiche votre interface par glissement sur l\'écran principal. + Adresse de l\'interface + Renseigner l\'adresse IP de votre interface avec le préfixe et le port si nécessaire (exemple: http://ipaddress:port). + Cette fonctionnalité est expérimentale. La page web est rendue avec la version Android du navigateur Chrome et peut être différente en fonction de vos version de SDK Android et de WebView. + + Notifications + Affiche une notification si l\'alarme est déclenchée. + + Déclencher l\'économiseur d\'écran… + Aprés %1$s secondes d\'inactivité, la luminosité de l\'écran diminue. + Aprés %1$s minute(s) d\'inactivité, la luminosité de l\'écran diminue. + + + Notifications + Notifications MQTT + Affiche et énonce les notifications en provenance du serveur MQTT. + + Notifications d\'alerte + Notifications système + Exemple de format de message pour afficher une alerte: \n\n"{\"topic\":\"alarmpanel/command\", \"payload\":\"{\"alert\":\"Hello!\"}\"}" + + TTS + Notifications TTS + Utiliser Google Text-To-Speech pour énoncer les messages en provenance du serveur MQTT. (Note: Android Lollipop ou supérieur requis.) + + TTS Topic + Renseigner le Topic TTS + + + Exemple de format de message pour énoncer un message: \n\n"{\"topic\":\"alarmpanel/command\", \"payload\":\"{\"speak\":\"Hello!\"}\"}" + + Caméra + Capture d\'image de la caméra + utiliser la caméra de votre appareil pour faire une capture et l\'envoyer par email lors de la désactivation de l\'alarme. + + Rotation de la caméra + En fonction de votre caméra, vous pouvez faire pivoter ou retourner l\'image. Currently %1$s. + + Domaine + Renseigner votre domaine MailGun (exemple: sandboxd83b1e242f934c73a471c518392df0.mailgun.org). + Clé d\'API MailGun + Renseigner votre clé d\'API MailGun (example: key-5d021926d65dc12we8ec04d7f9d0fd2c). + + Expéditeur du mail + Renseigner l\'adresse e-mail à utiliser en tant qu\'expéditeur du mail (example: mister@thankmister.com). + + Destinataire + renseigner l\'adresse e-mail qui recevra la capture. Vous pouvez renseigner plusieurs adresses en les séparant par une virgule.((example: "mister@thankmister.com" or "mister@thankmister.com, me@thankmister.com") + + Paramétres MailGun + Pour envoyer les captures par email, vous devez configurer un compte MailGun (mailgun.com) et renseigner les nom de domaine, clé d\'API, ainsi que les adresses de destinataires. + + SYSTEME + DESACTIVEE + MODE ABSENT + Latitude et longitude invalides. + La valeur doit être comprise entre -90 et 90. + La valeur doit être comprise entre -180 et 180. + Impossible de détecter la position, veuillez renseigner la latitude et la longitude manuellement. + Paramètres + Alarme désactivée! + Journal d\'évènements + + MODE PRESENT + MODE ABSENT + MODE PRESENT + MODE ABSENT + SYSTEME + DESACTIVEE + SAISIR CODE POUR DESACTIVER + Comme il s\'agit de votre première utilisation, veuillez configurer votre appareil, votre serveur MQTT ainsi que les informations relatives à l\'alarme (le code par défaut est 1234). + EN COURS D\'ACTIVATION + + %1$s %2$s + H%1$s° L%2$s° + La connexion au serveur MQTT n\'a pas pu être établie ou a été perdue. Une nouvelle tentative va être faite. + Impossible de souscrire au Topic MQTT, veuillez vérifier le paramètrage du serveur MQTT ou votre connexion. + ALARME + Localisation de votre appareil + La localisation est désactivée. Voulez-vous l\'activer ? + + Retours MQTT Alarm Panel + Envoyer les retours: + + Thanks, Mister! + Design et développement + thanksmister.com + mister@thanksmister.com + Retours + Notez l\'application + Groupe Reddit + Information de licence + GitHub + A propos + Paramètres de l\'alarme + Paramètres MQTT + Déclenchement de l\'alarme + Notifications de l\'alarme + Intrusion détectée + Une intrusion a été détectée, veuillez prendre les mesures nécessaires. + Alarme déclenchée + L\'alarme s\'est déclenchée, veuillez prendre les mesures nécessaires. + Alarme déconnectée + La connexion réseau est indisponible. Une connexion est obligatoire pour assurer un fonctionnement correct. + Pour continuer, saisissez le code. + Vous n\'avez pas fini de paramétrer les informations du serveur MQTT. + Le délai avant armement est le temps avant que l\'alarme ne s\'active ou ne se déclenche. Veillez à laisser assez de temps pour quitter les lieux à votre départ ou désactiver l\'alarme lors de votre arrivée. + La durée de déclenchement est la durée pendant laquelle l\'alarme sonne avant d\'être désactivée. Une durée trop courte peut entrainer des comportements inattendus. + Impossible de se connecter au serveur MQTT sur le port: %1$s + Localisation en cours… + Veuillez saisir uniquement des chiffres sans espace. + La valeur ne doit pas être vide. Veuillez saisir une valeur valide. + L\'alarme a été désactivée, voici une image. + Alarme désactivée + Impossible de configurer la caméra. Votre appareil en est-il équipé ? + Impossible de faire une capture à partir de la caméra. Votre appareil en est-il équipé ? + Erreur de caméra. Impossible d\'y accéder. + \"Alarm Panel\" %1$s + Notifications MQTT + Chargement… + Mise à jour de l\'heure + Paramétrage de l\'heure + Fuseau horaire automatique + Utiliser le fuseau horaire fourni par le réseau + Mettre à jour l\'heure de l\'appareil. + Utiliser le format sur 24 heures + Heure + Modifier la densité d\'affichage. Actuellement %1$s dpi. + Modifier la luminosité entre 1 et 5. Actuellement %1$s. + Densité d\'affichage + Luminosité + Réinitialiser + Paramètres par défaut + Effacer tous les paramètres et les réinitialiser à leur valeur par défaut. + + Après %1$s minute(s) l\'affichage se met en veille. + Après %1$s seconde(s) l\'affichage se met en veille. + Après %1$s heure(s) l\'affichage se met en veille. + + Délai de mise en veille de l\'écran + Une mise à jour est disponible, voulez-vous l\'installer maintenant ? + Délai avant armement mode présent + Le délai en seconde avant que l\'alarme ne passe en mode présent. Actuellement %1$s secondes. + Durée de la fenêtre de désactivation + La durée en secondes pendant laquelle la fenêtre de désactivation s\'affiche, avant que l\'alarme ne se déclenche (sauf si défini par délai de déclenchement des modes présent ou absent). Actuellement %1$s secondes. + Délai avant armement mode absent + Le délai en secondes avant que l\'alarme ne passe en mode absent. Actuellement %1$s secondes. + Ces délais doivent correspondre à ceux définis dans le paramétrage de votre centrale domotique. Si vous vous ne souhaitez pas utiliser les délais du mode présent et du mode absent, positionnez les aux mêmes valeurs que le délai d\'armement global. Pour Home Assistant, consultez la documentation de MQTT manual alarm control panel ici https://home-assistant.io/components/alarm_control_panel.manual_mqtt/. + La durée en secondes pendant laquelle la fenêtre de désactivation s\'affiche en mode présent. Actuellement %1$s secondes. + Durée de la fenêtre de désactivation en mode présent + La durée en secondes pendant laquelle la fenêtre de désactivation s\'affiche en mode absent. Actuellement %1$s secondes. + Durée de la fenêtre de désactivation en mode absent + Cette fonctionnalité nécessite des permissions relatives à la caméra. Dans les paramètres de votre appareil, donnez les permissions à cette application. + Cette fonctionnalité nécessite des permissions relatives à la localisation. Dans les paramètres de votre appareil, donnez les permissions à cette application. + Délai de mise en veille de l\'écran écoulé… + Masquer + Montrer la barre de navigation + Si activé, affiche une barre de navigation à l\'écran. + Telegram + Renseigner votre identifiant Telegram bot chat. + Renseigner le jeton (token) d\'API Telegram bot. + dentifiant Telegram Chat + Jeton d\'API Telegram + Vous pouvez utiliser Telegram, Mailgun ou les deux pour envoyer des captures de caméra par email. + Aide + Il y a eu un problème lors de l\'envoi par email de l\'image. Veuillez vérifier vos identifiants MailGun. + Activer/désactiver le son utilisé lorsque l\'alarme est déclenchée. + Sons système + Empreinte digitale pour déverrouiller le système d\'alarme. Le code pourra être utilisé en secours. + Configurez d\'abord vos empreintes digitales sur votre appareil. + Déverrouillage par empreinte digitale + Paramètres expérimentaux + Masquer le menu + Masquer les éléments de menu destinés aux administrateurs. + Surchargez le comportement du bouton précédent + Le bouton précédent Android se comporte comme le précédent du navigateur. + Capteur tactile + Voulez-vous effacer les journaux d\'évènements ? + Effacer les journaux + Capteurs + + AJOUTER CAPTEUR + Ajouter capteur + %1$s / %2$s + %1$s + Modifications annulées… + Pour enregistrer un capteur, vous devez saisir le topic ET le payload. + Créer une liste de capteurs qui recevront les changements d\'état. Par exemple, créer une notification sonore si une porte est ouverte ou empêcher l\'activation de l\'alarme tant qu\'une fenêtre est ouverte. + Capteurs + Topic MQTT du capteur pour les chagements d\'état (%1$s/Porte d\'entrée). + Heure de début: %1$s + Heure de fin: %1$s + Sélection de l\'heure + Atténuer l\'affichage et utiliser un thème sombre entre deux horaires. + Heure de début du thème sombre + Heure de fin du thème sombre + Mode plein écran + Afficher l\'application en plein écran. + Notification + + Non disponible + Température + Luminosité + Champ magnétique + Pression + Humidité + Exemple de format pour le message: \n\n"{\"topic\":\"alarmpanel/command\", \"payload\":\"{\"speak\":\"Hello!\"}\"}" + Paramètres des capteurs + Autoriser la publication des capteurs + Publier les états des capteurs disponibles sur l\'appareil sur le serveur MQTT + Ci-dessous une liste des capteurs disponibles sur cet appareil dont les états seront publiés sur le serveur MQTT. + Autoriser le scan des QR code avec la camera de l\'appareil et le publier sur le serveur MQTT. + Fréquence de publication (en secondes) + Identifiant pour la réception de commande MQTT pour cet appareil. Chaque appareil doit avoir un identifiant unique. + Racine du Topic + Alarm Panel en cours… + Impossible de démarrer la caméra, réessayer plus tard. + User Agent (Optionel) + Forcer l\'utilisation d\'un user agent pour le chargement de l\'interface externe si nécessaire (laissez vide dans le cas contraire) + FPS de la caméra + Régler la vitesse de rafraîchissement de la caméra. Utilisez des valeurs faibles sur les appareils anciens. Actuellement %1$s. + Réinitialisation Capteur de mouvement + Délai en secondes avant la remise à zéro du capteur de mouvement. + Frontal + Arrière + {0}: {1} Caméra {3}x{4} {2}º + Test de la caméra + Test de la caméra + Port d\'écoute HTTP + Flux MJPEG de la caméra + Nombre maximal de flux MJPEG de la caméra + Détection de visage + Tolérance maximale de différence entre les images. Une tolérance plus faible signifie un capteur plus sensible (1 – 20). + Luminosité minimale pour la détection de mouvement. Aucune détection ne sera effectuée sous ce seuil de luminosité (1 – 1000). + Utiliser la caméra pour diffuser un flux MJPG en direct. Connectez-vous à ce flux en utilisant l\'adresse IP de l\'appreil, le port HTTP, et l\'accès: http://192.168.1.1:2971/camera/stream + Flux MJPEG + Utiliser la caméra pour diffuser un flux MJPG. + Utiliser la caméra + Caméra sélectionnée + Activer la détection de mouvement + Tolérance maximale + Luminosité minimale + Réveiller l\'écran + Activer la détection de visage + Réveiller l\'écran + Lecteur de QR Code + Détecter les mouvements en utilisant la caméra de l\'appareil. + Réveiller l\'écran lorsqu\'un mouvement est détecté. + Détection de mouvement + Ajustement de la détection de mouvement + Détecter les visage en utlisant la caméra de l\'appareil. + Réveiller l\'écran lorsqu\'un visage est détecté. + Tester les paramètres de la caméra. + Lecture du QR Code... + Trop sombre pour la détcetion de mouvement + Mouvement détecté! + Visage détecté! + QR Code %1$s + Voir l\'activité du navigateur + Afficher la barre de chargement du navigateur. + Zoom du navigateur (expérimental). + Niveau de zoom du navigateur + Chargement %1$s %% + Empêcher la mise en veille de l\'écran + Si activé, maintient l\'écran allumé. + Erreur de certificat SSL + Voulez-vous quand même continuer ? + Le certificat n\'est pas encore valide. + L\'Hostname du certificat ne correspond pas. + Le certificat est expiré. + L\'autorité du certificat n\'est pas de confiance. + Erreur du certificat SSL. + Le composant WebView n\'est pas installé sur cet appareil. Installez-le à partir du Google Play store. + Il manque des librairies pour utiliser la détection de visage et la lecture de QR code. Ces fonctionnalités ne fonctionneront pas sur cet appareil. + Rafraîchissement du navigateur + Si activé, autorise le rafraîchissement du navigateur par un glissement vers le bas. + Liste des capteurs + Niveau de batterie, branchement USB, branchement électrique, chargement + Batterie + Une erreur s\'est produite lors de l\'initilisation du client MQTT. Veuillez vérifier vos paramètres. + + + 15 secondes + 30 secondes + 1 minute + 2 minutes + 3 minutes + 5 minutes + 10 minutes + 30 minutes + + + + 15 secondes + 30 secondes + 1 minute + 2 minutes + 3 minutes + 5 minutes + 10 minutes + 30 minutes + 1 heure + 2 heures + 3 heures + 6 heures + 12 heures + 24 heures + + + + Aucune + Rotation sur la gauche + Rotate sur la droite + Symétrie verticale + + + + Générique + Porte + Fenêtre + Son + Mouvement + Caméra + + + \ No newline at end of file diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml index 36b3df46..3ebb9188 100644 --- a/app/src/main/res/values/donottranslate.xml +++ b/app/src/main/res/values/donottranslate.xml @@ -62,7 +62,7 @@ 30 setting_app_preventsleep false - setting_battery + setting_battery Copyright 2017 ThanksMister LLC