From a4ea62913e0cfa45a4b15259f20549f99664ea79 Mon Sep 17 00:00:00 2001 From: JEALG Date: Sat, 13 Jan 2024 11:12:39 +0100 Subject: [PATCH 01/47] Ajout lien community --- desktop/php/camera.php | 395 +++++++++++++++++++++-------------------- 1 file changed, 202 insertions(+), 193 deletions(-) diff --git a/desktop/php/camera.php b/desktop/php/camera.php index 14d74ba..9b476bf 100644 --- a/desktop/php/camera.php +++ b/desktop/php/camera.php @@ -31,6 +31,16 @@
{{Santé}} + ='); + if ($displayInfo) { + echo '
'; + echo '
'; + echo '{{Community}}'; + echo '
'; + } + ?> {{Mes caméras}} '; foreach ($eqLogics as $eqLogic) { $opacity = ($eqLogic->getIsEnable()) ? '' : 'disableCard'; - echo '
'; + echo '
'; if ($eqLogic->getConfiguration('device') != "" && camera::getImgFilePath($eqLogic->getConfiguration('device')) !== false) { - echo ''; - } - else { + echo ''; + } else { echo ''; } echo '
'; echo '' . $eqLogic->getHumanName(true, true) . ''; echo ''; @@ -237,208 +246,208 @@ -
+
-
- - {{Informations}} -
{{Si votre caméra n'est pas dans la liste vous pouvez trouver}} {{ici}} {{les informations de configuration pour pas mal de camera}}
-
- -
- + {{Informations}} +
{{Si votre caméra n'est pas dans la liste vous pouvez trouver}} {{ici}} {{les informations de configuration pour pas mal de camera}}
+
+ +
+ +
+
+
+
+ +
+ +
+
-
-
-
- -
- + + + +
+ +
+
+
+
+ {{Configuration}} +
+ +
+ +
-
-
- - - -
+
+ {{Miniature}} + + + + + + + + + + + + + + + + + + + + + + + + + +
{{Dashboard}}{{Mobile}}
+ {{Normal}} + + + + + + + + + + + + + + + + + + + + + + + + + +
{{Dashboard}}{{Mobile}}
+ + + -
-
-
-
- {{Configuration}} -
- -
- -
-
+

- {{Miniature}} - - - - - - - - - - - - - - - - - - - - - - - - - -
{{Dashboard}}{{Mobile}}
- {{Normal}} - + +
+ {{Vidéo}} +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ + +
+
+ + + +
+
+
+
+
+ +
+
+ + + + +
+
+
+
+ +
+
+ + + + +
+
+
+
+ +
+ + +
- - - + + + + + + - - - - - - - - - - - - - - -
{{Dashboard}}{{Mobile}}{{Id}}{{Nom}}{{Type}}{{Requête}}{{Options}}{{Action}}
-
- -
- -
-
-
-
- {{Vidéo}} -
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- - -
-
-
-
- -
-
-
-
-
- -
-
- - - - -
-
-
-
- -
-
- - - - -
-
-
-
-
- - -
- {{Ajouter une commande}} -

- - - - - - - - - - - - - -
{{Id}}{{Nom}}{{Type}}{{Requête}}{{Options}}{{Action}}
-
- - + + - + \ No newline at end of file From 741d2cd8111246b3633a628375cd908e7c01978c Mon Sep 17 00:00:00 2001 From: JEALG Date: Sat, 13 Jan 2024 11:22:50 +0100 Subject: [PATCH 02/47] =?UTF-8?q?Modale=20sant=C3=A9=20remplacement=20ic?= =?UTF-8?q?=C3=B4ne=20de=20l'=C3=A9quipement=20par=20image=20du=20device?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- desktop/modal/health.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/desktop/modal/health.php b/desktop/modal/health.php index 93e1b6d..114c7a5 100644 --- a/desktop/modal/health.php +++ b/desktop/modal/health.php @@ -44,8 +44,8 @@ getIsEnable()) ? '' : 'disableCard'; - if (file_exists(dirname(__FILE__) . '/../../core/config/devices/' . $eqLogic->getConfiguration('device') . '.jpg')) { - $img = ''; + if ($eqLogic->getConfiguration('device') != "" && camera::getImgFilePath($eqLogic->getConfiguration('device')) !== false) { + $img = ''; } else { $img = ''; } @@ -75,12 +75,12 @@ } else { echo '' . $framerate . '/s'; } - - echo '' . $eqLogic->getConfiguration('refreshDelaySlow',1) . '/s'; - echo '' . $eqLogic->getConfiguration('refreshDelayFast',1) . '/s'; + + echo '' . $eqLogic->getConfiguration('refreshDelaySlow', 1) . '/s'; + echo '' . $eqLogic->getConfiguration('refreshDelayFast', 1) . '/s'; echo '' . $eqLogic->getConfiguration('maxReccordTime') . 's'; echo '' . $eqLogic->getConfiguration('createtime') . ''; } ?> - + \ No newline at end of file From 4e2ecea754fb89c9dbcd6cfaf8b3962cfc6d4910 Mon Sep 17 00:00:00 2001 From: JEALG Date: Sat, 13 Jan 2024 11:28:30 +0100 Subject: [PATCH 03/47] mise a jour config Freebox-freeboxcam --- core/config/devices/freebox/rocketcam.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/config/devices/freebox/rocketcam.json b/core/config/devices/freebox/rocketcam.json index 87f3a1d..520b648 100644 --- a/core/config/devices/freebox/rocketcam.json +++ b/core/config/devices/freebox/rocketcam.json @@ -2,8 +2,9 @@ "name" : "RocketCam", "manufacturer" : "Freebox", "configuration": { + "username" : "freeboxcam", "urlStream": "\/img\/snapshot.cgi?size=4&quality=1", - "cameraStreamAccessUrl" : "rtsp:\/\/#username#:#password#@#ip#\/img\/live", + "cameraStreamAccessUrl" : "http:\/\/#username#:#password#@#ip#\/img\/stream.m3u8", "protocole": "http" }, "commands": [] From a4109bcf8f3e44ea0bb00def2964938deae7273b Mon Sep 17 00:00:00 2001 From: Jenkins Date: Thu, 25 Jan 2024 00:21:48 +0000 Subject: [PATCH 04/47] [Jenkins] Updated translation --- docs/de_DE/changelog.md | 4 ++++ docs/en_US/changelog.md | 4 ++++ docs/es_ES/changelog.md | 4 ++++ docs/i18n/de_DE.json | 2 ++ docs/i18n/en_US.json | 2 ++ docs/i18n/es_ES.json | 2 ++ docs/i18n/fr_FR.json | 2 ++ docs/i18n/pt_PT.json | 2 ++ docs/pt_PT/changelog.md | 4 ++++ 9 files changed, 26 insertions(+) diff --git a/docs/de_DE/changelog.md b/docs/de_DE/changelog.md index 9472baa..3552e81 100644 --- a/docs/de_DE/changelog.md +++ b/docs/de_DE/changelog.md @@ -4,6 +4,10 @@ > >Wenn es keine Informationen über die Aktualisierung gibt, bedeutet dies, dass es sich nur um die Aktualisierung von Dokumentation, Übersetzung oder Text handelt. +# 24.01.2024 + +- Widget-Verbesserung + # 17.01.2024 - Fehlerbehebung beim Widget diff --git a/docs/en_US/changelog.md b/docs/en_US/changelog.md index 6bf02aa..909bfeb 100644 --- a/docs/en_US/changelog.md +++ b/docs/en_US/changelog.md @@ -4,6 +4,10 @@ > >If there is no information on the update, it means that it concerns only the update of documentation, translation or text. +# 01/24/2024 + +- Widget improvement + # 01/17/2024 - Bug fix on widget diff --git a/docs/es_ES/changelog.md b/docs/es_ES/changelog.md index 2fe0798..eb73ffa 100644 --- a/docs/es_ES/changelog.md +++ b/docs/es_ES/changelog.md @@ -4,6 +4,10 @@ > >Si no hay información sobre la actualización, significa que se trata solo de la actualización de la documentación, la traducción o el texto. +# 24/01/2024 + +- Mejora de widgets + # 17/01/2024 - Corrección de errores en el widget diff --git a/docs/i18n/de_DE.json b/docs/i18n/de_DE.json index e9866b7..7fb73a0 100644 --- a/docs/i18n/de_DE.json +++ b/docs/i18n/de_DE.json @@ -2,6 +2,8 @@ "changelog.md": { "Changelog Caméra": "Changelog Kamera", "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "Wenn es keine Informationen über die Aktualisierung gibt, bedeutet dies, dass es sich nur um die Aktualisierung von Dokumentation, Übersetzung oder Text handelt", + "24\/01\/2024": "24.01.2024", + "Amélioration du widget": "Widget-Verbesserung", "17\/01\/2024": "17.01.2024", "Correction de bug sur le widget": "Fehlerbehebung beim Widget", "16\/01\/2024": "16.01.2024", diff --git a/docs/i18n/en_US.json b/docs/i18n/en_US.json index 97ac48b..886d007 100644 --- a/docs/i18n/en_US.json +++ b/docs/i18n/en_US.json @@ -2,6 +2,8 @@ "changelog.md": { "Changelog Caméra": "Changelog Camera", "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "If there is no information on the update, it means that it concerns only the update of documentation, translation or text", + "24\/01\/2024": "01\/24\/2024", + "Amélioration du widget": "Widget improvement", "17\/01\/2024": "01\/17\/2024", "Correction de bug sur le widget": "Bug fix on widget", "16\/01\/2024": "01\/16\/2024", diff --git a/docs/i18n/es_ES.json b/docs/i18n/es_ES.json index de74a27..8fa354a 100644 --- a/docs/i18n/es_ES.json +++ b/docs/i18n/es_ES.json @@ -2,6 +2,8 @@ "changelog.md": { "Changelog Caméra": "Changelog Camera", "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "Si no hay información sobre la actualización, significa que se trata solo de la actualización de la documentación, la traducción o el texto", + "24\/01\/2024": "24\/01\/2024", + "Amélioration du widget": "Mejora de widgets", "17\/01\/2024": "17\/01\/2024", "Correction de bug sur le widget": "Corrección de errores en el widget", "16\/01\/2024": "16\/01\/2024", diff --git a/docs/i18n/fr_FR.json b/docs/i18n/fr_FR.json index 72ac45f..ac55b2e 100644 --- a/docs/i18n/fr_FR.json +++ b/docs/i18n/fr_FR.json @@ -3,6 +3,8 @@ "Changelog Caméra": "Changelog Caméra", "IMPORTANT": "IMPORTANT", "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte", + "24\/01\/2024": "24\/01\/2024", + "Amélioration du widget": "Amélioration du widget", "17\/01\/2024": "17\/01\/2024", "Correction de bug sur le widget": "Correction de bug sur le widget", "16\/01\/2024": "16\/01\/2024", diff --git a/docs/i18n/pt_PT.json b/docs/i18n/pt_PT.json index 5b81ff6..9ad7eb1 100644 --- a/docs/i18n/pt_PT.json +++ b/docs/i18n/pt_PT.json @@ -2,6 +2,8 @@ "changelog.md": { "Changelog Caméra": "Changelog Camera", "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "Se não houver informação sobre a atualização, significa que se trata apenas da atualização da documentação, tradução ou texto", + "24\/01\/2024": "24\/01\/2024", + "Amélioration du widget": "Melhoria de widget", "17\/01\/2024": "17\/01\/2024", "Correction de bug sur le widget": "Correção de bug no widget", "16\/01\/2024": "16\/01\/2024", diff --git a/docs/pt_PT/changelog.md b/docs/pt_PT/changelog.md index 97553cd..fa210b4 100644 --- a/docs/pt_PT/changelog.md +++ b/docs/pt_PT/changelog.md @@ -4,6 +4,10 @@ > >Se não houver informação sobre a atualização, significa que se trata apenas da atualização da documentação, tradução ou texto. +# 24/01/2024 + +- Melhoria de widget + # 17/01/2024 - Correção de bug no widget From 0bd6cac5037408fd50a95d0cb6e5c9db1b91c2b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc?= <1536036+zoic21@users.noreply.github.com> Date: Fri, 26 Jan 2024 13:38:43 +0100 Subject: [PATCH 05/47] Update camera.class.php --- core/class/camera.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/class/camera.class.php b/core/class/camera.class.php index c5654cd..ab80882 100644 --- a/core/class/camera.class.php +++ b/core/class/camera.class.php @@ -608,12 +608,12 @@ public function toHtml($_version = 'dashboard', $_fluxOnly = false) { ); $on = $this->getCmd(null, 'on'); $off = $this->getCmd(null, 'off'); - if (is_object($on)) { + if (is_object($on) && $on->getIsVisible() == 1) { $replace['#cmd_on_id#'] = $on->getId(); } else { $replace['#cmd_on_id#'] = '""'; } - if (is_object($off)) { + if (is_object($off) && $off->getIsVisible() == 1) { $replace['#cmd_off_id#'] = $off->getId(); } else { $replace['#cmd_off_id#'] = '""'; From 1a86c2e133fb1965e598a2e4b81a2dad6f1fa28e Mon Sep 17 00:00:00 2001 From: JEALG Date: Sun, 4 Feb 2024 08:28:37 +0100 Subject: [PATCH 06/47] Suppression lien community --- desktop/php/camera.php | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/desktop/php/camera.php b/desktop/php/camera.php index 9b476bf..d561de9 100644 --- a/desktop/php/camera.php +++ b/desktop/php/camera.php @@ -31,16 +31,6 @@
{{Santé}} - ='); - if ($displayInfo) { - echo '
'; - echo '
'; - echo '{{Community}}'; - echo '
'; - } - ?> {{Mes caméras}} Date: Wed, 21 Feb 2024 06:43:49 +0100 Subject: [PATCH 07/47] Update camera.displayVideo.php --- desktop/modal/camera.displayVideo.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/modal/camera.displayVideo.php b/desktop/modal/camera.displayVideo.php index 9379d45..b6b72a8 100644 --- a/desktop/modal/camera.displayVideo.php +++ b/desktop/modal/camera.displayVideo.php @@ -2,7 +2,7 @@ if (!isConnect()) { throw new Exception('{{401 - Accès non autorisé}}'); } -if (!substr_compare(init('src'), '.mp4', -strlen('.mp4')) !== 0) { +if (substr_compare(init('src'), '.mp4', -strlen('.mp4')) !== 0) { throw new Exception('{{401 - Accès non autorisé}}'); } if (strpos(init('src'), 'camera') === false) { From 5ffa86cd1405903a99a79c272a7f9d1194e13a47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc?= <1536036+zoic21@users.noreply.github.com> Date: Thu, 22 Feb 2024 08:52:39 +0100 Subject: [PATCH 08/47] Update changelog.md --- docs/fr_FR/changelog.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/fr_FR/changelog.md b/docs/fr_FR/changelog.md index b20fabc..074ced2 100644 --- a/docs/fr_FR/changelog.md +++ b/docs/fr_FR/changelog.md @@ -4,6 +4,8 @@ > >S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte. +- Correction d'un bug sur l'accès aux enregistrements videos + # 24/01/2024 - Amélioration du widget From a92ea4ed933968e7871a74f1d1964cde7c261cfa Mon Sep 17 00:00:00 2001 From: Jenkins Date: Fri, 23 Feb 2024 00:21:50 +0000 Subject: [PATCH 09/47] [Jenkins] Updated translation --- docs/de_DE/changelog.md | 2 ++ docs/en_US/changelog.md | 2 ++ docs/es_ES/changelog.md | 2 ++ docs/i18n/de_DE.json | 1 + docs/i18n/en_US.json | 1 + docs/i18n/es_ES.json | 1 + docs/i18n/fr_FR.json | 1 + docs/i18n/pt_PT.json | 1 + docs/pt_PT/changelog.md | 2 ++ 9 files changed, 13 insertions(+) diff --git a/docs/de_DE/changelog.md b/docs/de_DE/changelog.md index 3552e81..b732744 100644 --- a/docs/de_DE/changelog.md +++ b/docs/de_DE/changelog.md @@ -4,6 +4,8 @@ > >Wenn es keine Informationen über die Aktualisierung gibt, bedeutet dies, dass es sich nur um die Aktualisierung von Dokumentation, Übersetzung oder Text handelt. +- Ein Fehler beim Zugriff auf Videoaufzeichnungen wurde behoben + # 24.01.2024 - Widget-Verbesserung diff --git a/docs/en_US/changelog.md b/docs/en_US/changelog.md index 909bfeb..9f9b8ad 100644 --- a/docs/en_US/changelog.md +++ b/docs/en_US/changelog.md @@ -4,6 +4,8 @@ > >If there is no information on the update, it means that it concerns only the update of documentation, translation or text. +- Fixed a bug on access to video recordings + # 01/24/2024 - Widget improvement diff --git a/docs/es_ES/changelog.md b/docs/es_ES/changelog.md index eb73ffa..9104c2e 100644 --- a/docs/es_ES/changelog.md +++ b/docs/es_ES/changelog.md @@ -4,6 +4,8 @@ > >Si no hay información sobre la actualización, significa que se trata solo de la actualización de la documentación, la traducción o el texto. +- Se corrigió un error en el acceso a grabaciones de video + # 24/01/2024 - Mejora de widgets diff --git a/docs/i18n/de_DE.json b/docs/i18n/de_DE.json index 7fb73a0..2574a3b 100644 --- a/docs/i18n/de_DE.json +++ b/docs/i18n/de_DE.json @@ -2,6 +2,7 @@ "changelog.md": { "Changelog Caméra": "Changelog Kamera", "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "Wenn es keine Informationen über die Aktualisierung gibt, bedeutet dies, dass es sich nur um die Aktualisierung von Dokumentation, Übersetzung oder Text handelt", + "Correction d'un bug sur l'accès aux enregistrements videos": "Ein Fehler beim Zugriff auf Videoaufzeichnungen wurde behoben", "24\/01\/2024": "24.01.2024", "Amélioration du widget": "Widget-Verbesserung", "17\/01\/2024": "17.01.2024", diff --git a/docs/i18n/en_US.json b/docs/i18n/en_US.json index 886d007..5c1c0cf 100644 --- a/docs/i18n/en_US.json +++ b/docs/i18n/en_US.json @@ -2,6 +2,7 @@ "changelog.md": { "Changelog Caméra": "Changelog Camera", "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "If there is no information on the update, it means that it concerns only the update of documentation, translation or text", + "Correction d'un bug sur l'accès aux enregistrements videos": "Fixed a bug on access to video recordings", "24\/01\/2024": "01\/24\/2024", "Amélioration du widget": "Widget improvement", "17\/01\/2024": "01\/17\/2024", diff --git a/docs/i18n/es_ES.json b/docs/i18n/es_ES.json index 8fa354a..f3effe0 100644 --- a/docs/i18n/es_ES.json +++ b/docs/i18n/es_ES.json @@ -2,6 +2,7 @@ "changelog.md": { "Changelog Caméra": "Changelog Camera", "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "Si no hay información sobre la actualización, significa que se trata solo de la actualización de la documentación, la traducción o el texto", + "Correction d'un bug sur l'accès aux enregistrements videos": "Se corrigió un error en el acceso a grabaciones de video", "24\/01\/2024": "24\/01\/2024", "Amélioration du widget": "Mejora de widgets", "17\/01\/2024": "17\/01\/2024", diff --git a/docs/i18n/fr_FR.json b/docs/i18n/fr_FR.json index ac55b2e..7ae857b 100644 --- a/docs/i18n/fr_FR.json +++ b/docs/i18n/fr_FR.json @@ -3,6 +3,7 @@ "Changelog Caméra": "Changelog Caméra", "IMPORTANT": "IMPORTANT", "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte", + "Correction d'un bug sur l'accès aux enregistrements videos": "Correction d'un bug sur l'accès aux enregistrements videos", "24\/01\/2024": "24\/01\/2024", "Amélioration du widget": "Amélioration du widget", "17\/01\/2024": "17\/01\/2024", diff --git a/docs/i18n/pt_PT.json b/docs/i18n/pt_PT.json index 9ad7eb1..9502949 100644 --- a/docs/i18n/pt_PT.json +++ b/docs/i18n/pt_PT.json @@ -2,6 +2,7 @@ "changelog.md": { "Changelog Caméra": "Changelog Camera", "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "Se não houver informação sobre a atualização, significa que se trata apenas da atualização da documentação, tradução ou texto", + "Correction d'un bug sur l'accès aux enregistrements videos": "Corrigido um bug no acesso às gravações de vídeo", "24\/01\/2024": "24\/01\/2024", "Amélioration du widget": "Melhoria de widget", "17\/01\/2024": "17\/01\/2024", diff --git a/docs/pt_PT/changelog.md b/docs/pt_PT/changelog.md index fa210b4..c519023 100644 --- a/docs/pt_PT/changelog.md +++ b/docs/pt_PT/changelog.md @@ -4,6 +4,8 @@ > >Se não houver informação sobre a atualização, significa que se trata apenas da atualização da documentação, tradução ou texto. +- Corrigido um bug no acesso às gravações de vídeo + # 24/01/2024 - Melhoria de widget From 6f6994d048ee6c8746ff2c98d5f6c8fe296f09c5 Mon Sep 17 00:00:00 2001 From: Flobul Date: Tue, 30 Apr 2024 19:28:38 +0200 Subject: [PATCH 10/47] Add files via upload --- 3rdparty/rtsp-to-hls-copy.sh | 25 +++ 3rdparty/rtsp-to-hls-x264.sh | 25 +++ core/ajax/camera.ajax.php | 9 +- core/class/camera.class.php | 4 +- core/php/snapshot.php | 9 +- core/template/dashboard/camera_stream.html | 6 +- .../dashboard/camera_stream_only.html | 2 +- desktop/php/camera.php | 12 +- docs/fr_FR/index.md | 17 +- plugin_info/install.php | 154 +++++++++--------- 10 files changed, 166 insertions(+), 97 deletions(-) create mode 100644 3rdparty/rtsp-to-hls-copy.sh create mode 100644 3rdparty/rtsp-to-hls-x264.sh diff --git a/3rdparty/rtsp-to-hls-copy.sh b/3rdparty/rtsp-to-hls-copy.sh new file mode 100644 index 0000000..0a20aea --- /dev/null +++ b/3rdparty/rtsp-to-hls-copy.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +#[ $# -eq 0 ] && { echo "Usage: $0 rtsp://... <name>"; exit 1; } + +BASEDIR=$(dirname "$0") +SOURCE="$1" +DEST="$2" +NAME=${2:-cctv} +#ARCHIVE=${ARCHIVE:-archive} + +HLS_TIME=${HLS_TIME:-5} +HLS_LIST_SIZE=${HLS_LIST_SIZE:-5} + +ffmpeg -rtsp_transport tcp -i "$SOURCE" \ +-f hls \ +-vsync 0 -copyts -vcodec copy -acodec copy \ +-tune zerolatency \ +-movflags frag_keyframe+empty_moov \ +-hls_flags delete_segments+append_list \ +-hls_init_time 1 \ +-hls_time $HLS_TIME \ +-hls_list_size $HLS_LIST_SIZE \ +-hls_base_url "segments/" \ +-hls_segment_filename ${BASEDIR}"/../data/segments/$NAME-%d.ts" \ +${BASEDIR}"/../data/$NAME.m3u8" \ No newline at end of file diff --git a/3rdparty/rtsp-to-hls-x264.sh b/3rdparty/rtsp-to-hls-x264.sh new file mode 100644 index 0000000..c930606 --- /dev/null +++ b/3rdparty/rtsp-to-hls-x264.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +#[ $# -eq 0 ] && { echo "Usage: $0 rtsp://... <name>"; exit 1; } + +BASEDIR=$(dirname "$0") +SOURCE="$1" +DEST="$2" +NAME=${2:-cctv} +#ARCHIVE=${ARCHIVE:-archive} + +HLS_TIME=${HLS_TIME:-5} +HLS_LIST_SIZE=${HLS_LIST_SIZE:-5} + +ffmpeg -rtsp_transport tcp -i "$SOURCE" \ +-f hls \ +-vsync 0 -copyts -c:v libx264 -preset ultrafast -tune zerolatency -profile:v main \ +-c:a copy \ +-movflags frag_keyframe+empty_moov \ +-hls_flags delete_segments+append_list \ +-hls_init_time 1 \ +-hls_time $HLS_TIME \ +-hls_list_size $HLS_LIST_SIZE \ +-hls_base_url "segments/" \ +-hls_segment_filename ${BASEDIR}"/../data/segments/$NAME-%d.ts" \ +${BASEDIR}"/../data/$NAME.m3u8" \ No newline at end of file diff --git a/core/ajax/camera.ajax.php b/core/ajax/camera.ajax.php index 5310519..79007c9 100644 --- a/core/ajax/camera.ajax.php +++ b/core/ajax/camera.ajax.php @@ -31,7 +31,8 @@ if(!is_object($camera)){ throw new \Exception(__('Impossible de trouver la camera : ',__FILE__).init('id')); } - if(count(system::ps('rtsp-to-hls.sh.*'.$camera->getConfiguration('localApiKey'))) == 0){ + $rtspScript = dirname(__FILE__) . '/../../3rdparty/rtsp-to-hls-' . ($camera->getConfiguration('encodeX264RTSP', 0) == 1 ? 'x264' : 'copy') . '.sh '; + if(count(system::ps('rtsp-to-hls-*.sh.*'.$camera->getConfiguration('localApiKey'))) == 0){ shell_exec('(ps ax || ps w) | grep ffmpeg.*'.$camera->getConfiguration('localApiKey').' | awk \'{print $2}\' | xargs sudo kill -9'); $replace = array( '#username#' => urlencode($camera->getConfiguration('username')), @@ -43,8 +44,8 @@ if (!file_exists(dirname(__FILE__) . '/../../data/segments')) { mkdir(dirname(__FILE__) . '/../../data/segments', 0777, true); } - log::add('camera', 'debug', 'nohup '.dirname(__FILE__) . '/../../3rdparty/rtsp-to-hls.sh ' . trim(str_replace(array_keys($replace), $replace, $camera->getConfiguration('cameraStreamAccessUrl'))).' "' . $camera->getConfiguration('localApiKey') . '" > /dev/null 2>&1 &'); - exec('nohup ' .dirname(__FILE__) . '/../../3rdparty/rtsp-to-hls.sh ' . trim(str_replace(array_keys($replace), $replace, $camera->getConfiguration('cameraStreamAccessUrl'))).' "' . $camera->getConfiguration('localApiKey') . '" > /dev/null 2>&1 &'); + log::add('camera', 'debug', 'nohup ' . $rtspScript . trim(str_replace(array_keys($replace), $replace, $camera->getConfiguration('cameraStreamAccessUrl'))).' "' . $camera->getConfiguration('localApiKey') . '" > /dev/null 2>&1 &'); + exec('nohup ' . $rtspScript . trim(str_replace(array_keys($replace), $replace, $camera->getConfiguration('cameraStreamAccessUrl'))).' "' . $camera->getConfiguration('localApiKey') . '" > /dev/null 2>&1 &'); $i=0; while(!file_exists(__DIR__.'/../../data/'.$camera->getConfiguration('localApiKey').'.m3u8')){ sleep(1); @@ -124,4 +125,4 @@ /* * *********Catch exeption*************** */ } catch (Exception $e) { ajax::error(displayException($e), $e->getCode()); - } + } \ No newline at end of file diff --git a/core/class/camera.class.php b/core/class/camera.class.php index ab80882..9118968 100644 --- a/core/class/camera.class.php +++ b/core/class/camera.class.php @@ -651,7 +651,7 @@ public function getUrl($_complement = '', $_flux = false) { '#password#' => urlencode($this->getConfiguration('password')), ); if ($_flux) { - return 'plugins/camera/core/php/snapshot.php?id=' . $this->getId() . '&apikey=' . $this->getConfiguration('localApiKey'); + return 'plugins/camera/core/php/snapshot.php?id=' . $this->getId() . '&api=' . $this->getConfiguration('localApiKey'); } $url = $this->getConfiguration('protocole', 'http'); $url .= '://'; @@ -1144,4 +1144,4 @@ public function execute($_options = null) { } /* * **********************Getteur Setteur*************************** */ -} +} \ No newline at end of file diff --git a/core/php/snapshot.php b/core/php/snapshot.php index cde38b2..958c491 100644 --- a/core/php/snapshot.php +++ b/core/php/snapshot.php @@ -24,12 +24,17 @@ if ($camera->getEqType_name() != 'camera') { die(); } -if ($camera->getConfiguration('localApiKey') != init('apikey')) { +if ($camera->getConfiguration('localApiKey') != init('api')) { die(); } ob_clean(); header('Content-Type: image/jpeg'); +try { $data = $camera->getSnapshot(); +} catch (Exception $e) { + log::add('camera', 'info', 'TETETT' . json_encode(utils::o2a($e))); + +} if (!is_string($data)) { die(); } @@ -110,4 +115,4 @@ } echo $data; exit(); -} +} \ No newline at end of file diff --git a/core/template/dashboard/camera_stream.html b/core/template/dashboard/camera_stream.html index a4054a9..c4df77f 100644 --- a/core/template/dashboard/camera_stream.html +++ b/core/template/dashboard/camera_stream.html @@ -68,6 +68,10 @@ video#id#.play(); }); }); + hls#id#.on(Hls.Events.ERROR, function (event, data) { + + console.log('error', event, data) + }); }else if (video#id#.canPlayType('application/vnd.apple.mpegurl')) { video#id#.src = '#url#'; video#id#.addEventListener('loadedmetadata',function() { @@ -80,4 +84,4 @@ } }); - + \ No newline at end of file diff --git a/core/template/dashboard/camera_stream_only.html b/core/template/dashboard/camera_stream_only.html index 31a572d..70a26c0 100644 --- a/core/template/dashboard/camera_stream_only.html +++ b/core/template/dashboard/camera_stream_only.html @@ -47,4 +47,4 @@ } }); - + \ No newline at end of file diff --git a/desktop/php/camera.php b/desktop/php/camera.php index d561de9..676618c 100644 --- a/desktop/php/camera.php +++ b/desktop/php/camera.php @@ -213,13 +213,19 @@
- + +
+ +
+
+
+
- +
@@ -365,7 +371,7 @@
- +
diff --git a/docs/fr_FR/index.md b/docs/fr_FR/index.md index 86ad724..b3c9bdb 100644 --- a/docs/fr_FR/index.md +++ b/docs/fr_FR/index.md @@ -9,7 +9,7 @@ Plugin permettant de créer et gérer des caméras wifi (affichage et enregistre Après installation du plugin, il vous suffit de l'activer. Quelques paramètres sont à renseigner dans la configuration du plugin : - **Chemin des enregistrements** : indique le chemin où Jeedom doit stocker les images qu'il capture de vos caméras (il est déconseillé d'y toucher). Si votre chemin n'est pas dans le chemin d'installation de Jeedom alors vous ne pourrez visualiser les captures dans Jeedom. -- **Taille maximum du dossier d'enregistrement (Mo)** : indique la taille maximum autorisée pour le dossier où les captures sont enregistrées (il est déconseillé d'y toucher). Si ce quotas est atteint Jeedom supprimera les captures les plus anciennes. +- **Taille maximum du dossier d'enregistrement (Mo)** : indique la taille maximum autorisée pour le dossier où les captures sont enregistrées (il est déconseillé d'y toucher). Si ce quota est atteint Jeedom supprimera les captures les plus anciennes. - **Le plugin caméra doit réagir aux interactions** : mots clés / phrases auxquel(le)s le plugin réagira via les interactions de Jeedom. - **Panel** : permet d'afficher le panel (Menu Accueil → Caméra) et d'avoir une vue sur l'ensemble de vos caméras (voir plus bas). N'oubliez pas d'activer le panel dans la configuration du plugin pour y avoir accès plus tard. @@ -31,13 +31,14 @@ Ici vous avez les informations principales de votre caméra : - **Port** : le port pour sur lequel joindre la caméra. - **Protocole** : le protocole de communication de votre caméra (http ou https). - **Nom d'utilisateur** : nom d'utilisateur pour se connecter à la caméra (si nécessaire). Attention le plugin ne supporte pas les caractères spéciaux (il faut donc se limiter aux chiffres, lettres minuscule/majuscule). -- **Mot de passe** : mot de passe pour se connecter à la caméra (si nécessaire).Attention le plugin fait un url_encode pour le nom d'utilisateur et mot de passe obligatoire pour certaine camera mais cela peut poser soucis pour d'autre, si vous avez un soucis essayez sans caractères spéciaux (se limiter aux chiffres, lettres minuscule/majuscule). +- **Mot de passe** : mot de passe pour se connecter à la caméra (si nécessaire). Attention, le plugin fait un url_encode pour le nom d'utilisateur et mot de passe obligatoire pour certaines cameras mais cela peut poser soucis pour d'autres, si vous avez un souci, essayez sans caractères spéciaux (se limiter aux chiffres, lettres minuscule/majuscule). - **URL de snapshot** : URL de "snapshot" de la caméra. Change en fonction des caméras. Attention à ne pas mettre une url de flux sous peine de planter Jeedom. Vous pouvez ajouter les tags \#username\# et \#password\#, qui seront automatiquement remplacés par le nom d'utilisateur et le mot de passe lors de l'utilisation de cette commande. - **URL du flux** : url du flux video de la caméra de type ``rtsp://#username#:#password#@#ip#:554/videoMain`` (exemple pour les caméras Foscam). -- **Stream du flux RTSP** : si vous etês en mode flux video (URL du flux remplis) alors vous pouvez voir la camera sous forme de flux video au lieu d'image par image. Attention cette option est très consommatrice de ressources et rend la 1er image très à arriver. -- **Previsualiser** : permet de voir si jeedom recupere bien le flux video (pensez bien a sauvegarder avant de test pour voir si vos modifications marchent) -- **Option flux video** : si vous etês en mode flux video (URL du flux remplis) alors vous pouvez passer des parametres suplementaire ici à ffmpeg et avconv (reservé aux experts) -- **Modèle** : permet de choisir le modèle de la caméra. Attention : si vous changez cela écrasera vos paramètres de configuration. +- **Stream du flux RTSP** : si vous etês en mode flux vidéo (URL du flux remplis), alors vous pouvez voir la caméra sous forme de flux vidéo au lieu d'image par image. Attention, cette option est très consommatrice de ressources et rend la 1re image très lente à arriver. +- **Convertir en x264 le flux RTSP** : si votre caméra est configurée en codec vidéo H265, convertit à la volée en H264. Attention, cette option est très consommatrice de ressources et augmente le décalage. +- **Previsualiser** : permet de voir si jeedom recupère bien le flux vidéo (pensez bien a sauvegarder avant de test pour voir si vos modifications marchent) +- **Option flux video** : si vous êtes en mode flux vidéo (URL du flux remplis), alors vous pouvez passer des paramètres supplémentaires ici à ffmpeg et avconv (reservé aux experts) +- **Modèle** : permet de choisir le modèle de la caméra. Attention : si vous changez, cela écrasera vos paramètres de configuration. Les paramètres ONVIF : - **Port ONVIF** : le port servant pour onvif @@ -48,7 +49,7 @@ Les paramètres ONVIF : > **NOTE** > -> Vous pouvez retrouver [ici](https://www.ispyconnect.com/cameras) des configuration pour pas mal de camera et donc pouvoir integrer votre camera vous meme à Jeedom si elle n'est pas dans la liste +> Vous pouvez retrouver [ici](https://www.ispyconnect.com/cameras) des configurations pour pas mal de cameras et donc pouvoir intégrer votre camera vous-même à Jeedom si elle n'est pas dans la liste ## Image @@ -157,4 +158,4 @@ Il faut bien entendu avant avoir créé une commande de type info sur votre cam >**Quelles sont les conditions pour que ma caméra soit compatible Jeedom (si elle n'est pas dans la liste de compatibilité) ?** > -> La seule condition c'est que la caméra possède une url qui renvoi une image (et bien une image pas un flux video). +> La seule condition c'est que la caméra possède une url qui renvoi une image (et bien une image pas un flux video). \ No newline at end of file diff --git a/plugin_info/install.php b/plugin_info/install.php index 2f1281f..d32710c 100644 --- a/plugin_info/install.php +++ b/plugin_info/install.php @@ -1,76 +1,78 @@ -. -*/ - -require_once dirname(__FILE__) . '/../../../core/php/core.inc.php'; - -function camera_install() { - $cron = cron::byClassAndFunction('camera', 'pull'); - if (!is_object($cron)) { - $cron = new cron(); - $cron->setClass('camera'); - $cron->setFunction('pull'); - $cron->setEnable(1); - $cron->setDeamon(1); - $cron->setDeamonSleepTime(1); - $cron->setSchedule('* * * * *'); - $cron->setTimeout(1440); - $cron->save(); - } - if(!com_shell::commandExists('avconv')){ - config::save('rtsp::engine','ffmpeg','camera'); - } - exec(system::getCmdSudo().' chmod +x '.__DIR__.'/../3rdparty/rtsp-to-hls.sh'); - jeedom::getApiKey('camera'); -} - -function camera_update() { - $cron = cron::byClassAndFunction('camera', 'pull'); - if (!is_object($cron)) { - $cron = new cron(); - $cron->setClass('camera'); - $cron->setFunction('pull'); - $cron->setEnable(1); - $cron->setDeamon(1); - $cron->setDeamonSleepTime(1); - $cron->setSchedule('* * * * *'); - $cron->setTimeout(1440); - $cron->save(); - } - foreach (camera::byType('camera') as $camera) { - $dir = calculPath(config::byKey('recordDir', 'camera')) . '/' . $camera->getId(); - foreach (ls($dir, '*') as $file) { - if ($file == 'movie_temp/' || strpos($file, '.mkv')) { - continue; - } - rename($dir.'/'.$file, $dir.'/'.str_replace(':','-', $file)); - } - $camera->save(); - } - if(!com_shell::commandExists('avconv')){ - config::save('rtsp::engine','ffmpeg','camera'); - } - exec(system::getCmdSudo().' chmod +x '.__DIR__.'/../3rdparty/rtsp-to-hls.sh'); - jeedom::getApiKey('camera'); -} - -function camera_remove() { - $cron = cron::byClassAndFunction('camera', 'pull'); - if (is_object($cron)) { - $cron->remove(); - } -} +. +*/ + +require_once dirname(__FILE__) . '/../../../core/php/core.inc.php'; + +function camera_install() { + $cron = cron::byClassAndFunction('camera', 'pull'); + if (!is_object($cron)) { + $cron = new cron(); + $cron->setClass('camera'); + $cron->setFunction('pull'); + $cron->setEnable(1); + $cron->setDeamon(1); + $cron->setDeamonSleepTime(1); + $cron->setSchedule('* * * * *'); + $cron->setTimeout(1440); + $cron->save(); + } + if(!com_shell::commandExists('avconv')){ + config::save('rtsp::engine','ffmpeg','camera'); + } + exec(system::getCmdSudo().' chmod +x '.__DIR__.'/../3rdparty/rtsp-to-hls-x264.sh'); + exec(system::getCmdSudo().' chmod +x '.__DIR__.'/../3rdparty/rtsp-to-hls-copy.sh'); + jeedom::getApiKey('camera'); +} + +function camera_update() { + $cron = cron::byClassAndFunction('camera', 'pull'); + if (!is_object($cron)) { + $cron = new cron(); + $cron->setClass('camera'); + $cron->setFunction('pull'); + $cron->setEnable(1); + $cron->setDeamon(1); + $cron->setDeamonSleepTime(1); + $cron->setSchedule('* * * * *'); + $cron->setTimeout(1440); + $cron->save(); + } + foreach (camera::byType('camera') as $camera) { + $dir = calculPath(config::byKey('recordDir', 'camera')) . '/' . $camera->getId(); + foreach (ls($dir, '*') as $file) { + if ($file == 'movie_temp/' || strpos($file, '.mkv')) { + continue; + } + rename($dir.'/'.$file, $dir.'/'.str_replace(':','-', $file)); + } + $camera->save(); + } + if(!com_shell::commandExists('avconv')){ + config::save('rtsp::engine','ffmpeg','camera'); + } + exec(system::getCmdSudo().' chmod +x '.__DIR__.'/../3rdparty/rtsp-to-hls-x264.sh'); + exec(system::getCmdSudo().' chmod +x '.__DIR__.'/../3rdparty/rtsp-to-hls-copy.sh'); + jeedom::getApiKey('camera'); +} + +function camera_remove() { + $cron = cron::byClassAndFunction('camera', 'pull'); + if (is_object($cron)) { + $cron->remove(); + } +} \ No newline at end of file From 1a7203b7eeccb1287e618e0d66888f567f2c8f34 Mon Sep 17 00:00:00 2001 From: Flobul Date: Tue, 30 Apr 2024 19:31:22 +0200 Subject: [PATCH 11/47] Update snapshot.php --- core/php/snapshot.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/php/snapshot.php b/core/php/snapshot.php index 958c491..1e0c212 100644 --- a/core/php/snapshot.php +++ b/core/php/snapshot.php @@ -24,7 +24,7 @@ if ($camera->getEqType_name() != 'camera') { die(); } -if ($camera->getConfiguration('localApiKey') != init('api')) { +if ($camera->getConfiguration('localApiKey') != init('apikey')) { die(); } ob_clean(); @@ -115,4 +115,4 @@ } echo $data; exit(); -} \ No newline at end of file +} From e6d6f2901431976a83937ea351343e424b98a5b2 Mon Sep 17 00:00:00 2001 From: Flobul Date: Tue, 30 Apr 2024 19:31:54 +0200 Subject: [PATCH 12/47] Update camera.class.php --- core/class/camera.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/class/camera.class.php b/core/class/camera.class.php index 9118968..ab80882 100644 --- a/core/class/camera.class.php +++ b/core/class/camera.class.php @@ -651,7 +651,7 @@ public function getUrl($_complement = '', $_flux = false) { '#password#' => urlencode($this->getConfiguration('password')), ); if ($_flux) { - return 'plugins/camera/core/php/snapshot.php?id=' . $this->getId() . '&api=' . $this->getConfiguration('localApiKey'); + return 'plugins/camera/core/php/snapshot.php?id=' . $this->getId() . '&apikey=' . $this->getConfiguration('localApiKey'); } $url = $this->getConfiguration('protocole', 'http'); $url .= '://'; @@ -1144,4 +1144,4 @@ public function execute($_options = null) { } /* * **********************Getteur Setteur*************************** */ -} \ No newline at end of file +} From b06e0449df95fdf4a57957ec7cd3a39daf6aea46 Mon Sep 17 00:00:00 2001 From: Flobul Date: Tue, 30 Apr 2024 19:32:47 +0200 Subject: [PATCH 13/47] Update snapshot.php --- core/php/snapshot.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/core/php/snapshot.php b/core/php/snapshot.php index 1e0c212..2e652d7 100644 --- a/core/php/snapshot.php +++ b/core/php/snapshot.php @@ -29,12 +29,9 @@ } ob_clean(); header('Content-Type: image/jpeg'); -try { + $data = $camera->getSnapshot(); -} catch (Exception $e) { - log::add('camera', 'info', 'TETETT' . json_encode(utils::o2a($e))); -} if (!is_string($data)) { die(); } From e589583de27a562e6f0a50abadd15c02c14c261f Mon Sep 17 00:00:00 2001 From: Flobul Date: Tue, 30 Apr 2024 19:35:05 +0200 Subject: [PATCH 14/47] Update snapshot.php --- core/php/snapshot.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/core/php/snapshot.php b/core/php/snapshot.php index 2e652d7..cde38b2 100644 --- a/core/php/snapshot.php +++ b/core/php/snapshot.php @@ -29,9 +29,7 @@ } ob_clean(); header('Content-Type: image/jpeg'); - $data = $camera->getSnapshot(); - if (!is_string($data)) { die(); } From 6ab0abaee9a828c2c829d1134180f1d1895ac8e7 Mon Sep 17 00:00:00 2001 From: Jenkins Date: Tue, 7 May 2024 23:21:54 +0000 Subject: [PATCH 15/47] [Jenkins] Updated translation --- core/i18n/de_DE.json | 7 ++++--- core/i18n/en_US.json | 7 ++++--- core/i18n/es_ES.json | 7 ++++--- core/i18n/fr_FR.json | 7 ++++--- core/i18n/id_ID.json | 7 ++++--- core/i18n/it_IT.json | 7 ++++--- core/i18n/ja_JP.json | 7 ++++--- core/i18n/pt_PT.json | 7 ++++--- core/i18n/ru_RU.json | 7 ++++--- core/i18n/tr.json | 7 ++++--- docs/de_DE/index.md | 15 ++++++++------- docs/en_US/index.md | 13 +++++++------ docs/es_ES/index.md | 13 +++++++------ docs/i18n/de_DE.json | 19 +++++++++++-------- docs/i18n/en_US.json | 19 +++++++++++-------- docs/i18n/es_ES.json | 19 +++++++++++-------- docs/i18n/fr_FR.json | 19 +++++++++++-------- docs/i18n/pt_PT.json | 19 +++++++++++-------- docs/pt_PT/index.md | 15 ++++++++------- 19 files changed, 125 insertions(+), 96 deletions(-) diff --git a/core/i18n/de_DE.json b/core/i18n/de_DE.json index bd981b4..df2185b 100644 --- a/core/i18n/de_DE.json +++ b/core/i18n/de_DE.json @@ -119,8 +119,9 @@ "URL du flux": "Feed-URL", "URL du flux, RTSP": "Stream-URL, RTSP", "Stream du flux RTSP": "Stream des RTSP-Streams", - "Option flux video": "Video-Stream-Option", - "Previsualiser": "Vorschau", + "Convertir en x264 le flux RTSP": "Konvertieren Sie den RTSP-Stream in x264", + "Option flux vidéo": "Video-Stream-Option", + "Prévisualiser": "Vorschau", "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation": "Vergessen Sie nicht, vor der Vorschau zu speichern, um Ihre Änderungen anzuzeigen", "Position sur le panel": "Position auf dem Panel", "Informations": "Information", @@ -138,7 +139,7 @@ "Normal": "Normal", "Vidéo": "Video", "Durée maximum d'un enregistrement (s)": "Maximale Dauer einer Aufnahme (n)", - "Toujours faire une video": "Mach immer ein Video", + "Toujours faire une vidéo": "Mach immer ein Video", "Nombre d'images par seconde de la vidéo": "Anzahl der Bilder pro Sekunde des Videos", "Supprimer toutes les captures de la caméra": "Löschen Sie alle Kameraaufnahmen", "Commande ON": "EIN-Befehl", diff --git a/core/i18n/en_US.json b/core/i18n/en_US.json index 75a7d4c..96cc2f1 100644 --- a/core/i18n/en_US.json +++ b/core/i18n/en_US.json @@ -119,8 +119,9 @@ "URL du flux": "Feed URL", "URL du flux, RTSP": "URL of RTSP stream", "Stream du flux RTSP": "Stream of RTSP stream", - "Option flux video": "Video stream option", - "Previsualiser": "Preview", + "Convertir en x264 le flux RTSP": "Convert RTSP stream to x264", + "Option flux vidéo": "Video stream option", + "Prévisualiser": "Preview", "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation": "Don't forget to save to see your changes before previewing", "Position sur le panel": "Positon on the panel", "Informations": "Information", @@ -138,7 +139,7 @@ "Normal": "Normal", "Vidéo": "Video", "Durée maximum d'un enregistrement (s)": "Maximum duration of a recording (s)", - "Toujours faire une video": "Always make a video", + "Toujours faire une vidéo": "Always make a video", "Nombre d'images par seconde de la vidéo": "Number of frames per second of the video", "Supprimer toutes les captures de la caméra": "Delete all camera captures", "Commande ON": "ON command", diff --git a/core/i18n/es_ES.json b/core/i18n/es_ES.json index f2ec0ff..a5c75e2 100644 --- a/core/i18n/es_ES.json +++ b/core/i18n/es_ES.json @@ -119,8 +119,9 @@ "URL du flux": "URL del feed", "URL du flux, RTSP": "URL de transmisión, RTSP", "Stream du flux RTSP": "Flujo de flujo RTSP", - "Option flux video": "Opción de transmisión de video", - "Previsualiser": "Avance", + "Convertir en x264 le flux RTSP": "Convertir transmisión RTSP a x264", + "Option flux vidéo": "Opción de transmisión de video", + "Prévisualiser": "Avance", "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation": "No olvide guardar para ver los cambios antes de obtener una vista previa", "Position sur le panel": "Posición en el panel", "Informations": "Información", @@ -138,7 +139,7 @@ "Normal": "Normal", "Vidéo": "Vídeo", "Durée maximum d'un enregistrement (s)": "Duración máxima de una grabación (s)", - "Toujours faire une video": "Siempre haz un video", + "Toujours faire une vidéo": "Siempre haz un video", "Nombre d'images par seconde de la vidéo": "Número de fotogramas por segundo del video", "Supprimer toutes les captures de la caméra": "Eliminar todas las capturas de cámara", "Commande ON": "Comando ON", diff --git a/core/i18n/fr_FR.json b/core/i18n/fr_FR.json index 7969041..58d7929 100644 --- a/core/i18n/fr_FR.json +++ b/core/i18n/fr_FR.json @@ -119,8 +119,9 @@ "URL du flux": "URL du flux", "URL du flux, RTSP": "URL du flux, RTSP", "Stream du flux RTSP": "Stream du flux RTSP", - "Option flux video": "Option flux video", - "Previsualiser": "Previsualiser", + "Convertir en x264 le flux RTSP": "Convertir en x264 le flux RTSP", + "Option flux vidéo": "Option flux vidéo", + "Prévisualiser": "Prévisualiser", "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation": "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation", "Position sur le panel": "Position sur le panel", "Informations": "Informations", @@ -138,7 +139,7 @@ "Normal": "Normal", "Vidéo": "Vidéo", "Durée maximum d'un enregistrement (s)": "Durée maximum d'un enregistrement (s)", - "Toujours faire une video": "Toujours faire une video", + "Toujours faire une vidéo": "Toujours faire une vidéo", "Nombre d'images par seconde de la vidéo": "Nombre d'images par seconde de la vidéo", "Supprimer toutes les captures de la caméra": "Supprimer toutes les captures de la caméra", "Commande ON": "Commande ON", diff --git a/core/i18n/id_ID.json b/core/i18n/id_ID.json index 6843544..39fb2da 100644 --- a/core/i18n/id_ID.json +++ b/core/i18n/id_ID.json @@ -119,8 +119,9 @@ "URL du flux": "URL du flux", "URL du flux, RTSP": "URL du flux, RTSP", "Stream du flux RTSP": "Stream du flux RTSP", - "Option flux video": "Option flux video", - "Previsualiser": "Previsualiser", + "Convertir en x264 le flux RTSP": "Convertir en x264 le flux RTSP", + "Option flux vidéo": "Option flux video", + "Prévisualiser": "Previsualiser", "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation": "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation", "Position sur le panel": "Position sur le panel", "Informations": "Informasi", @@ -138,7 +139,7 @@ "Normal": "Normal", "Vidéo": "Vidéo", "Durée maximum d'un enregistrement (s)": "Durée maximum d'un enregistrement (s)", - "Toujours faire une video": "Toujours faire une video", + "Toujours faire une vidéo": "Toujours faire une video", "Nombre d'images par seconde de la vidéo": "Nombre d'images par seconde de la vidéo", "Supprimer toutes les captures de la caméra": "Supprimer toutes les captures de la caméra", "Commande ON": "Commande ON", diff --git a/core/i18n/it_IT.json b/core/i18n/it_IT.json index 41abb4c..6634f04 100644 --- a/core/i18n/it_IT.json +++ b/core/i18n/it_IT.json @@ -119,8 +119,9 @@ "URL du flux": "URL du flux", "URL du flux, RTSP": "URL du flux, RTSP", "Stream du flux RTSP": "Stream du flux RTSP", - "Option flux video": "Option flux video", - "Previsualiser": "Previsualiser", + "Convertir en x264 le flux RTSP": "Convertir en x264 le flux RTSP", + "Option flux vidéo": "Option flux video", + "Prévisualiser": "Previsualiser", "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation": "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation", "Position sur le panel": "Position sur le panel", "Informations": "Informazioni", @@ -138,7 +139,7 @@ "Normal": "Normale", "Vidéo": "Vidéo", "Durée maximum d'un enregistrement (s)": "Durée maximum d'un enregistrement (s)", - "Toujours faire une video": "Toujours faire une video", + "Toujours faire une vidéo": "Toujours faire une video", "Nombre d'images par seconde de la vidéo": "Nombre d'images par seconde de la vidéo", "Supprimer toutes les captures de la caméra": "Supprimer toutes les captures de la caméra", "Commande ON": "Commande ON", diff --git a/core/i18n/ja_JP.json b/core/i18n/ja_JP.json index cd3b15c..58ffff6 100644 --- a/core/i18n/ja_JP.json +++ b/core/i18n/ja_JP.json @@ -119,8 +119,9 @@ "URL du flux": "URL du flux", "URL du flux, RTSP": "URL du flux, RTSP", "Stream du flux RTSP": "Stream du flux RTSP", - "Option flux video": "Option flux video", - "Previsualiser": "Previsualiser", + "Convertir en x264 le flux RTSP": "Convertir en x264 le flux RTSP", + "Option flux vidéo": "Option flux video", + "Prévisualiser": "Previsualiser", "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation": "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation", "Position sur le panel": "Position sur le panel", "Informations": "情報", @@ -138,7 +139,7 @@ "Normal": "ノーマル", "Vidéo": "ビデオ", "Durée maximum d'un enregistrement (s)": "Durée maximum d'un enregistrement (s)", - "Toujours faire une video": "Toujours faire une video", + "Toujours faire une vidéo": "Toujours faire une video", "Nombre d'images par seconde de la vidéo": "Nombre d'images par seconde de la vidéo", "Supprimer toutes les captures de la caméra": "Supprimer toutes les captures de la caméra", "Commande ON": "Commande ON", diff --git a/core/i18n/pt_PT.json b/core/i18n/pt_PT.json index 1abbf7f..314b32d 100644 --- a/core/i18n/pt_PT.json +++ b/core/i18n/pt_PT.json @@ -119,8 +119,9 @@ "URL du flux": "URL do feed", "URL du flux, RTSP": "URL de fluxo, RTSP", "Stream du flux RTSP": "Fluxo de fluxo RTSP", - "Option flux video": "Opção de transmissão de vídeo", - "Previsualiser": "Antevisão", + "Convertir en x264 le flux RTSP": "Converter fluxo RTSP para x264", + "Option flux vidéo": "Opção de transmissão de vídeo", + "Prévisualiser": "Antevisão", "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation": "Não se esqueça de salvar para ver suas alterações antes de visualizar", "Position sur le panel": "Posição no painel", "Informations": "Informação", @@ -138,7 +139,7 @@ "Normal": "Normal", "Vidéo": "Vídeo", "Durée maximum d'un enregistrement (s)": "Duração máxima de uma gravação", - "Toujours faire une video": "Sempre faça um vídeo", + "Toujours faire une vidéo": "Sempre faça um vídeo", "Nombre d'images par seconde de la vidéo": "Número de quadros por segundo do vídeo", "Supprimer toutes les captures de la caméra": "Excluir todas as capturas de câmera", "Commande ON": "Comando ON", diff --git a/core/i18n/ru_RU.json b/core/i18n/ru_RU.json index a2f851d..c9b9858 100644 --- a/core/i18n/ru_RU.json +++ b/core/i18n/ru_RU.json @@ -119,8 +119,9 @@ "URL du flux": "URL du flux", "URL du flux, RTSP": "URL du flux, RTSP", "Stream du flux RTSP": "Stream du flux RTSP", - "Option flux video": "Option flux video", - "Previsualiser": "Previsualiser", + "Convertir en x264 le flux RTSP": "Convertir en x264 le flux RTSP", + "Option flux vidéo": "Option flux video", + "Prévisualiser": "Previsualiser", "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation": "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation", "Position sur le panel": "Position sur le panel", "Informations": "Информация", @@ -138,7 +139,7 @@ "Normal": "нормальный", "Vidéo": "Vidéo", "Durée maximum d'un enregistrement (s)": "Durée maximum d'un enregistrement (s)", - "Toujours faire une video": "Toujours faire une video", + "Toujours faire une vidéo": "Toujours faire une video", "Nombre d'images par seconde de la vidéo": "Nombre d'images par seconde de la vidéo", "Supprimer toutes les captures de la caméra": "Supprimer toutes les captures de la caméra", "Commande ON": "Commande ON", diff --git a/core/i18n/tr.json b/core/i18n/tr.json index 9ea6eef..7a692fb 100644 --- a/core/i18n/tr.json +++ b/core/i18n/tr.json @@ -119,8 +119,9 @@ "URL du flux": "URL du flux", "URL du flux, RTSP": "URL du flux, RTSP", "Stream du flux RTSP": "Stream du flux RTSP", - "Option flux video": "Option flux video", - "Previsualiser": "Previsualiser", + "Convertir en x264 le flux RTSP": "Convertir en x264 le flux RTSP", + "Option flux vidéo": "Option flux video", + "Prévisualiser": "Previsualiser", "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation": "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation", "Position sur le panel": "Position sur le panel", "Informations": "Bilgiler", @@ -138,7 +139,7 @@ "Normal": "Normal", "Vidéo": "Vidéo", "Durée maximum d'un enregistrement (s)": "Durée maximum d'un enregistrement (s)", - "Toujours faire une video": "Toujours faire une video", + "Toujours faire une vidéo": "Toujours faire une video", "Nombre d'images par seconde de la vidéo": "Nombre d'images par seconde de la vidéo", "Supprimer toutes les captures de la caméra": "Supprimer toutes les captures de la caméra", "Commande ON": "Commande ON", diff --git a/docs/de_DE/index.md b/docs/de_DE/index.md index 9a39bb3..6bbf7e8 100644 --- a/docs/de_DE/index.md +++ b/docs/de_DE/index.md @@ -9,7 +9,7 @@ Plugin zum Erstellen und Verwalten von WLAN-Kameras (Anzeige und Aufzeichnung). Nach der Installation des Plugins müssen Sie es nur noch aktivieren. Einige Parameter müssen in der Plugin-Konfiguration eingegeben werden : - **Pfad aufzeichnen** : Gibt den Pfad an, in dem Jeedom die von Ihren Kameras aufgenommenen Bilder speichern soll (es wird nicht empfohlen, sie zu berühren). Wenn sich Ihr Pfad nicht im Jeedom-Installationspfad befindet, können Sie die Erfassungen in Jeedom nicht anzeigen. -- **Maximale Größe des Aufnahmeordners (MB)** : Gibt die maximale Größe an, die für den Ordner autorisiert ist, in dem die Fänge gespeichert sind (es wird nicht empfohlen, ihn zu berühren). Wenn diese Quote erreicht ist, löscht Jeedom die ältesten Fänge. +- **Maximale Größe des Aufnahmeordners (MB)** : Gibt die maximale Größe an, die für den Ordner autorisiert ist, in dem die Fänge gespeichert sind (es wird nicht empfohlen, ihn zu berühren). Wenn dieses Kontingent erreicht ist, löscht Jeedom die ältesten Aufnahmen. - **Das Kamera-Plugin muss auf Interaktionen reagieren** : Schlüsselwörter / Phrasen, auf die das Plugin über Jeedom-Interaktionen reagiert. - **Platte** : Mit dieser Option können Sie das Bedienfeld anzeigen (Startmenü → Kamera) und alle Ihre Kameras anzeigen (siehe unten)). Vergessen Sie nicht, das Panel in der Konfiguration des Plugins zu aktivieren, um später darauf zugreifen zu können. @@ -31,13 +31,14 @@ Hier haben Sie die wichtigsten Informationen Ihrer Kamera : - **Hafen** : der Anschluss, an den die Kamera angeschlossen werden soll. - **Protokolle** : das Kommunikationsprotokoll Ihrer Kamera (http oder https). - **Benutzername** : Benutzername, um sich bei der Kamera anzumelden (falls erforderlich)). Bitte beachten Sie, dass das Plugin keine Sonderzeichen unterstützt (Sie müssen sich daher auf Zahlen, Klein- / Großbuchstaben beschränken). -- **Passwort** : Passwort für die Verbindung zur Kamera (falls erforderlich)).Bitte beachten Sie, dass das Plugin für einige Kameras einen url_encode für den Benutzernamen und das Passwort erfordert, dies jedoch bei anderen zu Problemen führen kann. Wenn Sie ein Problem haben, versuchen Sie es ohne Sonderzeichen (beschränken Sie sich auf Zahlen, Klein-/Großbuchstaben). +- **Passwort** : Passwort für die Verbindung zur Kamera (falls erforderlich)). Bitte beachten Sie, dass das Plugin für einige Kameras einen URL-Code für den Benutzernamen und das Passwort zwingend vorschreibt, dies kann jedoch bei anderen zu Problemen führen. Wenn Sie ein Problem haben, versuchen Sie es ohne Sonderzeichen (beschränken Sie sich auf Zahlen, Kleinbuchstaben/Großbuchstaben)). - **Snapshot-URL** : Kamera-Snapshot-URL. Ändern Sie je nach Kamera. Achten Sie darauf, dass Sie keine Flow-URL unter die Strafe des Absturzes von Jeedom stellen. Sie können die Tags \ hinzufügen#username\# und \#password\#, Diese werden bei Verwendung dieses Befehls automatisch durch den Benutzernamen und das Kennwort ersetzt. - **Feed-URL** : Typ Kamera Video Stream URL ``rtsp://#username#:#password#@#ip#:554/videoMain`` (Beispiel für Foscam-Kameras). -- **RTSP-Stream-Stream** : Wenn Sie sich im Videostream-Modus befinden (Stream-URL ausgefüllt), können Sie die Kamera als Videostream anstelle von Frame für Frame sehen. Bitte beachten Sie, dass diese Option viele Ressourcen verbraucht und das erste Bild sehr schnell ankommt. +- **RTSP-Stream-Stream** : Wenn Sie sich im Videostream-Modus befinden (Stream-URLs ausgefüllt), können Sie die Kamera als Videostream statt Bild für Bild anzeigen. Seien Sie vorsichtig, diese Option verbraucht viele Ressourcen und sorgt dafür, dass das erste Bild nur sehr langsam ankommt. +- **Konvertieren Sie den RTSP-Stream in x264** : Wenn Ihre Kamera im H265-Videocodec konfiguriert ist, erfolgt die Konvertierung im Handumdrehen in H264. Seien Sie vorsichtig, diese Option verbraucht viele Ressourcen und erhöht die Verzögerung. - **Vorschau** : ermöglicht Ihnen zu sehen, ob jeedom den Videostream wiederherstellt (denken Sie daran, vor dem Testen zu speichern, um zu sehen, ob Ihre Änderungen funktionieren) -- **Videostream-Option** : Wenn Sie sich im Video-Stream-Modus befinden (Stream-URL ausgefüllt), können Sie hier zusätzliche Parameter an ffmpeg und avconv übergeben (für Experten reserviert)) -- **Modell** : ermöglicht die Auswahl des Kameramodells. Achtung : Wenn Sie dies ändern, werden Ihre Konfigurationseinstellungen überschrieben. +- **Videostream-Option** : Wenn Sie sich im Videostream-Modus befinden (Stream-URLs gefüllt), können Sie hier zusätzliche Parameter an ffmpeg und avconv übergeben (für Experten reserviert)) +- **Modell** : ermöglicht die Auswahl des Kameramodells. Achtung : Wenn Sie es ändern, werden Ihre Konfigurationseinstellungen überschrieben. ONVIF-Einstellungen : - **ONVIF-Port** : der für onvif verwendete Port @@ -48,7 +49,7 @@ ONVIF-Einstellungen : > **Notiz** > -> Sie können finden [Hier](https://www.ispyconnect.com/cameras) Konfiguration für viele Kameras und daher in der Lage sein, Ihre Kamera selbst in Jeedom zu integrieren, wenn es nicht in der Liste ist +> Sie können finden [Hier](https://www.ispyconnect.com/cameras) Konfigurationen für eine ganze Reihe von Kameras und können so Ihre Kamera selbst in Jeedom integrieren, wenn sie nicht in der Liste enthalten ist ## Image @@ -157,4 +158,4 @@ Natürlich vor dem Erstellen eines Info-Befehls auf Ihrer Kamera >**Unter welchen Bedingungen muss meine Kamera Jeedom-kompatibel sein (sofern sie nicht in der Kompatibilitätsliste enthalten ist?) ?** > -> Die einzige Bedingung ist, dass die Kamera eine URL hat, die ein Bild zurücksendet (also ein Bild, kein Videostream). +> Die einzige Bedingung ist, dass die Kamera eine URL hat, die ein Bild zurücksendet (also ein Bild, kein Videostream). \ No newline at end of file diff --git a/docs/en_US/index.md b/docs/en_US/index.md index 54dc6a0..abe3798 100644 --- a/docs/en_US/index.md +++ b/docs/en_US/index.md @@ -9,7 +9,7 @@ Plugin to create and manage wifi cameras (display and recording). After installing the plugin, you just need to activate it. Some parameters must be entered in the plugin configuration : - **Record path** : indicates the path where Jeedom should store the images it captures from your cameras (it is not recommended to touch it). If your path is not in the Jeedom installation path then you will not be able to view the captures in Jeedom. -- **Maximum recording folder size (MB)** : indicates the maximum size authorized for the folder where the catches are saved (it is not recommended to touch it). If this quota is reached Jeedom will delete the oldest catches. +- **Maximum recording folder size (MB)** : indicates the maximum size authorized for the folder where the catches are saved (it is not recommended to touch it). If this quota is reached Jeedom will delete the oldest captures. - **The camera plugin must react to interactions** : keywords / phrases to which the plugin will react via Jeedom interactions. - **Panel** : allows you to display the panel (Home Menu → Camera) and to have a view of all your cameras (see below). Do not forget to activate the panel in the configuration of the plugin to access it later. @@ -31,12 +31,13 @@ Here you have the main information of your camera : - **Port** : the port for which to attach the camera. - **Protocol** : the communication protocol of your camera (http or https). - **Username** : username to log in to the camera (if required). Please note the plugin does not support special characters (you must therefore limit yourself to numbers, lowercase / uppercase letters). -- **Password** : password to connect to the camera (if necessary).Be careful, the plugin makes a url_encode for the username and password required for some cameras but this can cause problems for others, if you have a problem try without special characters (be limited to numbers, lowercase / uppercase letters). +- **Password** : password to connect to the camera (if necessary). Please note, the plugin makes a url_encode for the username and password mandatory for some cameras but this can cause problems for others, if you have a problem, try without special characters (limit yourself to numbers, lowercase letters/ capital letter). - **Snapshot URL** : Camera snapshot URL. Change depending on the cameras. Be careful not to put a flow url under penalty of crashing Jeedom. You can add the tags \#username\# and \#password\#, which will be automatically replaced by the username and password when using this command. - **Feed URL** : type camera video stream url ``rtsp://#username#:#password#@#ip#:554/videoMain`` (example for Foscam cameras). -- **RTSP stream stream** : if you are in video stream mode (stream URL filled in) then you can see the camera as a video stream instead of frame by frame. Please note this option consumes a lot of resources and makes the 1st image very to arrive. +- **RTSP stream stream** : If you are in video stream mode (stream URLs filled in), then you can view the camera as a video stream instead of frame by frame. Be careful, this option consumes a lot of resources and makes the first image very slow to arrive. +- **Convert RTSP stream to x264** : if your camera is configured in H265 video codec, converts on the fly to H264. Be careful, this option consumes a lot of resources and increases lag. - **Preview** : allows you to see if jeedom recovers the video stream (remember to save before testing to see if your modifications work) -- **Video stream option** : if you are in video stream mode (stream URL filled in) then you can pass additional parameters here to ffmpeg and avconv (reserved for experts) +- **Video stream option** : if you are in video stream mode (stream URLs filled), then you can pass additional parameters here to ffmpeg and avconv (reserved for experts) - **Model** : allows to choose the camera model. Be careful : if you change it will overwrite your configuration settings. ONVIF settings : @@ -48,7 +49,7 @@ ONVIF settings : > **NOTE** > -> You can find [here](https://www.ispyconnect.com/cameras) configuration for a lot of camera and therefore be able to integrate your camera yourself in Jeedom if it is not in the list +> You can find [here](https://www.ispyconnect.com/cameras) configurations for quite a few cameras and therefore be able to integrate your camera yourself into Jeedom if it is not in the list ## Image @@ -157,4 +158,4 @@ Obviously, before creating an info type command on your camera >**What are the conditions for my camera to be Jeedom compatible (if it is not in the compatibility list) ?** > -> The only condition is that the camera has an url which sends back an image (well an image not a video stream). +> The only condition is that the camera has an url which sends back an image (well an image not a video stream). \ No newline at end of file diff --git a/docs/es_ES/index.md b/docs/es_ES/index.md index 0244409..59dcc6a 100644 --- a/docs/es_ES/index.md +++ b/docs/es_ES/index.md @@ -31,13 +31,14 @@ Aquí tienes la información principal de tu cámara : - **Puerto** : el puerto para el que se conecta la cámara. - **Protocolo** : El protocolo de comunicación de su cámara (http o https). - **Nombre de usuario** : nombre de usuario para iniciar sesión en la cámara (si es necesario). Tenga en cuenta que el complemento no admite caracteres especiales (por lo tanto, debe limitarse a números, letras minúsculas / mayúsculas)). -- **Contraseña** : contraseña para conectarse a la cámara (si es necesario).Tenga en cuenta que el complemento crea un url_encode para el nombre de usuario y la contraseña requeridos para algunas cámaras, pero esto puede causar problemas a otras, si tiene un problema, intente sin caracteres especiales (limítese a números, letras minúsculas / mayúsculas). +- **Contraseña** : contraseña para conectarse a la cámara (si es necesario). Tenga en cuenta que el complemento hace que un código URL para el nombre de usuario y la contraseña sea obligatorio para algunas cámaras, pero esto puede causar problemas a otras. Si tiene algún problema, intente sin caracteres especiales (limítese a números, letras minúsculas/mayúsculas)). - **URL de instantánea** : URL de instantánea de cámara. Cambiar según las cámaras. Tenga cuidado de no poner una url de flujo bajo pena de estrellar Jeedom. Puedes agregar las etiquetas \#username\# y \#password\#, que será reemplazado automáticamente por el nombre de usuario y la contraseña al usar este comando. - **URL del feed** : escriba la URL de la secuencia de vídeo de la cámara ``rtsp://#username#:#password#@#ip#:554/videoMain`` (ejemplo para cámaras Foscam). -- **Flujo de flujo RTSP** : Si está en modo de transmisión de video (URL de transmisión completa), puede ver la cámara como una transmisión de video en lugar de cuadro por cuadro. Tenga en cuenta que esta opción consume muchos recursos y hace que la primera imagen esté muy por llegar. +- **Flujo de flujo RTSP** : Si está en el modo de transmisión de video (las URL de transmisión están completas), puede ver la cámara como una transmisión de video en lugar de cuadro por cuadro. Ojo, esta opción consume muchos recursos y hace que la primera imagen tarde mucho en llegar. +- **Convertir transmisión RTSP a x264** : Si su cámara está configurada en el códec de video H265, se convierte sobre la marcha a H264. Ojo, esta opción consume muchos recursos y aumenta el retraso. - **Avance** : le permite ver si jeedom recupera la transmisión de video (recuerde guardar antes de probar para ver si sus modificaciones funcionan) -- **Opción de transmisión de video** : Si está en modo de transmisión de video (URL de transmisión completa), puede pasar parámetros adicionales aquí a ffmpeg y avconv (reservado para expertos) -- **Modelo** : permite elegir el modelo de cámara. Atención : si lo cambia, sobrescribirá sus ajustes de configuración. +- **Opción de transmisión de video** : Si está en modo de transmisión de video (las URL de transmisión están completas), puede pasar parámetros adicionales aquí a ffmpeg y avconv (reservados para expertos)) +- **Modelo** : permite elegir el modelo de cámara. Atención : Si lo cambia, sobrescribirá sus ajustes de configuración. Configuración ONVIF : - **Puerto ONVIF** : el puerto utilizado para onvif @@ -48,7 +49,7 @@ Configuración ONVIF : > **Nota** > -> Puedes encontrar [aquí](https://www.ispyconnect.com/cameras) configuración para una gran cantidad de cámara y, por lo tanto, poder integrar su cámara usted mismo en Jeedom si no está en la lista +> Puedes encontrar [aquí](https://www.ispyconnect.com/cameras) configuraciones para bastantes cámaras y por lo tanto poder integrar tu cámara tú mismo en Jeedom si no está en la lista ## Image @@ -157,4 +158,4 @@ Obviamente, antes de crear un comando de tipo de información en su cámara >**¿Cuáles son las condiciones para que mi cámara sea compatible con Jeedom (si no está en la lista de compatibilidad) ?** > -> La única condición es que la cámara tenga una URL que envíe una imagen (bueno, una imagen, no una transmisión de video). +> La única condición es que la cámara tenga una URL que envíe una imagen (bueno, una imagen, no una transmisión de video). \ No newline at end of file diff --git a/docs/i18n/de_DE.json b/docs/i18n/de_DE.json index 2574a3b..66e518f 100644 --- a/docs/i18n/de_DE.json +++ b/docs/i18n/de_DE.json @@ -125,7 +125,7 @@ "Si votre chemin n'est pas dans le chemin d'installation de Jeedom alors vous ne pourrez visualiser les captures dans Jeedom": "Wenn sich Ihr Pfad nicht im Jeedom-Installationspfad befindet, können Sie die Erfassungen in Jeedom nicht anzeigen", "Taille maximum du dossier d'enregistrement (Mo": "Maximale Größe des Aufnahmeordners (MB", "indique la taille maximum autorisée pour le dossier où les captures sont enregistrées (il est déconseillé d'y toucher": "Gibt die maximale Größe an, die für den Ordner autorisiert ist, in dem die Fänge gespeichert sind (es wird nicht empfohlen, ihn zu berühren", - "Si ce quotas est atteint Jeedom supprimera les captures les plus anciennes": "Wenn diese Quote erreicht ist, löscht Jeedom die ältesten Fänge", + "Si ce quota est atteint Jeedom supprimera les captures les plus anciennes": "Wenn dieses Kontingent erreicht ist, löscht Jeedom die ältesten Aufnahmen", "Le plugin caméra doit réagir aux interactions": "Das Kamera-Plugin muss auf Interaktionen reagieren", "mots clés \/ phrases auxquel(le)s le plugin réagira via les interactions de Jeedom": "Schlüsselwörter \/ Phrasen, auf die das Plugin über Jeedom-Interaktionen reagiert", "permet d'afficher le panel (Menu Accueil → Caméra) et d'avoir une vue sur l'ensemble de vos caméras (voir plus bas": "Mit dieser Option können Sie das Bedienfeld anzeigen (Startmenü → Kamera) und alle Ihre Kameras anzeigen (siehe unten)", @@ -148,7 +148,7 @@ "Attention le plugin ne supporte pas les caractères spéciaux (il faut donc se limiter aux chiffres, lettres minuscule\/majuscule": "Bitte beachten Sie, dass das Plugin keine Sonderzeichen unterstützt (Sie müssen sich daher auf Zahlen, Klein- \/ Großbuchstaben beschränken", "Mot de passe": "Passwort", "mot de passe pour se connecter à la caméra (si nécessaire": "Passwort für die Verbindung zur Kamera (falls erforderlich)", - "Attention le plugin fait un url_encode pour le nom d'utilisateur et mot de passe obligatoire pour certaine camera mais cela peut poser soucis pour d'autre, si vous avez un soucis essayez sans caractères spéciaux (se limiter aux chiffres, lettres minuscule\/majuscule": "Bitte beachten Sie, dass das Plugin für einige Kameras einen url_encode für den Benutzernamen und das Passwort erfordert, dies jedoch bei anderen zu Problemen führen kann. Wenn Sie ein Problem haben, versuchen Sie es ohne Sonderzeichen (beschränken Sie sich auf Zahlen, Klein-\/Großbuchstaben", + "Attention, le plugin fait un url_encode pour le nom d'utilisateur et mot de passe obligatoire pour certaines cameras mais cela peut poser soucis pour d'autres, si vous avez un souci, essayez sans caractères spéciaux (se limiter aux chiffres, lettres minuscule\/majuscule": "Bitte beachten Sie, dass das Plugin für einige Kameras einen URL-Code für den Benutzernamen und das Passwort zwingend vorschreibt, dies kann jedoch bei anderen zu Problemen führen. Wenn Sie ein Problem haben, versuchen Sie es ohne Sonderzeichen (beschränken Sie sich auf Zahlen, Kleinbuchstaben\/Großbuchstaben)", "URL de snapshot": "Snapshot-URL", "URL de \"snapshot\" de la caméra": "Kamera-Snapshot-URL", "Change en fonction des caméras": "Ändern Sie je nach Kamera", @@ -160,14 +160,17 @@ "url du flux video de la caméra de type": "Typ Kamera Video Stream URL", "exemple pour les caméras Foscam": "Beispiel für Foscam-Kameras", "Stream du flux RTSP": "RTSP-Stream-Stream", - "si vous etês en mode flux video (URL du flux remplis) alors vous pouvez voir la camera sous forme de flux video au lieu d'image par image": "Wenn Sie sich im Videostream-Modus befinden (Stream-URL ausgefüllt), können Sie die Kamera als Videostream anstelle von Frame für Frame sehen", - "Attention cette option est très consommatrice de ressources et rend la 1er image très à arriver": "Bitte beachten Sie, dass diese Option viele Ressourcen verbraucht und das erste Bild sehr schnell ankommt", - "permet de voir si jeedom recupere bien le flux video (pensez bien a sauvegarder avant de test pour voir si vos modifications marchent": "ermöglicht Ihnen zu sehen, ob jeedom den Videostream wiederherstellt (denken Sie daran, vor dem Testen zu speichern, um zu sehen, ob Ihre Änderungen funktionieren", + "si vous etês en mode flux vidéo (URL du flux remplis), alors vous pouvez voir la caméra sous forme de flux vidéo au lieu d'image par image": "Wenn Sie sich im Videostream-Modus befinden (Stream-URLs ausgefüllt), können Sie die Kamera als Videostream statt Bild für Bild anzeigen", + "Attention, cette option est très consommatrice de ressources et rend la 1re image très lente à arriver": "Seien Sie vorsichtig, diese Option verbraucht viele Ressourcen und sorgt dafür, dass das erste Bild nur sehr langsam ankommt", + "Convertir en x264 le flux RTSP": "Konvertieren Sie den RTSP-Stream in x264", + "si votre caméra est configurée en codec vidéo H265, convertit à la volée en H264": "Wenn Ihre Kamera im H265-Videocodec konfiguriert ist, erfolgt die Konvertierung im Handumdrehen in H264", + "Attention, cette option est très consommatrice de ressources et augmente le décalage": "Seien Sie vorsichtig, diese Option verbraucht viele Ressourcen und erhöht die Verzögerung", + "permet de voir si jeedom recupère bien le flux vidéo (pensez bien a sauvegarder avant de test pour voir si vos modifications marchent": "ermöglicht Ihnen zu sehen, ob jeedom den Videostream wiederherstellt (denken Sie daran, vor dem Testen zu speichern, um zu sehen, ob Ihre Änderungen funktionieren", "Option flux video": "Videostream-Option", - "si vous etês en mode flux video (URL du flux remplis) alors vous pouvez passer des parametres suplementaire ici à ffmpeg et avconv (reservé aux experts": "Wenn Sie sich im Video-Stream-Modus befinden (Stream-URL ausgefüllt), können Sie hier zusätzliche Parameter an ffmpeg und avconv übergeben (für Experten reserviert)", + "si vous êtes en mode flux vidéo (URL du flux remplis), alors vous pouvez passer des paramètres supplémentaires ici à ffmpeg et avconv (reservé aux experts": "Wenn Sie sich im Videostream-Modus befinden (Stream-URLs gefüllt), können Sie hier zusätzliche Parameter an ffmpeg und avconv übergeben (für Experten reserviert)", "Modèle": "Modell", "permet de choisir le modèle de la caméra": "ermöglicht die Auswahl des Kameramodells", - "si vous changez cela écrasera vos paramètres de configuration": "Wenn Sie dies ändern, werden Ihre Konfigurationseinstellungen überschrieben", + "si vous changez, cela écrasera vos paramètres de configuration": "Wenn Sie es ändern, werden Ihre Konfigurationseinstellungen überschrieben", "Les paramètres ONVIF": "ONVIF-Einstellungen", "Port ONVIF": "ONVIF-Port", "le port servant pour onvif": "der für onvif verwendete Port", @@ -179,7 +182,7 @@ "délai avant commande de stop ptz": "Zeit bis zum PTZ-Stoppbefehl", "Il faut renseigner la commande de Stop sur chaque commande de mouvement PTZ dans le champ prévu à cet effet": "Sie müssen bei jedem PTZ-Bewegungsbefehl den Stoppbefehl in das dafür vorgesehene Feld eingeben", "Vous pouvez retrouver": "Sie können finden", - "des configuration pour pas mal de camera et donc pouvoir integrer votre camera vous meme à Jeedom si elle n'est pas dans la liste": "Konfiguration für viele Kameras und daher in der Lage sein, Ihre Kamera selbst in Jeedom zu integrieren, wenn es nicht in der Liste ist", + "des configurations pour pas mal de cameras et donc pouvoir intégrer votre camera vous-même à Jeedom si elle n'est pas dans la liste": "Konfigurationen für eine ganze Reihe von Kameras und können so Ihre Kamera selbst in Jeedom integrieren, wenn sie nicht in der Liste enthalten ist", "Cette partie vous permet de configurer la qualité de l'image": "In diesem Teil können Sie die Bildqualität konfigurieren", "En effet Jeedom diminue la taille de l'image ou la compresse avant de l'envoyer à votre navigateur": "In der Tat verringert Jeedom die Größe des Bildes oder der Komprimierung, bevor es an Ihren Browser gesendet wird", "Cela permet de gagner en fluidité des images (car elles sont moins lourdes": "Dies verbessert die Fließfähigkeit der Bilder (weil sie heller sind", diff --git a/docs/i18n/en_US.json b/docs/i18n/en_US.json index 5c1c0cf..c619e05 100644 --- a/docs/i18n/en_US.json +++ b/docs/i18n/en_US.json @@ -125,7 +125,7 @@ "Si votre chemin n'est pas dans le chemin d'installation de Jeedom alors vous ne pourrez visualiser les captures dans Jeedom": "If your path is not in the Jeedom installation path then you will not be able to view the captures in Jeedom", "Taille maximum du dossier d'enregistrement (Mo": "Maximum recording folder size (MB", "indique la taille maximum autorisée pour le dossier où les captures sont enregistrées (il est déconseillé d'y toucher": "indicates the maximum size authorized for the folder where the catches are saved (it is not recommended to touch it", - "Si ce quotas est atteint Jeedom supprimera les captures les plus anciennes": "If this quota is reached Jeedom will delete the oldest catches", + "Si ce quota est atteint Jeedom supprimera les captures les plus anciennes": "If this quota is reached Jeedom will delete the oldest captures", "Le plugin caméra doit réagir aux interactions": "The camera plugin must react to interactions", "mots clés \/ phrases auxquel(le)s le plugin réagira via les interactions de Jeedom": "keywords \/ phrases to which the plugin will react via Jeedom interactions", "permet d'afficher le panel (Menu Accueil → Caméra) et d'avoir une vue sur l'ensemble de vos caméras (voir plus bas": "allows you to display the panel (Home Menu → Camera) and to have a view of all your cameras (see below", @@ -148,7 +148,7 @@ "Attention le plugin ne supporte pas les caractères spéciaux (il faut donc se limiter aux chiffres, lettres minuscule\/majuscule": "Please note the plugin does not support special characters (you must therefore limit yourself to numbers, lowercase \/ uppercase letters", "Mot de passe": "Password", "mot de passe pour se connecter à la caméra (si nécessaire": "password to connect to the camera (if necessary", - "Attention le plugin fait un url_encode pour le nom d'utilisateur et mot de passe obligatoire pour certaine camera mais cela peut poser soucis pour d'autre, si vous avez un soucis essayez sans caractères spéciaux (se limiter aux chiffres, lettres minuscule\/majuscule": "Be careful, the plugin makes a url_encode for the username and password required for some cameras but this can cause problems for others, if you have a problem try without special characters (be limited to numbers, lowercase \/ uppercase letters", + "Attention, le plugin fait un url_encode pour le nom d'utilisateur et mot de passe obligatoire pour certaines cameras mais cela peut poser soucis pour d'autres, si vous avez un souci, essayez sans caractères spéciaux (se limiter aux chiffres, lettres minuscule\/majuscule": "Please note, the plugin makes a url_encode for the username and password mandatory for some cameras but this can cause problems for others, if you have a problem, try without special characters (limit yourself to numbers, lowercase letters\/ capital letter", "URL de snapshot": "Snapshot URL", "URL de \"snapshot\" de la caméra": "Camera snapshot URL", "Change en fonction des caméras": "Change depending on the cameras", @@ -160,14 +160,17 @@ "url du flux video de la caméra de type": "type camera video stream url", "exemple pour les caméras Foscam": "example for Foscam cameras", "Stream du flux RTSP": "RTSP stream stream", - "si vous etês en mode flux video (URL du flux remplis) alors vous pouvez voir la camera sous forme de flux video au lieu d'image par image": "if you are in video stream mode (stream URL filled in) then you can see the camera as a video stream instead of frame by frame", - "Attention cette option est très consommatrice de ressources et rend la 1er image très à arriver": "Please note this option consumes a lot of resources and makes the 1st image very to arrive", - "permet de voir si jeedom recupere bien le flux video (pensez bien a sauvegarder avant de test pour voir si vos modifications marchent": "allows you to see if jeedom recovers the video stream (remember to save before testing to see if your modifications work", + "si vous etês en mode flux vidéo (URL du flux remplis), alors vous pouvez voir la caméra sous forme de flux vidéo au lieu d'image par image": "If you are in video stream mode (stream URLs filled in), then you can view the camera as a video stream instead of frame by frame", + "Attention, cette option est très consommatrice de ressources et rend la 1re image très lente à arriver": "Be careful, this option consumes a lot of resources and makes the first image very slow to arrive", + "Convertir en x264 le flux RTSP": "Convert RTSP stream to x264", + "si votre caméra est configurée en codec vidéo H265, convertit à la volée en H264": "if your camera is configured in H265 video codec, converts on the fly to H264", + "Attention, cette option est très consommatrice de ressources et augmente le décalage": "Be careful, this option consumes a lot of resources and increases lag", + "permet de voir si jeedom recupère bien le flux vidéo (pensez bien a sauvegarder avant de test pour voir si vos modifications marchent": "allows you to see if jeedom recovers the video stream (remember to save before testing to see if your modifications work", "Option flux video": "Video stream option", - "si vous etês en mode flux video (URL du flux remplis) alors vous pouvez passer des parametres suplementaire ici à ffmpeg et avconv (reservé aux experts": "if you are in video stream mode (stream URL filled in) then you can pass additional parameters here to ffmpeg and avconv (reserved for experts", + "si vous êtes en mode flux vidéo (URL du flux remplis), alors vous pouvez passer des paramètres supplémentaires ici à ffmpeg et avconv (reservé aux experts": "if you are in video stream mode (stream URLs filled), then you can pass additional parameters here to ffmpeg and avconv (reserved for experts", "Modèle": "Model", "permet de choisir le modèle de la caméra": "allows to choose the camera model", - "si vous changez cela écrasera vos paramètres de configuration": "if you change it will overwrite your configuration settings", + "si vous changez, cela écrasera vos paramètres de configuration": "if you change it will overwrite your configuration settings", "Les paramètres ONVIF": "ONVIF settings", "Port ONVIF": "ONVIF port", "le port servant pour onvif": "the port used for onvif", @@ -179,7 +182,7 @@ "délai avant commande de stop ptz": "time before Ptz stop order", "Il faut renseigner la commande de Stop sur chaque commande de mouvement PTZ dans le champ prévu à cet effet": "You must enter the Stop command on each PTZ movement command in the field provided for this purpose", "Vous pouvez retrouver": "You can find", - "des configuration pour pas mal de camera et donc pouvoir integrer votre camera vous meme à Jeedom si elle n'est pas dans la liste": "configuration for a lot of camera and therefore be able to integrate your camera yourself in Jeedom if it is not in the list", + "des configurations pour pas mal de cameras et donc pouvoir intégrer votre camera vous-même à Jeedom si elle n'est pas dans la liste": "configurations for quite a few cameras and therefore be able to integrate your camera yourself into Jeedom if it is not in the list", "Cette partie vous permet de configurer la qualité de l'image": "This part allows you to configure the image quality", "En effet Jeedom diminue la taille de l'image ou la compresse avant de l'envoyer à votre navigateur": "Indeed Jeedom decreases the size of the image or the compress before sending it to your browser", "Cela permet de gagner en fluidité des images (car elles sont moins lourdes": "This improves the fluidity of the images (because they are lighter", diff --git a/docs/i18n/es_ES.json b/docs/i18n/es_ES.json index f3effe0..511ecc0 100644 --- a/docs/i18n/es_ES.json +++ b/docs/i18n/es_ES.json @@ -125,7 +125,7 @@ "Si votre chemin n'est pas dans le chemin d'installation de Jeedom alors vous ne pourrez visualiser les captures dans Jeedom": "Si su ruta no está en la ruta de instalación de Jeedom, entonces no podrá ver las capturas en Jeedom", "Taille maximum du dossier d'enregistrement (Mo": "Tamaño máximo de carpeta de grabación (MB", "indique la taille maximum autorisée pour le dossier où les captures sont enregistrées (il est déconseillé d'y toucher": "indica el tamaño máximo autorizado para la carpeta donde se guardan las capturas (no se recomienda tocarlo", - "Si ce quotas est atteint Jeedom supprimera les captures les plus anciennes": "Si se alcanza esta cuota, Jeedom eliminará las capturas más antiguas", + "Si ce quota est atteint Jeedom supprimera les captures les plus anciennes": "Si se alcanza esta cuota, Jeedom eliminará las capturas más antiguas", "Le plugin caméra doit réagir aux interactions": "El complemento de la cámara debe reaccionar a las interacciones", "mots clés \/ phrases auxquel(le)s le plugin réagira via les interactions de Jeedom": "palabras clave \/ frases a las que reaccionará el complemento a través de las interacciones de Jeedom", "permet d'afficher le panel (Menu Accueil → Caméra) et d'avoir une vue sur l'ensemble de vos caméras (voir plus bas": "le permite mostrar el panel (Menú de inicio → Cámara) y tener una vista de todas sus cámaras (ver más abajo", @@ -148,7 +148,7 @@ "Attention le plugin ne supporte pas les caractères spéciaux (il faut donc se limiter aux chiffres, lettres minuscule\/majuscule": "Tenga en cuenta que el complemento no admite caracteres especiales (por lo tanto, debe limitarse a números, letras minúsculas \/ mayúsculas)", "Mot de passe": "Contraseña", "mot de passe pour se connecter à la caméra (si nécessaire": "contraseña para conectarse a la cámara (si es necesario", - "Attention le plugin fait un url_encode pour le nom d'utilisateur et mot de passe obligatoire pour certaine camera mais cela peut poser soucis pour d'autre, si vous avez un soucis essayez sans caractères spéciaux (se limiter aux chiffres, lettres minuscule\/majuscule": "Tenga en cuenta que el complemento crea un url_encode para el nombre de usuario y la contraseña requeridos para algunas cámaras, pero esto puede causar problemas a otras, si tiene un problema, intente sin caracteres especiales (limítese a números, letras minúsculas \/ mayúsculas", + "Attention, le plugin fait un url_encode pour le nom d'utilisateur et mot de passe obligatoire pour certaines cameras mais cela peut poser soucis pour d'autres, si vous avez un souci, essayez sans caractères spéciaux (se limiter aux chiffres, lettres minuscule\/majuscule": "Tenga en cuenta que el complemento hace que un código URL para el nombre de usuario y la contraseña sea obligatorio para algunas cámaras, pero esto puede causar problemas a otras. Si tiene algún problema, intente sin caracteres especiales (limítese a números, letras minúsculas\/mayúsculas)", "URL de snapshot": "URL de instantánea", "URL de \"snapshot\" de la caméra": "URL de instantánea de cámara", "Change en fonction des caméras": "Cambiar según las cámaras", @@ -160,14 +160,17 @@ "url du flux video de la caméra de type": "escriba la URL de la secuencia de vídeo de la cámara", "exemple pour les caméras Foscam": "ejemplo para cámaras Foscam", "Stream du flux RTSP": "Flujo de flujo RTSP", - "si vous etês en mode flux video (URL du flux remplis) alors vous pouvez voir la camera sous forme de flux video au lieu d'image par image": "Si está en modo de transmisión de video (URL de transmisión completa), puede ver la cámara como una transmisión de video en lugar de cuadro por cuadro", - "Attention cette option est très consommatrice de ressources et rend la 1er image très à arriver": "Tenga en cuenta que esta opción consume muchos recursos y hace que la primera imagen esté muy por llegar", - "permet de voir si jeedom recupere bien le flux video (pensez bien a sauvegarder avant de test pour voir si vos modifications marchent": "le permite ver si jeedom recupera la transmisión de video (recuerde guardar antes de probar para ver si sus modificaciones funcionan", + "si vous etês en mode flux vidéo (URL du flux remplis), alors vous pouvez voir la caméra sous forme de flux vidéo au lieu d'image par image": "Si está en el modo de transmisión de video (las URL de transmisión están completas), puede ver la cámara como una transmisión de video en lugar de cuadro por cuadro", + "Attention, cette option est très consommatrice de ressources et rend la 1re image très lente à arriver": "Ojo, esta opción consume muchos recursos y hace que la primera imagen tarde mucho en llegar", + "Convertir en x264 le flux RTSP": "Convertir transmisión RTSP a x264", + "si votre caméra est configurée en codec vidéo H265, convertit à la volée en H264": "Si su cámara está configurada en el códec de video H265, se convierte sobre la marcha a H264", + "Attention, cette option est très consommatrice de ressources et augmente le décalage": "Ojo, esta opción consume muchos recursos y aumenta el retraso", + "permet de voir si jeedom recupère bien le flux vidéo (pensez bien a sauvegarder avant de test pour voir si vos modifications marchent": "le permite ver si jeedom recupera la transmisión de video (recuerde guardar antes de probar para ver si sus modificaciones funcionan", "Option flux video": "Opción de transmisión de video", - "si vous etês en mode flux video (URL du flux remplis) alors vous pouvez passer des parametres suplementaire ici à ffmpeg et avconv (reservé aux experts": "Si está en modo de transmisión de video (URL de transmisión completa), puede pasar parámetros adicionales aquí a ffmpeg y avconv (reservado para expertos", + "si vous êtes en mode flux vidéo (URL du flux remplis), alors vous pouvez passer des paramètres supplémentaires ici à ffmpeg et avconv (reservé aux experts": "Si está en modo de transmisión de video (las URL de transmisión están completas), puede pasar parámetros adicionales aquí a ffmpeg y avconv (reservados para expertos)", "Modèle": "Modelo", "permet de choisir le modèle de la caméra": "permite elegir el modelo de cámara", - "si vous changez cela écrasera vos paramètres de configuration": "si lo cambia, sobrescribirá sus ajustes de configuración", + "si vous changez, cela écrasera vos paramètres de configuration": "Si lo cambia, sobrescribirá sus ajustes de configuración", "Les paramètres ONVIF": "Configuración ONVIF", "Port ONVIF": "Puerto ONVIF", "le port servant pour onvif": "el puerto utilizado para onvif", @@ -179,7 +182,7 @@ "délai avant commande de stop ptz": "tiempo antes de la orden de parada de Ptz", "Il faut renseigner la commande de Stop sur chaque commande de mouvement PTZ dans le champ prévu à cet effet": "Debe ingresar el comando Detener en cada comando de movimiento PTZ en el campo provisto para este propósito", "Vous pouvez retrouver": "Puedes encontrar", - "des configuration pour pas mal de camera et donc pouvoir integrer votre camera vous meme à Jeedom si elle n'est pas dans la liste": "configuración para una gran cantidad de cámara y, por lo tanto, poder integrar su cámara usted mismo en Jeedom si no está en la lista", + "des configurations pour pas mal de cameras et donc pouvoir intégrer votre camera vous-même à Jeedom si elle n'est pas dans la liste": "configuraciones para bastantes cámaras y por lo tanto poder integrar tu cámara tú mismo en Jeedom si no está en la lista", "Cette partie vous permet de configurer la qualité de l'image": "Esta parte le permite configurar la calidad de la imagen", "En effet Jeedom diminue la taille de l'image ou la compresse avant de l'envoyer à votre navigateur": "De hecho, Jeedom disminuye el tamaño de la imagen o la compresa antes de enviarla a su navegador", "Cela permet de gagner en fluidité des images (car elles sont moins lourdes": "Esto mejora la fluidez de las imágenes (porque son más claras", diff --git a/docs/i18n/fr_FR.json b/docs/i18n/fr_FR.json index 7ae857b..994587c 100644 --- a/docs/i18n/fr_FR.json +++ b/docs/i18n/fr_FR.json @@ -114,7 +114,7 @@ "Si votre chemin n'est pas dans le chemin d'installation de Jeedom alors vous ne pourrez visualiser les captures dans Jeedom": "Si votre chemin n'est pas dans le chemin d'installation de Jeedom alors vous ne pourrez visualiser les captures dans Jeedom", "Taille maximum du dossier d'enregistrement (Mo": "Taille maximum du dossier d'enregistrement (Mo", "indique la taille maximum autorisée pour le dossier où les captures sont enregistrées (il est déconseillé d'y toucher": "indique la taille maximum autorisée pour le dossier où les captures sont enregistrées (il est déconseillé d'y toucher", - "Si ce quotas est atteint Jeedom supprimera les captures les plus anciennes": "Si ce quotas est atteint Jeedom supprimera les captures les plus anciennes", + "Si ce quota est atteint Jeedom supprimera les captures les plus anciennes": "Si ce quota est atteint Jeedom supprimera les captures les plus anciennes", "Le plugin caméra doit réagir aux interactions": "Le plugin caméra doit réagir aux interactions", "mots clés \/ phrases auxquel(le)s le plugin réagira via les interactions de Jeedom": "mots clés \/ phrases auxquel(le)s le plugin réagira via les interactions de Jeedom", "Panel": "Panel", @@ -146,7 +146,7 @@ "Attention le plugin ne supporte pas les caractères spéciaux (il faut donc se limiter aux chiffres, lettres minuscule\/majuscule": "Attention le plugin ne supporte pas les caractères spéciaux (il faut donc se limiter aux chiffres, lettres minuscule\/majuscule", "Mot de passe": "Mot de passe", "mot de passe pour se connecter à la caméra (si nécessaire": "mot de passe pour se connecter à la caméra (si nécessaire", - "Attention le plugin fait un url_encode pour le nom d'utilisateur et mot de passe obligatoire pour certaine camera mais cela peut poser soucis pour d'autre, si vous avez un soucis essayez sans caractères spéciaux (se limiter aux chiffres, lettres minuscule\/majuscule": "Attention le plugin fait un url_encode pour le nom d'utilisateur et mot de passe obligatoire pour certaine camera mais cela peut poser soucis pour d'autre, si vous avez un soucis essayez sans caractères spéciaux (se limiter aux chiffres, lettres minuscule\/majuscule", + "Attention, le plugin fait un url_encode pour le nom d'utilisateur et mot de passe obligatoire pour certaines cameras mais cela peut poser soucis pour d'autres, si vous avez un souci, essayez sans caractères spéciaux (se limiter aux chiffres, lettres minuscule\/majuscule": "Attention, le plugin fait un url_encode pour le nom d'utilisateur et mot de passe obligatoire pour certaines cameras mais cela peut poser soucis pour d'autres, si vous avez un souci, essayez sans caractères spéciaux (se limiter aux chiffres, lettres minuscule\/majuscule", "URL de snapshot": "URL de snapshot", "URL de \"snapshot\" de la caméra": "URL de \"snapshot\" de la caméra", "Change en fonction des caméras": "Change en fonction des caméras", @@ -158,16 +158,19 @@ "url du flux video de la caméra de type": "url du flux video de la caméra de type", "exemple pour les caméras Foscam": "exemple pour les caméras Foscam", "Stream du flux RTSP": "Stream du flux RTSP", - "si vous etês en mode flux video (URL du flux remplis) alors vous pouvez voir la camera sous forme de flux video au lieu d'image par image": "si vous etês en mode flux video (URL du flux remplis) alors vous pouvez voir la camera sous forme de flux video au lieu d'image par image", - "Attention cette option est très consommatrice de ressources et rend la 1er image très à arriver": "Attention cette option est très consommatrice de ressources et rend la 1er image très à arriver", + "si vous etês en mode flux vidéo (URL du flux remplis), alors vous pouvez voir la caméra sous forme de flux vidéo au lieu d'image par image": "si vous etês en mode flux vidéo (URL du flux remplis), alors vous pouvez voir la caméra sous forme de flux vidéo au lieu d'image par image", + "Attention, cette option est très consommatrice de ressources et rend la 1re image très lente à arriver": "Attention, cette option est très consommatrice de ressources et rend la 1re image très lente à arriver", + "Convertir en x264 le flux RTSP": "Convertir en x264 le flux RTSP", + "si votre caméra est configurée en codec vidéo H265, convertit à la volée en H264": "si votre caméra est configurée en codec vidéo H265, convertit à la volée en H264", + "Attention, cette option est très consommatrice de ressources et augmente le décalage": "Attention, cette option est très consommatrice de ressources et augmente le décalage", "Previsualiser": "Previsualiser", - "permet de voir si jeedom recupere bien le flux video (pensez bien a sauvegarder avant de test pour voir si vos modifications marchent": "permet de voir si jeedom recupere bien le flux video (pensez bien a sauvegarder avant de test pour voir si vos modifications marchent", + "permet de voir si jeedom recupère bien le flux vidéo (pensez bien a sauvegarder avant de test pour voir si vos modifications marchent": "permet de voir si jeedom recupère bien le flux vidéo (pensez bien a sauvegarder avant de test pour voir si vos modifications marchent", "Option flux video": "Option flux video", - "si vous etês en mode flux video (URL du flux remplis) alors vous pouvez passer des parametres suplementaire ici à ffmpeg et avconv (reservé aux experts": "si vous etês en mode flux video (URL du flux remplis) alors vous pouvez passer des parametres suplementaire ici à ffmpeg et avconv (reservé aux experts", + "si vous êtes en mode flux vidéo (URL du flux remplis), alors vous pouvez passer des paramètres supplémentaires ici à ffmpeg et avconv (reservé aux experts": "si vous êtes en mode flux vidéo (URL du flux remplis), alors vous pouvez passer des paramètres supplémentaires ici à ffmpeg et avconv (reservé aux experts", "Modèle": "Modèle", "permet de choisir le modèle de la caméra": "permet de choisir le modèle de la caméra", "Attention": "Attention", - "si vous changez cela écrasera vos paramètres de configuration": "si vous changez cela écrasera vos paramètres de configuration", + "si vous changez, cela écrasera vos paramètres de configuration": "si vous changez, cela écrasera vos paramètres de configuration", "Les paramètres ONVIF": "Les paramètres ONVIF", "Port ONVIF": "Port ONVIF", "le port servant pour onvif": "le port servant pour onvif", @@ -180,7 +183,7 @@ "Il faut renseigner la commande de Stop sur chaque commande de mouvement PTZ dans le champ prévu à cet effet": "Il faut renseigner la commande de Stop sur chaque commande de mouvement PTZ dans le champ prévu à cet effet", "NOTE": "NOTE", "Vous pouvez retrouver": "Vous pouvez retrouver", - "des configuration pour pas mal de camera et donc pouvoir integrer votre camera vous meme à Jeedom si elle n'est pas dans la liste": "des configuration pour pas mal de camera et donc pouvoir integrer votre camera vous meme à Jeedom si elle n'est pas dans la liste", + "des configurations pour pas mal de cameras et donc pouvoir intégrer votre camera vous-même à Jeedom si elle n'est pas dans la liste": "des configurations pour pas mal de cameras et donc pouvoir intégrer votre camera vous-même à Jeedom si elle n'est pas dans la liste", "Image": "Image", "Cette partie vous permet de configurer la qualité de l'image": "Cette partie vous permet de configurer la qualité de l'image", "En effet Jeedom diminue la taille de l'image ou la compresse avant de l'envoyer à votre navigateur": "En effet Jeedom diminue la taille de l'image ou la compresse avant de l'envoyer à votre navigateur", diff --git a/docs/i18n/pt_PT.json b/docs/i18n/pt_PT.json index 9502949..ebece58 100644 --- a/docs/i18n/pt_PT.json +++ b/docs/i18n/pt_PT.json @@ -125,7 +125,7 @@ "Si votre chemin n'est pas dans le chemin d'installation de Jeedom alors vous ne pourrez visualiser les captures dans Jeedom": "Se o seu caminho não estiver no caminho de instalação do Jeedom, você não poderá visualizar as capturas no Jeedom", "Taille maximum du dossier d'enregistrement (Mo": "Tamanho máximo da pasta de gravação (MB", "indique la taille maximum autorisée pour le dossier où les captures sont enregistrées (il est déconseillé d'y toucher": "indica o tamanho máximo autorizado para a pasta onde as capturas são salvas (não é recomendável tocá-lo", - "Si ce quotas est atteint Jeedom supprimera les captures les plus anciennes": "Se essa cota for atingida, o Jeedom excluirá as capturas mais antigas", + "Si ce quota est atteint Jeedom supprimera les captures les plus anciennes": "Se esta cota for atingida, o Jeedom excluirá as capturas mais antigas", "Le plugin caméra doit réagir aux interactions": "O plug-in da câmera deve reagir às interações", "mots clés \/ phrases auxquel(le)s le plugin réagira via les interactions de Jeedom": "palavras-chave \/ frases às quais o plugin reagirá por meio de interações Jeedom", "permet d'afficher le panel (Menu Accueil → Caméra) et d'avoir une vue sur l'ensemble de vos caméras (voir plus bas": "permite que você exiba o painel (Menu inicial → Câmera) e tenha uma visão de todas as suas câmeras (veja abaixo", @@ -148,7 +148,7 @@ "Attention le plugin ne supporte pas les caractères spéciaux (il faut donc se limiter aux chiffres, lettres minuscule\/majuscule": "Observe que o plug-in não suporta caracteres especiais (você deve, portanto, limitar-se a números, letras minúsculas \/ maiúsculas", "Mot de passe": "Senha", "mot de passe pour se connecter à la caméra (si nécessaire": "senha para conectar-se à câmera (se necessário", - "Attention le plugin fait un url_encode pour le nom d'utilisateur et mot de passe obligatoire pour certaine camera mais cela peut poser soucis pour d'autre, si vous avez un soucis essayez sans caractères spéciaux (se limiter aux chiffres, lettres minuscule\/majuscule": "Observe que o plugin cria um url_encode para o nome de usuário e senha necessários para algumas câmeras, mas isso pode causar problemas para outras, se você tiver um problema, tente sem caracteres especiais (limitar-se a números, letras minúsculas \/ maiúsculas", + "Attention, le plugin fait un url_encode pour le nom d'utilisateur et mot de passe obligatoire pour certaines cameras mais cela peut poser soucis pour d'autres, si vous avez un souci, essayez sans caractères spéciaux (se limiter aux chiffres, lettres minuscule\/majuscule": "Observe que o plugin torna obrigatório um url_encode para o nome de usuário e senha para algumas câmeras, mas isso pode causar problemas para outras, se você tiver um problema, tente sem caracteres especiais (limite-se a números, letras minúsculas\/maiúsculas)", "URL de snapshot": "URL do instantâneo", "URL de \"snapshot\" de la caméra": "URL de instantâneo da câmera", "Change en fonction des caméras": "Mude dependendo das câmeras", @@ -160,14 +160,17 @@ "url du flux video de la caméra de type": "digite o URL do stream de vídeo da câmera", "exemple pour les caméras Foscam": "exemplo para câmeras Foscam", "Stream du flux RTSP": "Stream stream RTSP", - "si vous etês en mode flux video (URL du flux remplis) alors vous pouvez voir la camera sous forme de flux video au lieu d'image par image": "se você estiver no modo de stream de vídeo (URL do stream preenchido), você pode ver a câmera como um stream de vídeo em vez de quadro a quadro", - "Attention cette option est très consommatrice de ressources et rend la 1er image très à arriver": "Observe que esta opção consome muitos recursos e faz com que a 1ª imagem chegue muito", - "permet de voir si jeedom recupere bien le flux video (pensez bien a sauvegarder avant de test pour voir si vos modifications marchent": "permite-lhe ver se o jeedom recupera o fluxo de vídeo (lembre-se de guardar antes de testar para ver se as suas modificações funcionam", + "si vous etês en mode flux vidéo (URL du flux remplis), alors vous pouvez voir la caméra sous forme de flux vidéo au lieu d'image par image": "Se você estiver no modo de transmissão de vídeo (URLs de transmissão preenchidos), você poderá visualizar a câmera como uma transmissão de vídeo em vez de quadro a quadro", + "Attention, cette option est très consommatrice de ressources et rend la 1re image très lente à arriver": "Cuidado, esta opção consome muitos recursos e torna a chegada da primeira imagem muito lenta", + "Convertir en x264 le flux RTSP": "Converter fluxo RTSP para x264", + "si votre caméra est configurée en codec vidéo H265, convertit à la volée en H264": "se sua câmera estiver configurada no codec de vídeo H265, converte instantaneamente para H264", + "Attention, cette option est très consommatrice de ressources et augmente le décalage": "Cuidado, esta opção consome muitos recursos e aumenta o lag", + "permet de voir si jeedom recupère bien le flux vidéo (pensez bien a sauvegarder avant de test pour voir si vos modifications marchent": "permite-lhe ver se o jeedom recupera o fluxo de vídeo (lembre-se de guardar antes de testar para ver se as suas modificações funcionam", "Option flux video": "Opção de transmissão de vídeo", - "si vous etês en mode flux video (URL du flux remplis) alors vous pouvez passer des parametres suplementaire ici à ffmpeg et avconv (reservé aux experts": "se você estiver no modo de fluxo de vídeo (URL do fluxo preenchido), você pode passar parâmetros adicionais aqui para ffmpeg e avconv (reservado para especialistas", + "si vous êtes en mode flux vidéo (URL du flux remplis), alors vous pouvez passer des paramètres supplémentaires ici à ffmpeg et avconv (reservé aux experts": "se você estiver no modo de transmissão de vídeo (URLs de transmissão preenchidos), poderá passar parâmetros adicionais aqui para ffmpeg e avconv (reservados para especialistas", "Modèle": "Modelo", "permet de choisir le modèle de la caméra": "permite escolher o modelo da câmera", - "si vous changez cela écrasera vos paramètres de configuration": "se você mudar irá sobrescrever suas configurações", + "si vous changez, cela écrasera vos paramètres de configuration": "se você alterar isso irá sobrescrever suas configurações", "Les paramètres ONVIF": "Configurações ONVIF", "Port ONVIF": "Porta ONVIF", "le port servant pour onvif": "a porta usada para onvif", @@ -179,7 +182,7 @@ "délai avant commande de stop ptz": "tempo antes da ordem de parada Ptz", "Il faut renseigner la commande de Stop sur chaque commande de mouvement PTZ dans le champ prévu à cet effet": "Você deve inserir o comando Parar em cada comando de movimento PTZ no campo fornecido para esse fim", "Vous pouvez retrouver": "Você pode encontrar", - "des configuration pour pas mal de camera et donc pouvoir integrer votre camera vous meme à Jeedom si elle n'est pas dans la liste": "configuração para muitas câmeras e, portanto, ser capaz de integrar sua câmera no Jeedom se ela não estiver na lista", + "des configurations pour pas mal de cameras et donc pouvoir intégrer votre camera vous-même à Jeedom si elle n'est pas dans la liste": "configurações para algumas câmeras e, portanto, ser capaz de integrar sua câmera no Jeedom se ela não estiver na lista", "Cette partie vous permet de configurer la qualité de l'image": "Esta parte permite configurar a qualidade da imagem", "En effet Jeedom diminue la taille de l'image ou la compresse avant de l'envoyer à votre navigateur": "Na verdade, o Jeedom diminui o tamanho da imagem ou a compactação antes de enviá-lo para o seu navegador", "Cela permet de gagner en fluidité des images (car elles sont moins lourdes": "Isso melhora a fluidez das imagens (porque elas são mais claras", diff --git a/docs/pt_PT/index.md b/docs/pt_PT/index.md index 34c3d03..037242d 100644 --- a/docs/pt_PT/index.md +++ b/docs/pt_PT/index.md @@ -9,7 +9,7 @@ Plug-in para criar e gerenciar câmeras wifi (exibição e gravação). Depois de instalar o plugin, você só precisa ativá-lo. Alguns parâmetros devem ser inseridos na configuração do plugin : - **Caminho do registro** : indica o caminho em que o Jeedom deve armazenar as imagens que captura de suas câmeras (não é recomendável tocá-lo). Se o seu caminho não estiver no caminho de instalação do Jeedom, você não poderá visualizar as capturas no Jeedom. -- **Tamanho máximo da pasta de gravação (MB)** : indica o tamanho máximo autorizado para a pasta onde as capturas são salvas (não é recomendável tocá-lo). Se essa cota for atingida, o Jeedom excluirá as capturas mais antigas. +- **Tamanho máximo da pasta de gravação (MB)** : indica o tamanho máximo autorizado para a pasta onde as capturas são salvas (não é recomendável tocá-lo). Se esta cota for atingida, o Jeedom excluirá as capturas mais antigas. - **O plug-in da câmera deve reagir às interações** : palavras-chave / frases às quais o plugin reagirá por meio de interações Jeedom. - **Painel** : permite que você exiba o painel (Menu inicial → Câmera) e tenha uma visão de todas as suas câmeras (veja abaixo). Não se esqueça de ativar o painel na configuração do plugin para acessá-lo mais tarde. @@ -31,13 +31,14 @@ Aqui você tem as principais informações da sua câmera : - **Porta** : a porta à qual conectar a câmera. - **Protocolo** : o protocolo de comunicação da sua câmera (http ou https). - **Nome de Usuário** : nome de usuário para efetuar login na câmera (se necessário). Observe que o plug-in não suporta caracteres especiais (você deve, portanto, limitar-se a números, letras minúsculas / maiúsculas). -- **Senha** : senha para conectar-se à câmera (se necessário).Observe que o plugin cria um url_encode para o nome de usuário e senha necessários para algumas câmeras, mas isso pode causar problemas para outras, se você tiver um problema, tente sem caracteres especiais (limitar-se a números, letras minúsculas / maiúsculas). +- **Senha** : senha para conectar-se à câmera (se necessário). Observe que o plugin torna obrigatório um url_encode para o nome de usuário e senha para algumas câmeras, mas isso pode causar problemas para outras, se você tiver um problema, tente sem caracteres especiais (limite-se a números, letras minúsculas/maiúsculas)). - **URL do instantâneo** : URL de instantâneo da câmera. Mude dependendo das câmeras. Cuidado para não colocar um URL de fluxo sob pena de travar o Jeedom. Você pode adicionar as tags \#username\# e \#password\#, que será substituído automaticamente pelo nome de usuário e senha ao usar este comando. - **URL do feed** : digite o URL do stream de vídeo da câmera ``rtsp://#username#:#password#@#ip#:554/videoMain`` (exemplo para câmeras Foscam). -- **Stream stream RTSP** : se você estiver no modo de stream de vídeo (URL do stream preenchido), você pode ver a câmera como um stream de vídeo em vez de quadro a quadro. Observe que esta opção consome muitos recursos e faz com que a 1ª imagem chegue muito. +- **Stream stream RTSP** : Se você estiver no modo de transmissão de vídeo (URLs de transmissão preenchidos), você poderá visualizar a câmera como uma transmissão de vídeo em vez de quadro a quadro. Cuidado, esta opção consome muitos recursos e torna a chegada da primeira imagem muito lenta. +- **Converter fluxo RTSP para x264** : se sua câmera estiver configurada no codec de vídeo H265, converte instantaneamente para H264. Cuidado, esta opção consome muitos recursos e aumenta o lag. - **Antevisão** : permite-lhe ver se o jeedom recupera o fluxo de vídeo (lembre-se de guardar antes de testar para ver se as suas modificações funcionam) -- **Opção de transmissão de vídeo** : se você estiver no modo de fluxo de vídeo (URL do fluxo preenchido), você pode passar parâmetros adicionais aqui para ffmpeg e avconv (reservado para especialistas) -- **Modelo** : permite escolher o modelo da câmera. Atenção : se você mudar irá sobrescrever suas configurações. +- **Opção de transmissão de vídeo** : se você estiver no modo de transmissão de vídeo (URLs de transmissão preenchidos), poderá passar parâmetros adicionais aqui para ffmpeg e avconv (reservados para especialistas) +- **Modelo** : permite escolher o modelo da câmera. Atenção : se você alterar isso irá sobrescrever suas configurações. Configurações ONVIF : - **Porta ONVIF** : a porta usada para onvif @@ -48,7 +49,7 @@ Configurações ONVIF : > **NOTA** > -> Você pode encontrar [aqui](https://www.ispyconnect.com/cameras) configuração para muitas câmeras e, portanto, ser capaz de integrar sua câmera no Jeedom se ela não estiver na lista +> Você pode encontrar [aqui](https://www.ispyconnect.com/cameras) configurações para algumas câmeras e, portanto, ser capaz de integrar sua câmera no Jeedom se ela não estiver na lista ## Image @@ -157,4 +158,4 @@ Obviamente, antes de criar um comando de tipo de informação na sua câmera >**Quais são as condições para que minha câmera seja compatível com Jeedom (se não estiver na lista de compatibilidade) ?** > -> A única condição é que a câmera tenha um URL que envie de volta uma imagem (bem, uma imagem e não um fluxo de vídeo). +> A única condição é que a câmera tenha um URL que envie de volta uma imagem (bem, uma imagem e não um fluxo de vídeo). \ No newline at end of file From 7b5f2638e4a6604f42e1ad503fa064d568986562 Mon Sep 17 00:00:00 2001 From: Spine34 Date: Sat, 22 Jun 2024 18:50:52 +0200 Subject: [PATCH 16/47] update camera.class.php --- core/class/camera.class.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/core/class/camera.class.php b/core/class/camera.class.php index ab80882..fefc194 100644 --- a/core/class/camera.class.php +++ b/core/class/camera.class.php @@ -583,17 +583,22 @@ public function toHtml($_version = 'dashboard', $_fluxOnly = false) { '#name#' => ($cmd->getDisplay('icon') != '') ? $cmd->getDisplay('icon') : $cmd->getName(), ); $action .= template_replace($replaceCmd, getTemplate('core', $version, 'camera_action', 'camera')) . ' '; + if ($cmd->getDisplay('forceReturnLineAfter', 0) == 1) { + $action .= '
'; + } } else { if ($cmd->getType() == 'info') { $info .= $cmd->toHtml($_version); + if ($cmd->getDisplay('forceReturnLineAfter', 0) == 1) { + $info .= '
'; + } } else { $action .= $cmd->toHtml($_version); + if ($cmd->getDisplay('forceReturnLineAfter', 0) == 1) { + $action .= '
'; + } } } - - if ($cmd->getDisplay('forceReturnLineAfter', 0) == 1) { - $action .= '
'; - } } } } From 0cd3607e6f3fcb192b5a5734624d8eb9ca68d4a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc?= <1536036+zoic21@users.noreply.github.com> Date: Mon, 24 Jun 2024 10:59:18 +0200 Subject: [PATCH 17/47] Update changelog.md --- docs/fr_FR/changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/fr_FR/changelog.md b/docs/fr_FR/changelog.md index 074ced2..445c117 100644 --- a/docs/fr_FR/changelog.md +++ b/docs/fr_FR/changelog.md @@ -5,6 +5,7 @@ >S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte. - Correction d'un bug sur l'accès aux enregistrements videos +- Amélioration de la gestion des retours a la ligne dans le widget [LIEN](https://github.com/jeedom/plugin-camera/pull/85) # 24/01/2024 From e092aefdf25709575c19a08c4be32c556ff5d162 Mon Sep 17 00:00:00 2001 From: Jenkins Date: Mon, 24 Jun 2024 23:22:26 +0000 Subject: [PATCH 18/47] [Jenkins] Updated translation --- docs/de_DE/changelog.md | 1 + docs/en_US/changelog.md | 1 + docs/es_ES/changelog.md | 1 + docs/i18n/de_DE.json | 8 ++++++++ docs/i18n/en_US.json | 8 ++++++++ docs/i18n/es_ES.json | 8 ++++++++ docs/i18n/fr_FR.json | 2 ++ docs/i18n/pt_PT.json | 8 ++++++++ docs/pt_PT/changelog.md | 1 + 9 files changed, 38 insertions(+) diff --git a/docs/de_DE/changelog.md b/docs/de_DE/changelog.md index b732744..aaaab1f 100644 --- a/docs/de_DE/changelog.md +++ b/docs/de_DE/changelog.md @@ -5,6 +5,7 @@ >Wenn es keine Informationen über die Aktualisierung gibt, bedeutet dies, dass es sich nur um die Aktualisierung von Dokumentation, Übersetzung oder Text handelt. - Ein Fehler beim Zugriff auf Videoaufzeichnungen wurde behoben +- Verbesserte Handhabung von Zeilenumbrüchen im Widget [VERKNÜPFUNG](https://github.com/jeedom/plugin-camera/pull/85) # 24.01.2024 diff --git a/docs/en_US/changelog.md b/docs/en_US/changelog.md index 9f9b8ad..cf79ccb 100644 --- a/docs/en_US/changelog.md +++ b/docs/en_US/changelog.md @@ -5,6 +5,7 @@ >If there is no information on the update, it means that it concerns only the update of documentation, translation or text. - Fixed a bug on access to video recordings +- Improved handling of line breaks in the widget [LINK](https://github.com/jeedom/plugin-camera/pull/85) # 01/24/2024 diff --git a/docs/es_ES/changelog.md b/docs/es_ES/changelog.md index 9104c2e..39f1db7 100644 --- a/docs/es_ES/changelog.md +++ b/docs/es_ES/changelog.md @@ -5,6 +5,7 @@ >Si no hay información sobre la actualización, significa que se trata solo de la actualización de la documentación, la traducción o el texto. - Se corrigió un error en el acceso a grabaciones de video +- Manejo mejorado de saltos de línea en el widget [ENLACE](https://github.com/jeedom/plugin-camera/pull/85) # 24/01/2024 diff --git a/docs/i18n/de_DE.json b/docs/i18n/de_DE.json index 66e518f..213744c 100644 --- a/docs/i18n/de_DE.json +++ b/docs/i18n/de_DE.json @@ -3,6 +3,7 @@ "Changelog Caméra": "Changelog Kamera", "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "Wenn es keine Informationen über die Aktualisierung gibt, bedeutet dies, dass es sich nur um die Aktualisierung von Dokumentation, Übersetzung oder Text handelt", "Correction d'un bug sur l'accès aux enregistrements videos": "Ein Fehler beim Zugriff auf Videoaufzeichnungen wurde behoben", + "Amélioration de la gestion des retours a la ligne dans le widget": "Verbesserte Handhabung von Zeilenumbrüchen im Widget", "24\/01\/2024": "24.01.2024", "Amélioration du widget": "Widget-Verbesserung", "17\/01\/2024": "17.01.2024", @@ -106,6 +107,13 @@ "[IMPORTANT]": "[Wichtig]", "*IMPORTANT*": "*Wichtig*", " IMPORTANT*": " Wichtig*", + " LIEN.": " VERKNÜPFUNG.", + " LIEN?": " VERKNÜPFUNG?", + "LIEN ": "VERKNÜPFUNG ", + " LIEN]": " VERKNÜPFUNG]", + "[LIEN]": "[VERKNÜPFUNG]", + "*LIEN*": "*VERKNÜPFUNG*", + " LIEN*": " VERKNÜPFUNG*", " et.": " und.", " et?": " und?", "et ": "und ", diff --git a/docs/i18n/en_US.json b/docs/i18n/en_US.json index c619e05..50ab2a3 100644 --- a/docs/i18n/en_US.json +++ b/docs/i18n/en_US.json @@ -3,6 +3,7 @@ "Changelog Caméra": "Changelog Camera", "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "If there is no information on the update, it means that it concerns only the update of documentation, translation or text", "Correction d'un bug sur l'accès aux enregistrements videos": "Fixed a bug on access to video recordings", + "Amélioration de la gestion des retours a la ligne dans le widget": "Improved handling of line breaks in the widget", "24\/01\/2024": "01\/24\/2024", "Amélioration du widget": "Widget improvement", "17\/01\/2024": "01\/17\/2024", @@ -106,6 +107,13 @@ "[IMPORTANT]": "[Important]", "*IMPORTANT*": "*Important*", " IMPORTANT*": " Important*", + " LIEN.": " LINK.", + " LIEN?": " LINK?", + "LIEN ": "LINK ", + " LIEN]": " LINK]", + "[LIEN]": "[LINK]", + "*LIEN*": "*LINK*", + " LIEN*": " LINK*", " et.": " and.", " et?": " and?", "et ": "and ", diff --git a/docs/i18n/es_ES.json b/docs/i18n/es_ES.json index 511ecc0..42df20d 100644 --- a/docs/i18n/es_ES.json +++ b/docs/i18n/es_ES.json @@ -3,6 +3,7 @@ "Changelog Caméra": "Changelog Camera", "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "Si no hay información sobre la actualización, significa que se trata solo de la actualización de la documentación, la traducción o el texto", "Correction d'un bug sur l'accès aux enregistrements videos": "Se corrigió un error en el acceso a grabaciones de video", + "Amélioration de la gestion des retours a la ligne dans le widget": "Manejo mejorado de saltos de línea en el widget", "24\/01\/2024": "24\/01\/2024", "Amélioration du widget": "Mejora de widgets", "17\/01\/2024": "17\/01\/2024", @@ -106,6 +107,13 @@ "[IMPORTANT]": "[Importante]", "*IMPORTANT*": "*Importante*", " IMPORTANT*": " Importante*", + " LIEN.": " ENLACE.", + " LIEN?": " ENLACE?", + "LIEN ": "ENLACE ", + " LIEN]": " ENLACE]", + "[LIEN]": "[ENLACE]", + "*LIEN*": "*ENLACE*", + " LIEN*": " ENLACE*", " et.": " y.", " et?": " y?", "et ": "y ", diff --git a/docs/i18n/fr_FR.json b/docs/i18n/fr_FR.json index 994587c..86ff2d1 100644 --- a/docs/i18n/fr_FR.json +++ b/docs/i18n/fr_FR.json @@ -4,6 +4,8 @@ "IMPORTANT": "IMPORTANT", "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte", "Correction d'un bug sur l'accès aux enregistrements videos": "Correction d'un bug sur l'accès aux enregistrements videos", + "LIEN": "LIEN", + "Amélioration de la gestion des retours a la ligne dans le widget": "Amélioration de la gestion des retours a la ligne dans le widget", "24\/01\/2024": "24\/01\/2024", "Amélioration du widget": "Amélioration du widget", "17\/01\/2024": "17\/01\/2024", diff --git a/docs/i18n/pt_PT.json b/docs/i18n/pt_PT.json index ebece58..df78ad1 100644 --- a/docs/i18n/pt_PT.json +++ b/docs/i18n/pt_PT.json @@ -3,6 +3,7 @@ "Changelog Caméra": "Changelog Camera", "S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "Se não houver informação sobre a atualização, significa que se trata apenas da atualização da documentação, tradução ou texto", "Correction d'un bug sur l'accès aux enregistrements videos": "Corrigido um bug no acesso às gravações de vídeo", + "Amélioration de la gestion des retours a la ligne dans le widget": "Tratamento aprimorado de quebras de linha no widget", "24\/01\/2024": "24\/01\/2024", "Amélioration du widget": "Melhoria de widget", "17\/01\/2024": "17\/01\/2024", @@ -106,6 +107,13 @@ "[IMPORTANT]": "[IMPORTANTE]", "*IMPORTANT*": "*IMPORTANTE*", " IMPORTANT*": " IMPORTANTE*", + " LIEN.": " LINK.", + " LIEN?": " LINK?", + "LIEN ": "LINK ", + " LIEN]": " LINK]", + "[LIEN]": "[LINK]", + "*LIEN*": "*LINK*", + " LIEN*": " LINK*", " et.": " e.", " et?": " e?", "et ": "e ", diff --git a/docs/pt_PT/changelog.md b/docs/pt_PT/changelog.md index c519023..bec9f0e 100644 --- a/docs/pt_PT/changelog.md +++ b/docs/pt_PT/changelog.md @@ -5,6 +5,7 @@ >Se não houver informação sobre a atualização, significa que se trata apenas da atualização da documentação, tradução ou texto. - Corrigido um bug no acesso às gravações de vídeo +- Tratamento aprimorado de quebras de linha no widget [LINK](https://github.com/jeedom/plugin-camera/pull/85) # 24/01/2024 From 11b298d776d9d79b017629a4d3b217a10a797b99 Mon Sep 17 00:00:00 2001 From: sagitaz Date: Mon, 29 Jul 2024 10:07:08 +0200 Subject: [PATCH 19/47] Add backupExclude MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajout de la fonction backupExclude afin d'alléger les sauvegardes Jeedom. --- core/class/camera.class.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/class/camera.class.php b/core/class/camera.class.php index fefc194..c757f62 100644 --- a/core/class/camera.class.php +++ b/core/class/camera.class.php @@ -967,7 +967,12 @@ public function getImage() { } return 'plugins/camera/core/config/devices/' . self::getImgFilePath($this->getConfiguration('device')) . '.jpg'; } - + + public static function backupExclude() + { + // retourne le répertoire des datas à ne pas enregistrer dans le backup Jeedom + return ['data']; + } /* * **********************Getteur Setteur*************************** */ } From 90993463b7399107662c9904d095b75f3b99362c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc?= <1536036+zoic21@users.noreply.github.com> Date: Mon, 5 Aug 2024 14:09:27 +0200 Subject: [PATCH 20/47] Update camera.class.php --- core/class/camera.class.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/class/camera.class.php b/core/class/camera.class.php index fefc194..28a1267 100644 --- a/core/class/camera.class.php +++ b/core/class/camera.class.php @@ -962,6 +962,12 @@ public function export($_withCmd = true) { } public function getImage() { + if(method_exists($this,'getCustomImage')){ + $customImage = $this->getCustomImage(); + if($customImage !== null){ + return $customImage; + } + } if (file_exists(__DIR__ . '/../config/devices/' . self::getImgFilePath($this->getConfiguration('device')) . '.png')) { return 'plugins/camera/core/config/devices/' . self::getImgFilePath($this->getConfiguration('device')) . '.png'; } From 0ce13257d6504f1b3fdb93667c7bcc45a2ed7bfd Mon Sep 17 00:00:00 2001 From: David <79108364+Phpvarious@users.noreply.github.com> Date: Thu, 15 Aug 2024 13:07:55 +0200 Subject: [PATCH 21/47] Update camera.html --- core/template/dashboard/camera.html | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/core/template/dashboard/camera.html b/core/template/dashboard/camera.html index 785f273..6210cfd 100644 --- a/core/template/dashboard/camera.html +++ b/core/template/dashboard/camera.html @@ -54,10 +54,12 @@ maxWidth:eqLogic_#id#.width() + 'px' }); setTimeout(function(){ - Object.assign(document.querySelector('.eqLogic[data-eqLogic_id="#id#"] .directDisplay img').style, { - maxHeight:(eqLogic_#id#.height() - 60) + 'px', - maxWidth:eqLogic_#id#.width() + 'px' - }); + if (document.querySelector('.eqLogic[data-eqLogic_id="#id#"] .directDisplay img')) { + Object.assign(document.querySelector('.eqLogic[data-eqLogic_id="#id#"] .directDisplay img').style, { + maxHeight:(eqLogic_#id#.height() - 60) + 'px', + maxWidth:eqLogic_#id#.width() + 'px' + }); + } }, 1000); eqLogic_#id#.off('resize').on('resize',function(){ From 15c419dd28300c99fa43ea76d59d47e208c64c13 Mon Sep 17 00:00:00 2001 From: David <79108364+Phpvarious@users.noreply.github.com> Date: Tue, 7 Jan 2025 17:36:02 +0100 Subject: [PATCH 22/47] Update camera.history.php --- desktop/modal/camera.history.php | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/desktop/modal/camera.history.php b/desktop/modal/camera.history.php index 3719990..d9ecce3 100644 --- a/desktop/modal/camera.history.php +++ b/desktop/modal/camera.history.php @@ -50,20 +50,25 @@ echo '
'; krsort($file); foreach ($file as $time => $filename) { - $fontType = 'fas-camera'; + $fontType = 'fa-camera'; if (strpos($filename, '.mp4')) { - $fontType = 'fas-video-camera'; + $fontType = 'fa-video'; $i++; } - echo '
'; - echo '
' . str_replace('-', ':', $time) . '
'; + echo '
'; + echo '
' . str_replace('-', ':', $time) . '
'; if (strpos($filename, '.mp4')) { echo ''; } else { echo '
'; } - echo '
'; - echo '
'; + echo '
'; + echo ''; + echo ' '; + if (strpos($filename, '.mp4')) { + echo ' '; + } + echo '
'; echo '
'; } echo '
'; From 3e5f0b49efca66731ce5bbf25d8b821998553d40 Mon Sep 17 00:00:00 2001 From: David <79108364+Phpvarious@users.noreply.github.com> Date: Tue, 7 Jan 2025 18:12:04 +0100 Subject: [PATCH 23/47] Update camera.ajax.php --- core/ajax/camera.ajax.php | 120 +++++++++++++++++++------------------- 1 file changed, 59 insertions(+), 61 deletions(-) diff --git a/core/ajax/camera.ajax.php b/core/ajax/camera.ajax.php index 79007c9..dd995ca 100644 --- a/core/ajax/camera.ajax.php +++ b/core/ajax/camera.ajax.php @@ -31,7 +31,7 @@ if(!is_object($camera)){ throw new \Exception(__('Impossible de trouver la camera : ',__FILE__).init('id')); } - $rtspScript = dirname(__FILE__) . '/../../3rdparty/rtsp-to-hls-' . ($camera->getConfiguration('encodeX264RTSP', 0) == 1 ? 'x264' : 'copy') . '.sh '; + $rtspScript = dirname(__FILE__) . '/../../3rdparty/rtsp-to-hls-' . ($camera->getConfiguration('encodeX264RTSP', 0) == 1 ? 'x264' : 'copy') . '.sh '; if(count(system::ps('rtsp-to-hls-*.sh.*'.$camera->getConfiguration('localApiKey'))) == 0){ shell_exec('(ps ax || ps w) | grep ffmpeg.*'.$camera->getConfiguration('localApiKey').' | awk \'{print $2}\' | xargs sudo kill -9'); $replace = array( @@ -57,72 +57,70 @@ } $camera->setCache('lastStreamCall',strtotime('now')); shell_exec(system::getCmdSudo().' find '.__DIR__.'/../../data/segments/'.$camera->getConfiguration('localApiKey').'-*.ts -mmin +5 -type f -exec rm -f {} \; 2>&1 > /dev/null'); - ajax::success(); - } - - if (!isConnect('admin')) { - throw new Exception(__('401 - Accès non autorisé', __FILE__)); - } - - - - if (init('action') == 'addDiscoverCam') { - camera::addDiscoverCam(json_decode(init('config'), true)); - ajax::success(); - } - - if (init('action') == 'removeRecord') { - $file = init('file'); - $file = str_replace('..', '', $file); - $record_dir = calculPath(config::byKey('recordDir', 'camera')); - shell_exec('rm -rf ' . $record_dir . '/' . $file); - ajax::success(); + ajax::success(); + } + + if (init('action') == 'getCamera') { + if (init('object_id') == '') { + $object = jeeObject::byId($_SESSION['user']->getOptions('defaultDashboardObject')); + } else { + $object = jeeObject::byId(init('object_id')); } - - if (init('action') == 'removeAllSnapshot') { - $camera = camera::byId(init('id')); - if (!is_object($camera)) { - throw new Exception(__('Impossible de trouver la caméra : ' . init('id'), __FILE__)); - } - $camera->removeAllSnapshot(); - ajax::success(); + if (!is_object($object)) { + $object = jeeObject::rootObject(); } - - if (init('action') == 'getCamera') { - if (init('object_id') == '') { - $object = jeeObject::byId($_SESSION['user']->getOptions('defaultDashboardObject')); - } else { - $object = jeeObject::byId(init('object_id')); - } - if (!is_object($object)) { - $object = jeeObject::rootObject(); - } - $return = array(); - $return['eqLogics'] = array(); - if (init('object_id') == '') { - foreach (jeeObject::all() as $object) { - foreach ($object->getEqLogic(true, false, 'camera') as $camera) { - $return['eqLogics'][] = $camera->toHtml(init('version')); - } - } - } else { + $return = array(); + $return['eqLogics'] = array(); + if (init('object_id') == '') { + foreach (jeeObject::all() as $object) { foreach ($object->getEqLogic(true, false, 'camera') as $camera) { $return['eqLogics'][] = $camera->toHtml(init('version')); } - foreach (jeeObject::buildTree($object) as $child) { - $cameras = $child->getEqLogic(true, false, 'camera'); - if (count($cameras) > 0) { - foreach ($cameras as $camera) { - $return['eqLogics'][] = $camera->toHtml(init('version')); - } + } + } else { + foreach ($object->getEqLogic(true, false, 'camera') as $camera) { + $return['eqLogics'][] = $camera->toHtml(init('version')); + } + foreach (jeeObject::buildTree($object) as $child) { + $cameras = $child->getEqLogic(true, false, 'camera'); + if (count($cameras) > 0) { + foreach ($cameras as $camera) { + $return['eqLogics'][] = $camera->toHtml(init('version')); } } } - ajax::success($return); } - - throw new Exception(__('Aucune methode correspondante à : ', __FILE__) . init('action')); - /* * *********Catch exeption*************** */ - } catch (Exception $e) { - ajax::error(displayException($e), $e->getCode()); - } \ No newline at end of file + ajax::success($return); + } + + if (!isConnect('admin')) { + throw new Exception(__('401 - Accès non autorisé', __FILE__)); + } + + if (init('action') == 'addDiscoverCam') { + camera::addDiscoverCam(json_decode(init('config'), true)); + ajax::success(); + } + + if (init('action') == 'removeRecord') { + $file = init('file'); + $file = str_replace('..', '', $file); + $record_dir = calculPath(config::byKey('recordDir', 'camera')); + shell_exec('rm -rf ' . $record_dir . '/' . $file); + ajax::success(); + } + + if (init('action') == 'removeAllSnapshot') { + $camera = camera::byId(init('id')); + if (!is_object($camera)) { + throw new Exception(__('Impossible de trouver la caméra : ' . init('id'), __FILE__)); + } + $camera->removeAllSnapshot(); + ajax::success(); + } + + throw new Exception(__('Aucune methode correspondante à : ', __FILE__) . init('action')); + /* * *********Catch exeption*************** */ +} catch (Exception $e) { + ajax::error(displayException($e), $e->getCode()); +} From f16ef4724c8dd4e9c8c7eeecc6f9a926c5453978 Mon Sep 17 00:00:00 2001 From: David <79108364+Phpvarious@users.noreply.github.com> Date: Tue, 28 Jan 2025 21:36:58 +0100 Subject: [PATCH 24/47] Update info.json --- plugin_info/info.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugin_info/info.json b/plugin_info/info.json index 01a92ba..02551f5 100644 --- a/plugin_info/info.json +++ b/plugin_info/info.json @@ -21,6 +21,7 @@ "mobile": "panel", "hasOwnDeamon": true, "hasDependency": true, + "whiteListFolders": ["data\/records"], "changelog": "https:\/\/doc.jeedom.com\/#language#\/plugins\/security\/camera\/changelog", "documentation": "https:\/\/doc.jeedom.com\/#language#\/plugins\/security\/camera\/", "language": [ @@ -47,4 +48,4 @@ ], "changelog_beta": "https:\/\/doc.jeedom.com\/#language#\/plugins\/security\/camera\/beta\/changelog", "documentation_beta": "https:\/\/doc.jeedom.com\/#language#\/plugins\/security\/camera\/beta" -} \ No newline at end of file +} From c99819d79c963859a431412464e2046f87b63e76 Mon Sep 17 00:00:00 2001 From: David <79108364+Phpvarious@users.noreply.github.com> Date: Tue, 28 Jan 2025 21:40:22 +0100 Subject: [PATCH 25/47] Update camera.history.php --- desktop/modal/camera.history.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/desktop/modal/camera.history.php b/desktop/modal/camera.history.php index d9ecce3..33e1ae7 100644 --- a/desktop/modal/camera.history.php +++ b/desktop/modal/camera.history.php @@ -58,15 +58,15 @@ echo '
'; echo '
' . str_replace('-', ':', $time) . '
'; if (strpos($filename, '.mp4')) { - echo ''; + echo ''; } else { - echo '
'; + echo '
'; } echo '
'; - echo ''; + echo ''; echo ' '; if (strpos($filename, '.mp4')) { - echo ' '; + echo ' '; } echo '
'; echo '
'; @@ -83,7 +83,7 @@ $('#md_modal2').dialog({ title: "Image" }); - $('#md_modal2').load('index.php?v=d&plugin=camera&modal=camera.displayImage&src=' + $(this).attr('src')).dialog('open'); + $('#md_modal2').load('index.php?v=d&plugin=camera&modal=camera.displayImage&src=' + $(this).attr('data-src')).dialog('open'); }); $('.displayVideo').on('click', function() { $('#md_modal2').dialog({ From 75fc1cd8bd42700f4c1a8eee956bd896b3db5852 Mon Sep 17 00:00:00 2001 From: David <79108364+Phpvarious@users.noreply.github.com> Date: Tue, 28 Jan 2025 21:41:08 +0100 Subject: [PATCH 26/47] Update camera.displayImage.php --- desktop/modal/camera.displayImage.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/modal/camera.displayImage.php b/desktop/modal/camera.displayImage.php index 1b5b3ac..c4a63e2 100644 --- a/desktop/modal/camera.displayImage.php +++ b/desktop/modal/camera.displayImage.php @@ -8,4 +8,4 @@ if (strpos(init('src'), 'camera') === false) { throw new Exception('{{401 - Accès non autorisé}}'); } -echo '
'; +echo '
'; From 239f63085416bdbde7a17e035dd5f1273782f33f Mon Sep 17 00:00:00 2001 From: David <79108364+Phpvarious@users.noreply.github.com> Date: Tue, 28 Jan 2025 21:41:32 +0100 Subject: [PATCH 27/47] Update camera.displayVideo.php --- desktop/modal/camera.displayVideo.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/modal/camera.displayVideo.php b/desktop/modal/camera.displayVideo.php index b6b72a8..e43ba9a 100644 --- a/desktop/modal/camera.displayVideo.php +++ b/desktop/modal/camera.displayVideo.php @@ -9,6 +9,6 @@ throw new Exception('{{401 - Accès non autorisé}}'); } echo ''; From 65463f986f65b20ac0ac27535f0261b20230a8d2 Mon Sep 17 00:00:00 2001 From: David <79108364+Phpvarious@users.noreply.github.com> Date: Wed, 29 Jan 2025 20:22:30 +0100 Subject: [PATCH 28/47] Add files via upload --- .../devices/reolink/reolink.trackMix.json | 108 ++++++++++++++++++ .../devices/reolink/reolink.trackMix.php | 46 ++++++++ .../devices/reolink/reolink.trackMix.png | Bin 0 -> 88726 bytes 3 files changed, 154 insertions(+) create mode 100644 core/config/devices/reolink/reolink.trackMix.json create mode 100644 core/config/devices/reolink/reolink.trackMix.php create mode 100644 core/config/devices/reolink/reolink.trackMix.png diff --git a/core/config/devices/reolink/reolink.trackMix.json b/core/config/devices/reolink/reolink.trackMix.json new file mode 100644 index 0000000..4a9b585 --- /dev/null +++ b/core/config/devices/reolink/reolink.trackMix.json @@ -0,0 +1,108 @@ +{ + "name" : "Reolink TrackMix", + "manufacturer" : "Reolink", + "buylink" : "https://reolink.com/fr/product/reolink-trackmix-poe/", + "configuration": { + "port": "", + "urlStream": "\/cgi-bin\/api.cgi?cmd=Snap&channel=0&user=#username#&password=#password#", + "cameraStreamAccessUrl" : "rtsp:\/\/#username#:#password#@#ip#\/h264Preview_01_sub", + "protocole": "https" + }, + "commands": [ + { + "eqType": "camera", + "name": "Motion alarme", + "type": "info", + "subType": "binary", + "isHistorized": "1", + "isVisible": "1", + "logicalId" : "motionDetectAlarm", + "display" : { + "invertBinary" : "1" + }, + "template" : { + "dashboard" : "timePresence", + "mobile" : "timePresence" + }, + "configuration": { + "repeatEventManagement": "never" + } + }, + { + "eqType": "camera", + "name": "Motion Pet alarme", + "type": "info", + "subType": "binary", + "isHistorized": "0", + "isVisible": "1", + "logicalId" : "motionDogcatAlarm", + "display" : { + "invertBinary" : "1" + }, + "template" : { + "dashboard" : "timePresence", + "mobile" : "timePresence" + }, + "configuration": { + "repeatEventManagement": "never" + } + }, + { + "eqType": "camera", + "name": "Motion People alarme", + "type": "info", + "subType": "binary", + "isHistorized": "0", + "isVisible": "1", + "logicalId" : "motionPeopleAlarm", + "display" : { + "invertBinary" : "1" + }, + "template" : { + "dashboard" : "timePresence", + "mobile" : "timePresence" + }, + "configuration": { + "repeatEventManagement": "never" + } + }, + { + "eqType": "camera", + "name": "Motion Vehicle alarme", + "type": "info", + "subType": "binary", + "isHistorized": "0", + "isVisible": "1", + "logicalId" : "motionVehicleAlarm", + "display" : { + "invertBinary" : "1" + }, + "template" : { + "dashboard" : "timePresence", + "mobile" : "timePresence" + }, + "configuration": { + "repeatEventManagement": "never" + } + }, + { + "eqType": "camera", + "name": "Motion Face alarme", + "type": "info", + "subType": "binary", + "isHistorized": "0", + "isVisible": "1", + "logicalId" : "motionFaceAlarm", + "display" : { + "invertBinary" : "1" + }, + "template" : { + "dashboard" : "timePresence", + "mobile" : "timePresence" + }, + "configuration": { + "repeatEventManagement": "never" + } + } + ] +} \ No newline at end of file diff --git a/core/config/devices/reolink/reolink.trackMix.php b/core/config/devices/reolink/reolink.trackMix.php new file mode 100644 index 0000000..7ff46d6 --- /dev/null +++ b/core/config/devices/reolink/reolink.trackMix.php @@ -0,0 +1,46 @@ +getConfiguration('ip') . ':' . $_eqLogic->getConfiguration('port',80); + $url .= '/cgi-bin/api.cgi?cmd=GetMdState&user=' . $_eqLogic->getConfiguration('username') . '&password=' . $_eqLogic->getConfiguration('password'); + $request_http = new com_http($url); + try { + $result = $request_http->exec(); + $data = json_decode($result, true); + $cmd = $_eqLogic->getCmd('info', 'motionDetectAlarm'); + if (is_object($cmd)){ + if (isset($data[0])) { + if(array_key_exists("value", $data[0])) { + if(array_key_exists("state", $data[0]['value'])) { + $_eqLogic->checkAndUpdateCmd($cmd, $data[0]['value']['state']); + } + } + } + } + } catch (Exception $e) { + log::add('camera', 'debug', 'Erreur com_http ! (GetMdState)'); + } + + $url = $_eqLogic->getConfiguration('ip') . ':' . $_eqLogic->getConfiguration('port',80); + $url .= '/cgi-bin/api.cgi?cmd=GetAiState&user=' . $_eqLogic->getConfiguration('username') . '&password=' . $_eqLogic->getConfiguration('password'); + $request_http = new com_http($url); + try { + $result = $request_http->exec(); + $data = json_decode($result, true); + if (isset($data[0])) { + if(array_key_exists("value", $data[0])) { + foreach ($data[0]['value'] as $key => $value) { + if(is_array($value) && array_key_exists("support", $value) && $value['support'] == 1) { // return support or not + $cmd = $_eqLogic->getCmd('info', 'motion' . ucfirst(str_replace('_', '', $key)) . 'Alarm'); + if (is_object($cmd) && array_key_exists("alarm_state", $value)) { + $_eqLogic->checkAndUpdateCmd($cmd, $value['alarm_state']); + } + } + } + } + } + } catch (Exception $e) { + log::add('camera', 'debug', 'Erreur com_http ! (GetAiState)'); + } + +} +?> \ No newline at end of file diff --git a/core/config/devices/reolink/reolink.trackMix.png b/core/config/devices/reolink/reolink.trackMix.png new file mode 100644 index 0000000000000000000000000000000000000000..329967e6de5743944713a4c570d0ec3b441323ad GIT binary patch literal 88726 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%0DD<_;ohDdt;2jhQ+T^)QBdR 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%0AxxC2Xf?z&_MA#HMnkfKYJ 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 AeE Date: Thu, 30 Jan 2025 00:21:32 +0000 Subject: [PATCH 29/47] [Jenkins] Updated translation --- plugin_info/info.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugin_info/info.json b/plugin_info/info.json index 02551f5..792cfc1 100644 --- a/plugin_info/info.json +++ b/plugin_info/info.json @@ -21,7 +21,9 @@ "mobile": "panel", "hasOwnDeamon": true, "hasDependency": true, - "whiteListFolders": ["data\/records"], + "whiteListFolders": [ + "data\/records" + ], "changelog": "https:\/\/doc.jeedom.com\/#language#\/plugins\/security\/camera\/changelog", "documentation": "https:\/\/doc.jeedom.com\/#language#\/plugins\/security\/camera\/", "language": [ @@ -48,4 +50,4 @@ ], "changelog_beta": "https:\/\/doc.jeedom.com\/#language#\/plugins\/security\/camera\/beta\/changelog", "documentation_beta": "https:\/\/doc.jeedom.com\/#language#\/plugins\/security\/camera\/beta" -} +} \ No newline at end of file From ac654a1d08e71bb98c5d72a00a5b299f121c9422 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc?= <1536036+zoic21@users.noreply.github.com> Date: Mon, 13 Apr 2026 12:54:14 +0200 Subject: [PATCH 30/47] Bugfix translate --- .github/workflows/translations.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .github/workflows/translations.yml diff --git a/.github/workflows/translations.yml b/.github/workflows/translations.yml new file mode 100644 index 0000000..d214266 --- /dev/null +++ b/.github/workflows/translations.yml @@ -0,0 +1,18 @@ +name: translate + +on: + workflow_dispatch: + push: + branches: + - beta + +jobs: + auto-translate: + runs-on: ubuntu-latest + steps: + - uses: jeedom/jeetranslate@main + with: + deepl_api_key: ${{ secrets.DEEPL_API_KEY }} + include_empty_translation: false + target_languages: "en_US,es_ES,de_DE,it_IT,pt_PT" + use_core_translations: true \ No newline at end of file From a7f468a7958e8e9b54856d540acc538d27b5b7ba Mon Sep 17 00:00:00 2001 From: Mips2648 Date: Sun, 28 Jun 2026 14:06:12 +0200 Subject: [PATCH 31/47] add Ubiquiti G5 Turret Ultra --- .../ubiquiti.UVC G5 Turret Ultra.json | 9 ++++++ .../ubiquiti/ubiquiti.UVC G5 Turret Ultra.png | Bin 0 -> 176625 bytes docs/fr_FR/changelog.md | 30 +++++++++--------- 3 files changed, 24 insertions(+), 15 deletions(-) create mode 100644 core/config/devices/ubiquiti/ubiquiti.UVC G5 Turret Ultra.json create mode 100644 core/config/devices/ubiquiti/ubiquiti.UVC G5 Turret Ultra.png diff --git a/core/config/devices/ubiquiti/ubiquiti.UVC G5 Turret Ultra.json b/core/config/devices/ubiquiti/ubiquiti.UVC G5 Turret Ultra.json new file mode 100644 index 0000000..e6dd62c --- /dev/null +++ b/core/config/devices/ubiquiti/ubiquiti.UVC G5 Turret Ultra.json @@ -0,0 +1,9 @@ +{ + "name": "Ubiquiti G5 Turret Ultra", + "manufacturer": "Ubiquiti", + "configuration": { + "urlStream": "\/snap.jpeg", + "protocole": "http" + }, + "commands": [] +} \ No newline at end of file diff --git a/core/config/devices/ubiquiti/ubiquiti.UVC G5 Turret Ultra.png b/core/config/devices/ubiquiti/ubiquiti.UVC G5 Turret Ultra.png new file mode 100644 index 0000000000000000000000000000000000000000..0d839cc614532e76d58bb94d2eb1200f7d40dbe9 GIT binary patch literal 176625 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%0AE6{7NJJ3O>&z{&u+XDry(eQWhj~66-^>!8a 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
=2SEl{? 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�NtUZ_a~g0+yZq$xJ*aNjxZOb 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 literal 0 HcmV?d00001 diff --git a/docs/fr_FR/changelog.md b/docs/fr_FR/changelog.md index 445c117..81bb639 100644 --- a/docs/fr_FR/changelog.md +++ b/docs/fr_FR/changelog.md @@ -6,6 +6,7 @@ - Correction d'un bug sur l'accès aux enregistrements videos - Amélioration de la gestion des retours a la ligne dans le widget [LIEN](https://github.com/jeedom/plugin-camera/pull/85) +- Ajout de la caméra Ubiquiti G5 Turret Ultra # 24/01/2024 @@ -42,12 +43,12 @@ # 11/12/2021 - Support de nouvelles caméras -- Ajout d'un bouton pour voir une prévisualisation de la camera sur la page de configuration +- Ajout d'un bouton pour voir une prévisualisation de la caméra sur la page de configuration # 31/08/2021 - Modification pour autoriser la recuperation depuis une fonction d'un autre plugin (sera utilisé pour un futur plugin Unifi Protect) -- Ajout de la camera Ubiquiti G4 bullet (attention il faut sur la camera activer les connexion anonyme) +- Ajout de la caméra Ubiquiti G4 bullet (attention il faut sur la caméra activer les connexion anonyme) # 04/02/2021 @@ -57,7 +58,6 @@ - Correction d'un soucis d'affichage d'image sur les designs - # 24/11/2020 - Nouvelle présentation de la liste des objets @@ -70,16 +70,16 @@ # 07/07/2020 - Correction d'un soucis sur le port par default de l'url de flux pour les caméras Foscam merci @nebz -- Ajout de la camera Reolink RLC-410-5MP merci @Dorsad +- Ajout de la caméra Reolink RLC-410-5MP merci @Dorsad - Ajout de RocketCam (Freebox) merci @JAG # 26/06/2020 - Ajout de caméra Dahua -- Ajout de camera Foscam +- Ajout de caméra Foscam - Supression de la detection de mouvements - Ajout de panasonic wc np502 merci @Flobul -- Ajout de camera IOS merci @Flobul +- Ajout de caméra IOS merci @Flobul # 16/06/2020 @@ -88,7 +88,7 @@ # 14/06/2020 - Amélioration du systeme de nettoyage des fichiers de flux video (attention la fonction est toujours en beta il est possible que notre reglage soit un peu trop agressif) -- Correction d'un bug sur la recuperation des informations de mouvement des camera foscam HD +- Correction d'un bug sur la recuperation des informations de mouvement des caméras foscam HD - Correction d'un soucis si un utilisateur non admin voulait visionner le flux video - Correction de bug d'affichage sur les design en mode "flux only" - Correction de bugs @@ -96,17 +96,17 @@ # 11/0/2020 - Ajout de configuration -- Possibilité de voir la camera en flux video (et non plus image par image) - Beta -- Refonte du systeme de pre-configuration des cameras +- Possibilité de voir la caméra en flux video (et non plus image par image) - Beta +- Refonte du systeme de pre-configuration des caméras # 11/05/2020 - Retour de la fonction de decouverte ONVIF (merci @Aidom) -- Possibilité d'utiliser des commandes (type script) pour le controle des cameras +- Possibilité d'utiliser des commandes (type script) pour le controle des caméras # 17/10/2019 -- Optimisation de la fonction de nettoyage des dossiers de capture des cameras +- Optimisation de la fonction de nettoyage des dossiers de capture des caméras # 10/10/2019 @@ -127,8 +127,8 @@ # 14/09/2019 - - Correction d'un bug ou la tache cronHourly du plugin camera n'arrivait pas a finir - - Correction d'un bug sur la prévisualisation de l'historique des captures +- Correction d'un bug ou la tache cronHourly du plugin caméra n'arrivait pas à finir +- Correction d'un bug sur la prévisualisation de l'historique des captures # 28/08/2019 @@ -153,7 +153,7 @@ # 15/01/2019 -- Ajout de la camera Wanscam q3(s) +- Ajout de la caméra Wanscam q3(s) - Selection du mode automatiquement en fonction de l'url de capture et du flux vidéo (RTSP) - Correction de bugs - Ajout du remplacement de #username# et #password# dans les commandes @@ -161,7 +161,7 @@ # 01/06/2018 -- Refonte du panel, on choisi maintenant le nombre de camera par ligne dans la configuration du plugin, leur dimension est calculé automatiquement +- Refonte du panel, on choisi maintenant le nombre de caméra par ligne dans la configuration du plugin, leur dimension est calculé automatiquement - Amélioration du widget en mobile - Support des flux video RTSP/MJPEG... Attention vu qu'il y a une conversion de faite ce n'est à utiliser que si vous n'avez pas le choix, il faut priviliegé les snapshot (plus rapide et moins de charge sur Jeedom) From 53dc375e582bab45937aff3b61a01345d85f5fdf Mon Sep 17 00:00:00 2001 From: Jenkins Date: Sun, 28 Jun 2026 23:23:13 +0000 Subject: [PATCH 32/47] [Jenkins] Updated translation --- .../ubiquiti/ubiquiti.UVC G5 Turret Ultra.png | Bin 176625 -> 15056 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/core/config/devices/ubiquiti/ubiquiti.UVC G5 Turret Ultra.png b/core/config/devices/ubiquiti/ubiquiti.UVC G5 Turret Ultra.png index 0d839cc614532e76d58bb94d2eb1200f7d40dbe9..c8e99352fc7e541f550ad97eb7f5d946cddfe2c0 100644 GIT binary patch literal 15056 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 literal 176625 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%0AE6{7NJJ3O>&z{&u+XDry(eQWhj~66-^>!8a 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
=2SEl{? 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�NtUZ_a~g0+yZq$xJ*aNjxZOb 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 From c0ee83aec8f97de4bcece287ce339106f384761a Mon Sep 17 00:00:00 2001 From: David <79108364+Phpvarious@users.noreply.github.com> Date: Thu, 23 Jul 2026 12:26:35 +0200 Subject: [PATCH 33/47] Update camera.class.php --- core/class/camera.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/class/camera.class.php b/core/class/camera.class.php index 1fb14a1..ba29d85 100644 --- a/core/class/camera.class.php +++ b/core/class/camera.class.php @@ -229,7 +229,7 @@ public static function cronHourly() { } } - public static function cronDayly() { + public static function cronDaily() { foreach (camera::byType('camera') as $camera) { try { shell_exec('(ps ax || ps w) | grep ffmpeg.*' . $camera->getConfiguration('localApiKey') . ' | awk \'{print $2}\' | xargs sudo kill -9'); From 24e064f7e0b83325a978afce6a081b1bd528c354 Mon Sep 17 00:00:00 2001 From: Salvialf Date: Thu, 23 Jul 2026 16:50:57 +0200 Subject: [PATCH 34/47] chore(camera.class): code formatting --- core/class/camera.class.php | 155 ++++++++++++++++++------------------ 1 file changed, 77 insertions(+), 78 deletions(-) diff --git a/core/class/camera.class.php b/core/class/camera.class.php index ba29d85..f7f8c33 100644 --- a/core/class/camera.class.php +++ b/core/class/camera.class.php @@ -338,7 +338,7 @@ public static function addDiscoverCam($_config) { /* * *********************Methode d'instance************************* */ public function configOnvif() { - try{ + try { $onvif = new Ponvif(); $onvif->setUsername($this->getConfiguration('username')); $onvif->setPassword($this->getConfiguration('password')); @@ -349,7 +349,7 @@ public function configOnvif() { $this->setConfiguration('cameraStreamProfileToken', $sources[0][0]['profiletoken']); //save profiletoken for sending onvif ptz cmd $this->setConfiguration('cameraStreamAccessUrl', $mediaUri); } catch (Exception $e) { - log::add('camera','error','[ONVIF] '.$e->getMessage()); + log::add('camera', 'error', '[ONVIF] ' . $e->getMessage()); } } @@ -962,23 +962,22 @@ public function export($_withCmd = true) { } public function getImage() { - if(method_exists($this,'getCustomImage')){ - $customImage = $this->getCustomImage(); - if($customImage !== null){ - return $customImage; - } - } + if (method_exists($this, 'getCustomImage')) { + $customImage = $this->getCustomImage(); + if ($customImage !== null) { + return $customImage; + } + } if (file_exists(__DIR__ . '/../config/devices/' . self::getImgFilePath($this->getConfiguration('device')) . '.png')) { return 'plugins/camera/core/config/devices/' . self::getImgFilePath($this->getConfiguration('device')) . '.png'; } return 'plugins/camera/core/config/devices/' . self::getImgFilePath($this->getConfiguration('device')) . '.jpg'; } - - public static function backupExclude() - { - // retourne le répertoire des datas à ne pas enregistrer dans le backup Jeedom - return ['data']; - } + + public static function backupExclude() { + // retourne le répertoire des datas à ne pas enregistrer dans le backup Jeedom + return ['data']; + } /* * **********************Getteur Setteur*************************** */ } @@ -1064,70 +1063,70 @@ public function execute($_options = null) { $eqLogic->recordCam($_options['title'], $_options['message']); return true; } - if ($eqLogic->getConfiguration('device') == 'onvif') { - $profileToken = $eqLogic->getConfiguration('cameraStreamProfileToken'); - $speedX = $eqLogic->getConfiguration('speed_x', 1); - $speedY = $eqLogic->getConfiguration('speed_y', 1); - $speedZ = $eqLogic->getConfiguration('speed_z', 1); - $sleep = $eqLogic->getConfiguration('delay_stop', 0) * 1000; - - $onvif = new Ponvif(); - $onvif->setUsername($eqLogic->getConfiguration('username')); - $onvif->setPassword($eqLogic->getConfiguration('password')); - $onvif->setIPAddress($eqLogic->getConfiguration('ip') . ':' . $eqLogic->getConfiguration('onvif_port', 80)); - $onvif->initialize(); - - $action = false; - - try { - switch ($this->getLogicalId()) { - case 'ptzleft': - $onvif->ptz_ContinuousMove($profileToken, -$speedX, 0); - $action = true; - break; - case 'ptzright': - $onvif->ptz_ContinuousMove($profileToken, $speedX, 0); - $action = true; - break; - case 'ptzup': - $onvif->ptz_ContinuousMove($profileToken, 0, $speedY); - $action = true; - break; - case 'ptzdown': - $onvif->ptz_ContinuousMove($profileToken, 0, -$speedY); - $action = true; - break; - case 'ptzzoomin': - case 'ptzzoomout': - $onvif->ptz_ContinuousMoveZoom($profileToken, ($logicalId === 'ptzzoomout') ? -$speedZ : $speedZ); - $action = true; - break; - case 'ptzmovestop': - $onvif->ptz_ContinuousMove($profileToken, 0, 0); - break; - case 'ptzstop': - $onvif->ptz_Stop($profileToken, 'true', 'true'); - break; - case 'ptzreboot': - $onvif->core_SystemReboot(); - break; - case 'gotohome': - $onvif->ptz_GotoHomePosition($profileToken, 0, 0); - break; - } - - if ($action && strpos($request = $this->getConfiguration('stopCmdUrl'), '#') === 0) { - usleep($sleep); - $cmd = cmd::byId(str_replace('#', '', $request)); - if (is_object($cmd)) { - $cmd->execCmd(); - } - return true; - } - } catch (Exception $e) { - log::add('camera', 'debug', 'onvif error reason for ' . $this->getLogicalId() . ' : ' . json_encode($onvif->getLastResponse())); - } - } + if ($eqLogic->getConfiguration('device') == 'onvif') { + $profileToken = $eqLogic->getConfiguration('cameraStreamProfileToken'); + $speedX = $eqLogic->getConfiguration('speed_x', 1); + $speedY = $eqLogic->getConfiguration('speed_y', 1); + $speedZ = $eqLogic->getConfiguration('speed_z', 1); + $sleep = $eqLogic->getConfiguration('delay_stop', 0) * 1000; + + $onvif = new Ponvif(); + $onvif->setUsername($eqLogic->getConfiguration('username')); + $onvif->setPassword($eqLogic->getConfiguration('password')); + $onvif->setIPAddress($eqLogic->getConfiguration('ip') . ':' . $eqLogic->getConfiguration('onvif_port', 80)); + $onvif->initialize(); + + $action = false; + + try { + switch ($this->getLogicalId()) { + case 'ptzleft': + $onvif->ptz_ContinuousMove($profileToken, -$speedX, 0); + $action = true; + break; + case 'ptzright': + $onvif->ptz_ContinuousMove($profileToken, $speedX, 0); + $action = true; + break; + case 'ptzup': + $onvif->ptz_ContinuousMove($profileToken, 0, $speedY); + $action = true; + break; + case 'ptzdown': + $onvif->ptz_ContinuousMove($profileToken, 0, -$speedY); + $action = true; + break; + case 'ptzzoomin': + case 'ptzzoomout': + $onvif->ptz_ContinuousMoveZoom($profileToken, ($logicalId === 'ptzzoomout') ? -$speedZ : $speedZ); + $action = true; + break; + case 'ptzmovestop': + $onvif->ptz_ContinuousMove($profileToken, 0, 0); + break; + case 'ptzstop': + $onvif->ptz_Stop($profileToken, 'true', 'true'); + break; + case 'ptzreboot': + $onvif->core_SystemReboot(); + break; + case 'gotohome': + $onvif->ptz_GotoHomePosition($profileToken, 0, 0); + break; + } + + if ($action && strpos($request = $this->getConfiguration('stopCmdUrl'), '#') === 0) { + usleep($sleep); + $cmd = cmd::byId(str_replace('#', '', $request)); + if (is_object($cmd)) { + $cmd->execCmd(); + } + return true; + } + } catch (Exception $e) { + log::add('camera', 'debug', 'onvif error reason for ' . $this->getLogicalId() . ' : ' . json_encode($onvif->getLastResponse())); + } + } if (strpos($request, '#') === 0) { $cmd = cmd::byId(str_replace('#', '', $request)); if (is_object($cmd)) { From 18cec0048e11205fe16e9d14f6206d7fe17464e0 Mon Sep 17 00:00:00 2001 From: Salvialf Date: Thu, 23 Jul 2026 17:01:06 +0200 Subject: [PATCH 35/47] fix(cameraCmd): correct undefined $logicalId (ONVIF ptzzoomout) and harmonize calls --- core/class/camera.class.php | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/core/class/camera.class.php b/core/class/camera.class.php index f7f8c33..85bdc6e 100644 --- a/core/class/camera.class.php +++ b/core/class/camera.class.php @@ -1020,19 +1020,20 @@ public function execute($_options = null) { break; } $eqLogic = $this->getEqLogic(); - if ($this->getLogicalId() == 'recordCmd') { + $logicalId = $this->getLogicalId(); + if ($logicalId === 'recordCmd') { $eqLogic->recordCam($_options['slider']); return true; } - if ($this->getLogicalId() == 'stopRecordCmd') { + if ($logicalId === 'stopRecordCmd') { $eqLogic->stopRecord(); return true; } - if ($this->getLogicalId() == 'takeSnapshot') { + if ($logicalId === 'takeSnapshot') { $eqLogic->takeSnapshot(); return true; } - if ($this->getLogicalId() == 'on') { + if ($logicalId === 'on') { $cmd = cmd::byId(str_replace('#', '', $eqLogic->getConfiguration('commandOn'))); if (is_object(!$cmd)) { throw new Exception(__('Impossible de trouver la commande ON', __FILE__)); @@ -1040,7 +1041,7 @@ public function execute($_options = null) { $cmd->execCmd(); return true; } - if ($this->getLogicalId() == 'off') { + if ($logicalId === 'off') { if ($eqLogic->getCmd(null, 'recordState')->execCmd() == 1) { $eqLogic->stopCam(); return true; @@ -1053,7 +1054,7 @@ public function execute($_options = null) { $cmd->execCmd(); return true; } - if ($this->getLogicalId() == 'sendSnapshot') { + if ($logicalId === 'sendSnapshot') { if (!isset($_options['title'])) { $_options['title'] = ''; } @@ -1079,7 +1080,7 @@ public function execute($_options = null) { $action = false; try { - switch ($this->getLogicalId()) { + switch ($logicalId) { case 'ptzleft': $onvif->ptz_ContinuousMove($profileToken, -$speedX, 0); $action = true; @@ -1124,7 +1125,7 @@ public function execute($_options = null) { return true; } } catch (Exception $e) { - log::add('camera', 'debug', 'onvif error reason for ' . $this->getLogicalId() . ' : ' . json_encode($onvif->getLastResponse())); + log::add('camera', 'debug', 'onvif error reason for ' . $logicalId . ' : ' . json_encode($onvif->getLastResponse())); } } if (strpos($request, '#') === 0) { From bf024bc36e3a31aa1875c58defc2eeff3bf70b0a Mon Sep 17 00:00:00 2001 From: Salvialf Date: Thu, 23 Jul 2026 17:03:45 +0200 Subject: [PATCH 36/47] fix(info.json): require minimal Jeedom core 4.3.1 for backupExclude support --- plugin_info/info.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin_info/info.json b/plugin_info/info.json index 792cfc1..0e79b11 100644 --- a/plugin_info/info.json +++ b/plugin_info/info.json @@ -15,7 +15,7 @@ }, "licence": "AGPL", "author": "Jeedom SAS", - "require": "4.2", + "require": "4.3.1", "category": "security", "display": "panel", "mobile": "panel", @@ -50,4 +50,4 @@ ], "changelog_beta": "https:\/\/doc.jeedom.com\/#language#\/plugins\/security\/camera\/beta\/changelog", "documentation_beta": "https:\/\/doc.jeedom.com\/#language#\/plugins\/security\/camera\/beta" -} \ No newline at end of file +} From 2e1f2ad7029210cc477b5c6553b50edcdf7b17f3 Mon Sep 17 00:00:00 2001 From: Salvialf Date: Thu, 23 Jul 2026 17:04:52 +0200 Subject: [PATCH 37/47] docs(changelog): update changelog for stable version --- docs/fr_FR/changelog.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/fr_FR/changelog.md b/docs/fr_FR/changelog.md index 81bb639..10a1fd7 100644 --- a/docs/fr_FR/changelog.md +++ b/docs/fr_FR/changelog.md @@ -4,9 +4,15 @@ > >S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte. -- Correction d'un bug sur l'accès aux enregistrements videos -- Amélioration de la gestion des retours a la ligne dans le widget [LIEN](https://github.com/jeedom/plugin-camera/pull/85) +# 23/07/2026 + +- Ajout d'une option pour convertir les fluxs H265 en H264 +- Correction d'un bug sur l'accès aux enregistrements vidéo +- Amélioration de la gestion des retours a la ligne dans le widget +- Ajout de la camera Reolink TrackMix - Ajout de la caméra Ubiquiti G5 Turret Ultra +- Correction de la tâche de nettoyage quotidienne *(arrêt des flux HLS obsolètes et rotation de la clé d'accès locale)* +- Version minimale du core Jeedom requise : 4.3.1 # 24/01/2024 From ce518ac8ac23afbd0915f8e95a9f51fae37a5b8c Mon Sep 17 00:00:00 2001 From: Salvialf Date: Thu, 23 Jul 2026 17:16:29 +0200 Subject: [PATCH 38/47] chore(workflows): adopt jeedom/workflows canonical CI, adding PHP 8.0/8.2 lint --- .github/workflows/codeLintGlobal.yml | 62 ---------------------------- .github/workflows/lint_Php73.yml | 28 ------------- .github/workflows/lint_Php74.yml | 28 ------------- .github/workflows/php.yml | 23 ----------- .github/workflows/prettier.yml | 56 ------------------------- .github/workflows/work.yml | 15 +++++++ 6 files changed, 15 insertions(+), 197 deletions(-) delete mode 100644 .github/workflows/codeLintGlobal.yml delete mode 100644 .github/workflows/lint_Php73.yml delete mode 100644 .github/workflows/lint_Php74.yml delete mode 100644 .github/workflows/php.yml delete mode 100644 .github/workflows/prettier.yml create mode 100644 .github/workflows/work.yml diff --git a/.github/workflows/codeLintGlobal.yml b/.github/workflows/codeLintGlobal.yml deleted file mode 100644 index d10bd11..0000000 --- a/.github/workflows/codeLintGlobal.yml +++ /dev/null @@ -1,62 +0,0 @@ -on: - # Trigger the workflow on push or pull request, - # but only for the main branch - push: - branches: - - beta - pull_request: - branches: - - beta - - master - -name : 'Code Lint Global' - -jobs: - run-linters: - name: Test Linters - runs-on: ubuntu-latest - - steps: - - name: Check out Git repository - uses: actions/checkout@v3 - - - name: Set up PHP - uses: shivammathur/setup-php@v2 - with: - php-version: "7.4" - coverage: none - tools: phpcs - - - name: Set up Python - uses: actions/setup-python@v1 - with: - python-version: 3.8 - - - name: Set up Node.js - uses: actions/setup-node@v1 - with: - node-version: 14 - - # ESLint and Prettier must be in `package.json` - - name: Install Node.js dependencies - run: npm i prettier - - - name: Install Python dependencies - run: pip install flake8 black - - - name: Run linters - uses: wearerequired/lint-action@v2 - with: - php_codesniffer: false - # Optional: Ignore warnings - php_codesniffer_args: "-n --ignore-annotations ./core ./desktop ./plugin_info" - flake8: true - prettier: true - prettier_extensions: css,html,js,json,jsx,md,sass,scss,ts,tsx,vue,yaml - auto_fix: true - prettier_auto_fix: true - git_email: commit@jeedom.com - git_name: 'JeedomBot lint Pretty' - commit: false - black: true - black_auto_fix: true diff --git a/.github/workflows/lint_Php73.yml b/.github/workflows/lint_Php73.yml deleted file mode 100644 index e9f65cf..0000000 --- a/.github/workflows/lint_Php73.yml +++ /dev/null @@ -1,28 +0,0 @@ -name : 'Php 7.3' - -on: - push: - branches: - - beta - paths: - - "**.php" - pull_request: - branches: - - beta - - master - paths: - - "**.php" - -jobs: - run-linters: - name: Run linters - runs-on: ubuntu-latest - - steps: - - name: Check out Git repository - uses: actions/checkout@v3 - - - name: PHP syntax checker 7.3 - uses: prestashop/github-action-php-lint/7.3@v1 - with: - folder-to-exclude: "! -path \"./3rdparty/*\"" diff --git a/.github/workflows/lint_Php74.yml b/.github/workflows/lint_Php74.yml deleted file mode 100644 index e87f508..0000000 --- a/.github/workflows/lint_Php74.yml +++ /dev/null @@ -1,28 +0,0 @@ -name : 'Php 7.4' - -on: - push: - branches: - - beta - paths: - - "**.php" - pull_request: - branches: - - beta - - master - paths: - - "**.php" - -jobs: - run-linters: - name: Run linters - runs-on: ubuntu-latest - - steps: - - name: Check out Git repository - uses: actions/checkout@v3 - - - name: PHP syntax checker 7.4 - uses: prestashop/github-action-php-lint/7.4@v1 - with: - folder-to-exclude: "! -path \"./3rdparty/*\"" diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml deleted file mode 100644 index b6669dc..0000000 --- a/.github/workflows/php.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: "PHP" - -on: - push: - branches: - - beta - paths: - - "**.php" - pull_request: - branches: - - beta - - master - paths: - - "**.php" - -jobs: - phpcs: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: michaelw90/PHP-Lint@master - - diff --git a/.github/workflows/prettier.yml b/.github/workflows/prettier.yml deleted file mode 100644 index 26d8687..0000000 --- a/.github/workflows/prettier.yml +++ /dev/null @@ -1,56 +0,0 @@ -on: - # Trigger the workflow on push or pull request, - # but only for the main branch - push: - branches: - - prettier - pull_request: - branches: - - prettier - -name : 'Prettier' - -jobs: - run-linters: - name: Test Linters - runs-on: ubuntu-latest - - steps: - - name: Check out Git repository - uses: actions/checkout@v3 - - - name: Set up PHP - uses: shivammathur/setup-php@v2 - with: - php-version: "7.4" - coverage: none - tools: phpcs - - - name: Set up Python - uses: actions/setup-python@v1 - with: - python-version: 3.8 - - - name: Set up Node.js - uses: actions/setup-node@v1 - with: - node-version: 14 - - # ESLint and Prettier must be in `package.json` - - name: Install Node.js dependencies - run: npm i prettier - - - name: Install Python dependencies - run: pip install black - - - name: Run linters - uses: wearerequired/lint-action@v2 - with: - prettier: true - prettier_extensions: css,html,js,json,jsx,md,sass,scss,ts,tsx,vue,yaml - auto_fix: true - prettier_auto_fix: true - git_email: commit@jeedom.com - git_name: 'JeedomBot lint Pretty' - black: true - black_auto_fix: true diff --git a/.github/workflows/work.yml b/.github/workflows/work.yml new file mode 100644 index 0000000..345021e --- /dev/null +++ b/.github/workflows/work.yml @@ -0,0 +1,15 @@ +on: + # Workflows check plugin Jeedom + push: + branches: + - beta + pull_request: + branches: + - beta + - master + +name : 'Full Workflows Plugin Jeedom' + +jobs: + plugin: + uses: jeedom/workflows/.github/workflows/plugin.yml@main From f259e71d2482592fdc88229d04ebbb26d391b99f Mon Sep 17 00:00:00 2001 From: Salvialf Date: Thu, 23 Jul 2026 19:17:29 +0200 Subject: [PATCH 39/47] chore(workflows): add prettier CI wrapper --- .github/workflows/prettier.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .github/workflows/prettier.yml diff --git a/.github/workflows/prettier.yml b/.github/workflows/prettier.yml new file mode 100644 index 0000000..08026e2 --- /dev/null +++ b/.github/workflows/prettier.yml @@ -0,0 +1,14 @@ +on: + # Create branch > prettier / this workflows create commit on branch prettier. + push: + branches: + - prettier + pull_request: + branches: + - prettier + +name : 'Prettier Plugin Jeedom' + +jobs: + prettier: + uses: jeedom/workflows/.github/workflows/prettier.yml@main From 70bc175a92df079914726a243a37d96734d2df00 Mon Sep 17 00:00:00 2001 From: Jenkins Date: Thu, 23 Jul 2026 23:23:27 +0000 Subject: [PATCH 40/47] [Jenkins] Updated translation --- .../devices/reolink/reolink.trackMix.png | Bin 88726 -> 23236 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/core/config/devices/reolink/reolink.trackMix.png b/core/config/devices/reolink/reolink.trackMix.png index 329967e6de5743944713a4c570d0ec3b441323ad..328a6ed88d3dcdbb77a7e899bbeaf5c832d59f05 100644 GIT binary patch literal 23236 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%0DD<_;ohDdt;2jhQ+T^)QBdR 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%0AxxC2Xf?z&_MA#HMnkfKYJ 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 AeE Date: Mon, 27 Jul 2026 09:19:17 +0200 Subject: [PATCH 41/47] chore(camera.ajax): code formatting --- core/ajax/camera.ajax.php | 42 +++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/core/ajax/camera.ajax.php b/core/ajax/camera.ajax.php index dd995ca..dbb068f 100644 --- a/core/ajax/camera.ajax.php +++ b/core/ajax/camera.ajax.php @@ -19,47 +19,47 @@ try { require_once dirname(__FILE__) . '/../../../../core/php/core.inc.php'; include_file('core', 'authentification', 'php'); - + ajax::init(); - + if (!isConnect()) { throw new Exception(__('401 - Accès non autorisé', __FILE__)); } - + if (init('action') == 'stream') { $camera = camera::byId(init('id')); - if(!is_object($camera)){ - throw new \Exception(__('Impossible de trouver la camera : ',__FILE__).init('id')); + if (!is_object($camera)) { + throw new \Exception(__('Impossible de trouver la camera : ', __FILE__) . init('id')); } $rtspScript = dirname(__FILE__) . '/../../3rdparty/rtsp-to-hls-' . ($camera->getConfiguration('encodeX264RTSP', 0) == 1 ? 'x264' : 'copy') . '.sh '; - if(count(system::ps('rtsp-to-hls-*.sh.*'.$camera->getConfiguration('localApiKey'))) == 0){ - shell_exec('(ps ax || ps w) | grep ffmpeg.*'.$camera->getConfiguration('localApiKey').' | awk \'{print $2}\' | xargs sudo kill -9'); + if (count(system::ps('rtsp-to-hls-*.sh.*' . $camera->getConfiguration('localApiKey'))) == 0) { + shell_exec('(ps ax || ps w) | grep ffmpeg.*' . $camera->getConfiguration('localApiKey') . ' | awk \'{print $2}\' | xargs sudo kill -9'); $replace = array( '#username#' => urlencode($camera->getConfiguration('username')), '#password#' => urlencode($camera->getConfiguration('password')), '#ip#' => urlencode($camera->getConfiguration('ip')), '#port#' => urlencode($camera->getConfiguration('port')), ); - $engine = config::byKey('rtsp::engine','camera','avconv'); + $engine = config::byKey('rtsp::engine', 'camera', 'avconv'); if (!file_exists(dirname(__FILE__) . '/../../data/segments')) { mkdir(dirname(__FILE__) . '/../../data/segments', 0777, true); } - log::add('camera', 'debug', 'nohup ' . $rtspScript . trim(str_replace(array_keys($replace), $replace, $camera->getConfiguration('cameraStreamAccessUrl'))).' "' . $camera->getConfiguration('localApiKey') . '" > /dev/null 2>&1 &'); - exec('nohup ' . $rtspScript . trim(str_replace(array_keys($replace), $replace, $camera->getConfiguration('cameraStreamAccessUrl'))).' "' . $camera->getConfiguration('localApiKey') . '" > /dev/null 2>&1 &'); - $i=0; - while(!file_exists(__DIR__.'/../../data/'.$camera->getConfiguration('localApiKey').'.m3u8')){ + log::add('camera', 'debug', 'nohup ' . $rtspScript . trim(str_replace(array_keys($replace), $replace, $camera->getConfiguration('cameraStreamAccessUrl'))) . ' "' . $camera->getConfiguration('localApiKey') . '" > /dev/null 2>&1 &'); + exec('nohup ' . $rtspScript . trim(str_replace(array_keys($replace), $replace, $camera->getConfiguration('cameraStreamAccessUrl'))) . ' "' . $camera->getConfiguration('localApiKey') . '" > /dev/null 2>&1 &'); + $i = 0; + while (!file_exists(__DIR__ . '/../../data/' . $camera->getConfiguration('localApiKey') . '.m3u8')) { sleep(1); $i++; - if($i>30){ + if ($i > 30) { break; } } } - $camera->setCache('lastStreamCall',strtotime('now')); - shell_exec(system::getCmdSudo().' find '.__DIR__.'/../../data/segments/'.$camera->getConfiguration('localApiKey').'-*.ts -mmin +5 -type f -exec rm -f {} \; 2>&1 > /dev/null'); + $camera->setCache('lastStreamCall', strtotime('now')); + shell_exec(system::getCmdSudo() . ' find ' . __DIR__ . '/../../data/segments/' . $camera->getConfiguration('localApiKey') . '-*.ts -mmin +5 -type f -exec rm -f {} \; 2>&1 > /dev/null'); ajax::success(); } - + if (init('action') == 'getCamera') { if (init('object_id') == '') { $object = jeeObject::byId($_SESSION['user']->getOptions('defaultDashboardObject')); @@ -92,16 +92,16 @@ } ajax::success($return); } - + if (!isConnect('admin')) { throw new Exception(__('401 - Accès non autorisé', __FILE__)); } - + if (init('action') == 'addDiscoverCam') { camera::addDiscoverCam(json_decode(init('config'), true)); ajax::success(); } - + if (init('action') == 'removeRecord') { $file = init('file'); $file = str_replace('..', '', $file); @@ -109,7 +109,7 @@ shell_exec('rm -rf ' . $record_dir . '/' . $file); ajax::success(); } - + if (init('action') == 'removeAllSnapshot') { $camera = camera::byId(init('id')); if (!is_object($camera)) { @@ -118,7 +118,7 @@ $camera->removeAllSnapshot(); ajax::success(); } - + throw new Exception(__('Aucune methode correspondante à : ', __FILE__) . init('action')); /* * *********Catch exeption*************** */ } catch (Exception $e) { From c951c1eefeb6a8c21e49381cfe4834c143403020 Mon Sep 17 00:00:00 2001 From: Salvialf Date: Mon, 27 Jul 2026 09:22:51 +0200 Subject: [PATCH 42/47] chore(camera.js): code formatting --- desktop/js/camera.js | 224 +++++++++++++++++++++---------------------- 1 file changed, 112 insertions(+), 112 deletions(-) diff --git a/desktop/js/camera.js b/desktop/js/camera.js index 01d6de7..7e0d1ab 100644 --- a/desktop/js/camera.js +++ b/desktop/js/camera.js @@ -14,156 +14,156 @@ * You should have received a copy of the GNU General Public License * along with Jeedom. If not, see . */ -$('#bt_healthCamera').on('click', function () { - $('#md_modal').dialog({title: "{{Santé Caméras}}"}); - $('#md_modal').load('index.php?v=d&plugin=camera&modal=health').dialog('open'); -}); +$('#bt_healthCamera').on('click', function() { + $('#md_modal').dialog({ title: "{{Santé Caméras}}" }) + $('#md_modal').load('index.php?v=d&plugin=camera&modal=health').dialog('open') +}) -$('#bt_discoverCam').on('click', function () { - $('#md_modal').dialog({title: "{{Découverte Caméras}}"}); - $('#md_modal').load('index.php?v=d&plugin=camera&modal=discover.cam').dialog('open'); -}); +$('#bt_discoverCam').on('click', function() { + $('#md_modal').dialog({ title: "{{Découverte Caméras}}" }) + $('#md_modal').load('index.php?v=d&plugin=camera&modal=discover.cam').dialog('open') +}) -$('#bt_previewCam').off('click').on('click',function(){ - $('#md_modal').dialog({title: "{{Prévisualisation}}"}); - $('#md_modal').load('index.php?v=d&plugin=camera&modal=camera.preview&id='+$('.eqLogicAttr[data-l1key=id]').value()).dialog('open'); -}); +$('#bt_previewCam').off('click').on('click', function() { + $('#md_modal').dialog({ title: "{{Prévisualisation}}" }) + $('#md_modal').load('index.php?v=d&plugin=camera&modal=camera.preview&id=' + $('.eqLogicAttr[data-l1key=id]').value()).dialog('open') +}) -$('.eqLogicAttr[data-l1key=configuration][data-l2key=doNotCompressImage]').on('change', function () { - if($(this).value() == 1){ - $('.compressOpt').prop('disabled', true); - }else{ - $('.compressOpt').prop('disabled', false); +$('.eqLogicAttr[data-l1key=configuration][data-l2key=doNotCompressImage]').on('change', function() { + if ($(this).value() == 1) { + $('.compressOpt').prop('disabled', true) + } else { + $('.compressOpt').prop('disabled', false) } -}); +}) -$("#table_cmd").sortable({axis: "y", cursor: "move", items: ".cmd", placeholder: "ui-state-highlight", tolerance: "intersect", forcePlaceholderSize: true}); +$("#table_cmd").sortable({ axis: "y", cursor: "move", items: ".cmd", placeholder: "ui-state-highlight", tolerance: "intersect", forcePlaceholderSize: true }) -$('.eqLogicAttr[data-l1key=configuration][data-l2key=device]').on('change', function () { - if($('.li_eqLogic.active').attr('data-eqlogic_id') != '' && $(this).value() != ''){ +$('.eqLogicAttr[data-l1key=configuration][data-l2key=device]').on('change', function() { + if ($('.li_eqLogic.active').attr('data-eqlogic_id') != '' && $(this).value() != '') { var img = $('.eqLogicAttr[data-l1key=configuration][data-l2key=device] option:selected').attr('data-img') - $('#img_device').attr("src", 'plugins/camera/core/config/devices/'+img); - }else{ - $('#img_device').attr("src",'plugins/camera/plugin_info/camera_icon.png'); + $('#img_device').attr("src", 'plugins/camera/core/config/devices/' + img) + } else { + $('#img_device').attr("src", 'plugins/camera/plugin_info/camera_icon.png') } - if($(this).value() == 'onvif'){ - $('.onvifgOnly').show(); - }else{ - $('.onvifgOnly').hide(); + if ($(this).value() == 'onvif') { + $('.onvifgOnly').show() + } else { + $('.onvifgOnly').hide() } -}); +}) -$('#div_pageContainer').off('click','.listCmdActionOther').on('click','.listCmdActionOther', function () { - var el = $(this); - jeedom.cmd.getSelectModal({cmd: {type: 'action',subType : 'other'}}, function (result) { - el.closest('.input-group').find('input').value(result.human); - }); -}); +$('#div_pageContainer').off('click', '.listCmdActionOther').on('click', '.listCmdActionOther', function() { + var el = $(this) + jeedom.cmd.getSelectModal({ cmd: { type: 'action', subType: 'other' } }, function(result) { + el.closest('.input-group').find('input').value(result.human) + }) +}) function addCmdToTable(_cmd) { if (!isset(_cmd)) { - var _cmd = {}; + var _cmd = {} } if (!isset(_cmd.configuration)) { - _cmd.configuration = {}; + _cmd.configuration = {} } if (isset(_cmd.logicalId) && - (_cmd.logicalId == 'browseRecord' || _cmd.logicalId == 'recordState' || _cmd.logicalId == 'recordCmd' || _cmd.logicalId == 'stopRecordCmd' || _cmd.logicalId == 'takeSnapshot' || _cmd.logicalId == 'sendSnapshot' || _cmd.logicalId == 'urlFlux' || _cmd.logicalId == 'on' || _cmd.logicalId == 'off')) { - return; + (_cmd.logicalId == 'browseRecord' || _cmd.logicalId == 'recordState' || _cmd.logicalId == 'recordCmd' || _cmd.logicalId == 'stopRecordCmd' || _cmd.logicalId == 'takeSnapshot' || _cmd.logicalId == 'sendSnapshot' || _cmd.logicalId == 'urlFlux' || _cmd.logicalId == 'on' || _cmd.logicalId == 'off')) { + return } - var tr = ''; - tr += ''; - tr += ''; - tr += ''; - tr += ''; - tr += ''; - tr += ''; - tr += ''; - tr += '' + jeedom.cmd.availableType() + ''; - tr += ''; - tr += ''; - tr += ''; - tr += '
'; - tr += ''; - tr += ''; - tr += ''; - tr += ''; - tr += '
'; - tr += '
'; - tr += ''; - tr += ''; - tr += ''; - tr += ''; - tr += '
'; - tr += ''; - tr += ''; - tr += ''; - tr += ''; - tr += ' '; - tr += ''; - tr += '
'; - tr += '
'; - tr += ' Icone'; - tr += ''; - tr += '
'; - tr += '
'; - tr += ''; - tr += '
'; - tr += '
'; - tr += ''; - tr += ''; + var tr = '' + tr += '' + tr += '' + tr += '' + tr += '' + tr += '
' + tr += '
' + tr += ' Icone' + tr += '' + tr += '
' + tr += '
' + tr += '' + tr += '
' + tr += '
' + tr += '' + tr += '' + tr += '' + jeedom.cmd.availableType() + '' + tr += '' + tr += '' + tr += '' + tr += '
' + tr += '' + tr += '' + tr += '' + tr += '' + tr += '
' + tr += '
' + tr += '' + tr += '' + tr += '' + tr += '' + tr += '
' + tr += '' + tr += '' + tr += '' + tr += '' + tr += ' ' + tr += '' + tr += '
' + tr += '' + tr += '' if (is_numeric(_cmd.id)) { - tr += ' '; - tr += ' {{Tester}}'; + tr += ' ' + tr += ' {{Tester}}' } - tr += ''; - tr += ''; - $('#table_cmd tbody').append(tr); - $('#table_cmd tbody tr').last().setValues(_cmd, '.cmdAttr'); - jeedom.cmd.changeType($('#table_cmd tbody tr').last(), init(_cmd.subType)); + tr += '' + tr += '' + $('#table_cmd tbody').append(tr) + $('#table_cmd tbody tr').last().setValues(_cmd, '.cmdAttr') + jeedom.cmd.changeType($('#table_cmd tbody tr').last(), init(_cmd.subType)) } -$('#table_cmd tbody').on('change','.cmd .cmdAttr[data-l1key=type]',function(){ - var cmd = $(this).closest('.cmd'); - if($(this).value() == 'info'){ - cmd.find('.cmdAttr[data-l1key=configuration][data-l2key=request]').closest('.input-group').hide(); - cmd.find('.cmdAttr[data-l1key=configuration][data-l2key=stopCmdUrl]').closest('.input-group').hide(); - cmd.find('.actionMode').hide(); - }else{ - cmd.find('.cmdAttr[data-l1key=logicalId]').hide(); - cmd.find('.cmdAttr[data-l1key=configuration][data-l2key=request]').closest('.input-group').show(); - cmd.find('.cmdAttr[data-l1key=configuration][data-l2key=stopCmdUrl]').closest('.input-group').show(); - cmd.find('.actionMode').show(); +$('#table_cmd tbody').on('change', '.cmd .cmdAttr[data-l1key=type]', function() { + var cmd = $(this).closest('.cmd') + if ($(this).value() == 'info') { + cmd.find('.cmdAttr[data-l1key=configuration][data-l2key=request]').closest('.input-group').hide() + cmd.find('.cmdAttr[data-l1key=configuration][data-l2key=stopCmdUrl]').closest('.input-group').hide() + cmd.find('.actionMode').hide() + } else { + cmd.find('.cmdAttr[data-l1key=logicalId]').hide() + cmd.find('.cmdAttr[data-l1key=configuration][data-l2key=request]').closest('.input-group').show() + cmd.find('.cmdAttr[data-l1key=configuration][data-l2key=stopCmdUrl]').closest('.input-group').show() + cmd.find('.actionMode').show() } -}); +}) -$('#bt_removeAllCapture').on('click',function(){ - bootbox.confirm('{{Etes-vous sur de vouloir supprimer toutes les captures de la caméra ?}}', function (result) { +$('#bt_removeAllCapture').on('click', function() { + bootbox.confirm('{{Etes-vous sur de vouloir supprimer toutes les captures de la caméra ?}}', function(result) { if (result) { $.ajax({ type: "POST", url: "plugins/camera/core/ajax/camera.ajax.php", data: { action: "removeAllSnapshot", - id : $('.eqLogicAttr[data-l1key=id]').value() + id: $('.eqLogicAttr[data-l1key=id]').value() }, dataType: 'json', - error: function (request, status, error) { - handleAjaxError(request, status, error); + error: function(request, status, error) { + handleAjaxError(request, status, error) }, - success: function (data) { + success: function(data) { if (data.state != 'ok') { - $('#div_alert').showAlert({message: data.result, level: 'danger'}); - return; + $('#div_alert').showAlert({ message: data.result, level: 'danger' }) + return } - $('#div_alert').showAlert({message: '{{Supression réussie}}', level: 'success'}); + $('#div_alert').showAlert({ message: '{{Supression réussie}}', level: 'success' }) } - }); + }) } - }); -}); + }) +}) -function prePrintEqLogic(){ +function prePrintEqLogic() { $('.eqLogicAttr[data-l1key=configuration][data-l2key=doNotCompressImage]').value() } From d6e2ca07612df457a68197ae213114603982ba50 Mon Sep 17 00:00:00 2001 From: Salvialf Date: Mon, 27 Jul 2026 09:28:21 +0200 Subject: [PATCH 43/47] fix(camera): remove dead die() after infinite loop in stopCam.php --- core/php/stopCam.php | 1 - 1 file changed, 1 deletion(-) diff --git a/core/php/stopCam.php b/core/php/stopCam.php index 947bc51..f954de4 100644 --- a/core/php/stopCam.php +++ b/core/php/stopCam.php @@ -75,4 +75,3 @@ die(); } } -die(); \ No newline at end of file From eb441cb492e9bddb2d0e0c870c8b6be69568d85a Mon Sep 17 00:00:00 2001 From: Salvialf Date: Mon, 27 Jul 2026 09:33:09 +0200 Subject: [PATCH 44/47] fix(camera.preview): remove unused second argument from toHtml() call --- desktop/modal/camera.preview.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/modal/camera.preview.php b/desktop/modal/camera.preview.php index 08056f9..e896acf 100644 --- a/desktop/modal/camera.preview.php +++ b/desktop/modal/camera.preview.php @@ -9,4 +9,4 @@ if ($eqLogic->getEqType_name() != 'camera') { throw new Exception(__('L\'équipement n\'est pas une camera', __FILE__)); } -echo $eqLogic->toHtml('dashboard', true); +echo $eqLogic->toHtml('dashboard'); From ae557275a8372b6cc4b81feb9fddc4fc72aaa766 Mon Sep 17 00:00:00 2001 From: Salvialf Date: Mon, 27 Jul 2026 09:35:43 +0200 Subject: [PATCH 45/47] fix(camera): correct French labels, error messages and typos --- core/ajax/camera.ajax.php | 4 +-- core/class/camera.class.php | 50 ++++++++++++++++---------------- core/php/record.php | 10 +++---- core/php/sendSnapshot.php | 9 +++--- core/php/stopCam.php | 10 +++---- desktop/js/camera.js | 4 +-- desktop/modal/camera.history.php | 6 ++-- desktop/modal/camera.preview.php | 4 +-- desktop/modal/health.php | 4 +-- desktop/php/camera.php | 16 +++++----- desktop/php/panel.php | 2 +- plugin_info/info.json | 17 ++--------- 12 files changed, 61 insertions(+), 75 deletions(-) diff --git a/core/ajax/camera.ajax.php b/core/ajax/camera.ajax.php index dbb068f..3f9e044 100644 --- a/core/ajax/camera.ajax.php +++ b/core/ajax/camera.ajax.php @@ -29,7 +29,7 @@ if (init('action') == 'stream') { $camera = camera::byId(init('id')); if (!is_object($camera)) { - throw new \Exception(__('Impossible de trouver la camera : ', __FILE__) . init('id')); + throw new \Exception(__('Equipement introuvable', __FILE__) . ' : ' . init('id')); } $rtspScript = dirname(__FILE__) . '/../../3rdparty/rtsp-to-hls-' . ($camera->getConfiguration('encodeX264RTSP', 0) == 1 ? 'x264' : 'copy') . '.sh '; if (count(system::ps('rtsp-to-hls-*.sh.*' . $camera->getConfiguration('localApiKey'))) == 0) { @@ -113,7 +113,7 @@ if (init('action') == 'removeAllSnapshot') { $camera = camera::byId(init('id')); if (!is_object($camera)) { - throw new Exception(__('Impossible de trouver la caméra : ' . init('id'), __FILE__)); + throw new Exception(__('Equipement introuvable', __FILE__) . ' : ' . init('id')); } $camera->removeAllSnapshot(); ajax::success(); diff --git a/core/class/camera.class.php b/core/class/camera.class.php index 85bdc6e..7652303 100644 --- a/core/class/camera.class.php +++ b/core/class/camera.class.php @@ -78,7 +78,7 @@ public static function deamon_start() { } $cron = cron::byClassAndFunction('camera', 'pull'); if (!is_object($cron)) { - throw new Exception(__('Tache cron introuvable', __FILE__)); + throw new Exception(__('Tâche cron introuvable', __FILE__)); } $cron->run(); } @@ -86,7 +86,7 @@ public static function deamon_start() { public static function deamon_stop() { $cron = cron::byClassAndFunction('camera', 'pull'); if (!is_object($cron)) { - throw new Exception(__('Tache cron introuvable', __FILE__)); + throw new Exception(__('Tâche cron introuvable', __FILE__)); } $cron->halt(); } @@ -206,7 +206,7 @@ public static function cronHourly() { $i = 0; while ($dir_size > $max_size) { if (count($files) == 0) { - throw new Exception(__('Erreur aucun fichier trouvé à supprimer alors que le répertoire fait : ', __FILE__) . $dir_size); + throw new Exception(__('Aucun fichier à supprimer alors que le répertoire pèse', __FILE__) . ' ' . $dir_size); } shell_exec('rm -rf ' . $files[$i]['file']); $dir_size -= $files[$i]['filesize']; @@ -367,7 +367,7 @@ public function preSave() { if ($this->getConfiguration('alertMessageCommand') != '') { $cmd = cmd::byId(str_replace('#', '', $this->getConfiguration('alertMessageCommand'))); if (is_object($cmd) && $cmd->getEqType_name() == 'camera') { - throw new Exception(__('La "Commande d\'alerte" ne peut être de type caméra', __FILE__)); + throw new Exception(__('La "Commande d\'alerte" ne doit pas être de type caméra', __FILE__)); } } if ($this->getConfiguration('localApiKey') != '') { @@ -421,7 +421,7 @@ public function preSave() { public function preUpdate() { $this->setCategory('security', 1); if ($this->getConfiguration('ip') == '') { - throw new Exception(__('L\'adresse IP de la camera ne peut être vide', __FILE__)); + throw new Exception(__("L'adresse IP de la caméra doit être renseignée", __FILE__)); } } public function postSave() { @@ -432,7 +432,7 @@ public function postSave() { if (!is_object($urlFlux)) { $urlFlux = new cameraCmd(); } - $urlFlux->setName(__('Flux video', __FILE__)); + $urlFlux->setName(__('Flux vidéo', __FILE__)); $urlFlux->setConfiguration('request', '-'); $urlFlux->setType('info'); $urlFlux->setLogicalId('urlFlux'); @@ -451,7 +451,7 @@ public function postSave() { if (!is_object($recordState)) { $recordState = new cameraCmd(); } - $recordState->setName(__('Status enregistrement', __FILE__)); + $recordState->setName(__('Statut enregistrement', __FILE__)); $recordState->setConfiguration('recordState', 1); $recordState->setConfiguration('request', '-'); $recordState->setType('info'); @@ -516,7 +516,7 @@ public function postSave() { if (!is_object($on)) { $on = new cameraCmd(); } - $on->setName(__('On', __FILE__)); + $on->setName(__('Allumer', __FILE__)); $on->setOrder(-1); $on->setType('action'); $on->setLogicalId('on'); @@ -531,7 +531,7 @@ public function postSave() { if (!is_object($off)) { $off = new cameraCmd(); } - $off->setName(__('Off', __FILE__)); + $off->setName(__('Eteindre', __FILE__)); $off->setOrder(-1); $off->setType('action'); $off->setLogicalId('off'); @@ -746,12 +746,12 @@ public function sendSnap($_files, $_background = false, $_part = '') { if (null !== init('title') && init('title') != '') { $options['title'] = init('title'); } else { - $options['title'] = __('Alerte sur la camera : ', __FILE__) . $this->getName() . __(' à ', __FILE__) . date('Y-m-d H:i:s') . $_part; + $options['title'] = __('Alerte sur la caméra', __FILE__) . $this->getName() . ' ' . __('à', __FILE__) . ' ' . date('Y-m-d H:i:s') . $_part; } if (null !== init('message') && init('message') != '') { $options['message'] = init('message') . $_part; } else { - $options['message'] = __('Alerte sur la camera : ', __FILE__) . $this->getName() . __(' à ', __FILE__) . date('Y-m-d H:i:s') . $_part; + $options['message'] = __('Alerte sur la caméra', __FILE__) . $this->getName() . ' ' . __('à', __FILE__) . ' ' . date('Y-m-d H:i:s') . $_part; } $cmds = explode('&&', init('sendTo')); foreach ($cmds as $id) { @@ -762,7 +762,7 @@ public function sendSnap($_files, $_background = false, $_part = '') { try { $cmd->execCmd($options); } catch (Exception $e) { - log::add('camera', 'error', __('[camera/sendSnap] Erreur lors de l\'envoi des images : ', __FILE__) . $cmd->getHumanName() . ' => ' . log::exception($e)); + log::add('camera', 'error', '[camera/sendSnap] ' . __("Erreur lors de l'envoi des images", __FILE__) . ' : ' . $cmd->getHumanName() . ' => ' . log::exception($e)); } } } @@ -824,7 +824,7 @@ public function getSnapshot($_takesnapshot = false) { $function = explode('::', $this->getConfiguration('urlStream'))[1]; if (!method_exists($class, $function)) { $data = ''; - log::add('camera', 'debug', __('Impossible de trouver la function ', __FILE__) . $class . '::' . $function); + log::add('camera', 'debug', __('Impossible de trouver la fonction', __FILE__) . ' ' . $class . '::' . $function); } else { $data = $class::$function($this); } @@ -860,30 +860,30 @@ public function takeSnapshot($_forVideo = 0, $_number = 0) { $output_dir = calculPath(config::byKey('recordDir', 'camera')); if (!file_exists($output_dir)) { if (!mkdir($output_dir, 0777, true)) { - throw new Exception(__('Impossible de creer le dossier : ', __FILE__) . $output_dir); + throw new Exception(__('Impossible de créer le dossier', __FILE__) . ' ' . $output_dir); } } if (!is_writable($output_dir)) { - throw new Exception(__('Impossible d\'écrire dans le dossier : ', __FILE__) . $output_dir); + throw new Exception(__("Impossible d'écrire dans le dossier", __FILE__) . ' ' . $output_dir); } $output_dir .= '/' . $this->getId(); if (!file_exists($output_dir)) { if (!mkdir($output_dir, 0777, true)) { - throw new Exception(__('Impossible de creer le dossier : ', __FILE__) . $output_dir); + throw new Exception(__('Impossible de créer le dossier', __FILE__) . ' ' . $output_dir); } } if (!is_writable($output_dir)) { - throw new Exception(__('Impossible d\'écrire dans le dossier : ', __FILE__) . $output_dir); + throw new Exception(__("Impossible d'écrire dans le dossier", __FILE__) . ' ' . $output_dir); } $snapshot = $this->getSnapshot(true); if (empty($snapshot)) { - throw new Exception(__('Le fichier est vide : ', __FILE__) . $output_dir); + throw new Exception(__('Le fichier est vide', __FILE__) . ' : ' . $output_dir); } if ($_forVideo == 1) { $output_dir .= '/movie_temp'; if (!file_exists($output_dir)) { if (!mkdir($output_dir, 0777, true)) { - throw new Exception(__('Impossible de creer le dossier : ', __FILE__) . $output_dir); + throw new Exception(__('Impossible de créer le dossier', __FILE__) . ' ' . $output_dir); } } if ($_number == 2) { @@ -902,20 +902,20 @@ public function removeAllSnapshot() { $output_dir = calculPath(config::byKey('recordDir', 'camera')); if (!file_exists($output_dir)) { if (!mkdir($output_dir, 0777, true)) { - throw new Exception(__('Impossible de creer le dossier : ', __FILE__) . $output_dir); + throw new Exception(__('Impossible de créer le dossier', __FILE__) . ' ' . $output_dir); } } if (!is_writable($output_dir)) { - throw new Exception(__('Impossible d\'écrire dans le dossier : ', __FILE__) . $output_dir); + throw new Exception(__("Impossible d'écrire dans le dossier", __FILE__) . ' ' . $output_dir); } $output_dir .= '/' . $this->getId(); if (!file_exists($output_dir)) { if (!mkdir($output_dir, 0777, true)) { - throw new Exception(__('Impossible de creer le dossier : ', __FILE__) . $output_dir); + throw new Exception(__('Impossible de créer le dossier', __FILE__) . ' ' . $output_dir); } } if (!is_writable($output_dir)) { - throw new Exception(__('Impossible d\'écrire dans le dossier : ', __FILE__) . $output_dir); + throw new Exception(__("Impossible d'écrire dans le dossier", __FILE__) . ' ' . $output_dir); } shell_exec(system::getCmdSudo() . 'rm -rf ' . $output_dir); } @@ -1036,7 +1036,7 @@ public function execute($_options = null) { if ($logicalId === 'on') { $cmd = cmd::byId(str_replace('#', '', $eqLogic->getConfiguration('commandOn'))); if (is_object(!$cmd)) { - throw new Exception(__('Impossible de trouver la commande ON', __FILE__)); + throw new Exception(__('Impossible de trouver la commande "Allumer"', __FILE__)); } $cmd->execCmd(); return true; @@ -1049,7 +1049,7 @@ public function execute($_options = null) { $eqLogic->stopRecord(); $cmd = cmd::byId(str_replace('#', '', $eqLogic->getConfiguration('commandOff'))); if (is_object(!$cmd)) { - throw new Exception(__('Impossible de trouver la commande OFF', __FILE__)); + throw new Exception(__('Impossible de trouver la commande "Eteindre"', __FILE__)); } $cmd->execCmd(); return true; diff --git a/core/php/record.php b/core/php/record.php index 7540c5d..77258d3 100644 --- a/core/php/record.php +++ b/core/php/record.php @@ -15,7 +15,8 @@ * You should have received a copy of the GNU General Public License * along with Jeedom. If not, see . */ -declare (ticks = 1); + +declare(ticks=1); global $SIG; $SIG = false; @@ -46,16 +47,16 @@ function sig_handler($signo) { } } if (init('id') == '') { - log::add('camera', 'error', __('[camera/reccord] L\'id ne peut etre vide', __FILE__)); + log::add('camera', 'error', '[camera/record] ' . __("L'identifiant de l'équipement doit être renseigné", __FILE__)); die(); } $camera = camera::byId(init('id')); if (!is_object($camera)) { - log::add('camera', 'error', __('[camera/reccord] L\'équipement est introuvable : ', __FILE__) . init('id')); + log::add('camera', 'error', '[camera/record] ' . __('Equipement introuvable', __FILE__) . ' : ' . init('id')); die(); } if ($camera->getEqType_name() != 'camera') { - log::add('camera', 'error', __('[camera/reccord] Cet équipement n\'est pas de type camera : ', __FILE__) . $camera->getEqType_name()); + log::add('camera', 'error', '[camera/record] ' . __("L'équipement n'est pas de type caméra", __FILE__) . ' : ' . $camera->getEqType_name()); die(); } set_time_limit($camera->getConfiguration('maxReccordTime', 600)); @@ -121,7 +122,6 @@ function sig_handler($signo) { $files[] = $camera->takeSnapshot(); } } catch (Exception $e) { - } if ($SIG) { break; diff --git a/core/php/sendSnapshot.php b/core/php/sendSnapshot.php index ed09a6c..f3ee721 100644 --- a/core/php/sendSnapshot.php +++ b/core/php/sendSnapshot.php @@ -34,23 +34,22 @@ } if (init('id') == '') { - log::add('camera', 'error', __('[camera/sendsnapshot] L\'id ne peut etre vide', __FILE__)); + log::add('camera', 'error', '[camera/sendsnapshot] ' . __("L'identifiant de l'équipement doit être renseigné", __FILE__)); die(); } $camera = camera::byId(init('id')); if (!is_object($camera)) { - log::add('camera', 'error', __('[camera/sendsnapshot] L\'équipement est introuvable : ', __FILE__) . init('id')); + log::add('camera', 'error', '[camera/sendsnapshot] ' . __('Equipement introuvable', __FILE__) . ' : ' . init('id')); die(); } if ($camera->getEqType_name() != 'camera') { - log::add('camera', 'error', __('[camera/sendsnapshot] Cet équipement n\'est pas de type camera : ', __FILE__) . $camera->getEqType_name()); + log::add('camera', 'error', '[camera/sendsnapshot] ' . __("L'équipement n'est pas de type caméra", __FILE__) . ' : ' . $camera->getEqType_name()); die(); } $files = $camera->getCache('fileToSend'); $camera->setCache('fileToSend', ''); if (!is_array($files) || count($files) == 0) { - log::add('camera', 'error', __('[camera/sendsnapshot]No file found ', __FILE__) . print_r($files, true)); + log::add('camera', 'error', '[camera/sendsnapshot] ' . __('Aucun fichier trouvé', __FILE__) . ' : ' . print_r($files, true)); die(); } $camera->sendSnap($files, false, init('part')); -?> diff --git a/core/php/stopCam.php b/core/php/stopCam.php index f954de4..8f94712 100644 --- a/core/php/stopCam.php +++ b/core/php/stopCam.php @@ -33,16 +33,16 @@ } } if (init('id') == '') { - log::add('camera', 'error', __('[camera/reccord] L\'id ne peut etre vide', __FILE__)); + log::add('camera', 'error', '[camera/record] ' . __("L'identifiant de l'équipement doit être renseigné", __FILE__)); die(); } $camera = camera::byId(init('id')); if (!is_object($camera)) { - log::add('camera', 'error', __('[camera/reccord] L\'équipement est introuvable : ', __FILE__) . init('id')); + log::add('camera', 'error', '[camera/record] ' . __('Equipement introuvable', __FILE__) . ' : ' . init('id')); die(); } if ($camera->getEqType_name() != 'camera') { - log::add('camera', 'error', __('[camera/reccord] Cet équipement n\'est pas de type camera : ', __FILE__) . $camera->getEqType_name()); + log::add('camera', 'error', '[camera/record] ' . __("L'équipement n'est pas de type caméra", __FILE__) . ' : ' . $camera->getEqType_name()); die(); } @@ -55,7 +55,7 @@ if (is_object($stop)) { $cmd = cmd::byId(str_replace('#', '', $camera->getConfiguration('commandOff'))); if (is_object(!$cmd)) { - throw new Exception(__('Impossible de trouver la commande OFF', __FILE__)); + throw new Exception(__('Impossible de trouver la commande "Eteindre"', __FILE__)); } $cmd->execCmd(); } @@ -68,7 +68,7 @@ if (is_object($stop)) { $cmd = cmd::byId(str_replace('#', '', $camera->getConfiguration('commandOff'))); if (is_object(!$cmd)) { - throw new Exception(__('Impossible de trouver la commande OFF', __FILE__)); + throw new Exception(__('Impossible de trouver la commande "Eteindre"', __FILE__)); } $cmd->execCmd(); } diff --git a/desktop/js/camera.js b/desktop/js/camera.js index 7e0d1ab..c60418d 100644 --- a/desktop/js/camera.js +++ b/desktop/js/camera.js @@ -98,7 +98,7 @@ function addCmdToTable(_cmd) { tr += '' tr += '' tr += '
' - tr += '' + tr += '' tr += '' tr += '' tr += '' @@ -157,7 +157,7 @@ $('#bt_removeAllCapture').on('click', function() { $('#div_alert').showAlert({ message: data.result, level: 'danger' }) return } - $('#div_alert').showAlert({ message: '{{Supression réussie}}', level: 'success' }) + $('#div_alert').showAlert({ message: '{{Suppression réussie}}', level: 'success' }) } }) } diff --git a/desktop/modal/camera.history.php b/desktop/modal/camera.history.php index 33e1ae7..d04c069 100644 --- a/desktop/modal/camera.history.php +++ b/desktop/modal/camera.history.php @@ -3,14 +3,14 @@ throw new Exception('{{401 - Accès non autorisé}}'); } if (init('id') == '') { - throw new Exception(__('L\'id ne peut etre vide', __FILE__)); + throw new Exception(__("L'identifiant de l'équipement doit être renseigné", __FILE__)); } $camera = camera::byId(init('id')); if (!is_object($camera)) { - throw new Exception(__('L\'équipement est introuvable : ', __FILE__) . init('id')); + throw new Exception(__('Equipement introuvable', __FILE__) . ' : ' . init('id')); } if ($camera->getEqType_name() != 'camera') { - throw new Exception(__('Cet équipement n\'est pas de type camera : ', __FILE__) . $camera->getEqType_name()); + throw new Exception(__("L'équipement n'est pas de type caméra", __FILE__) . ' : ' . $camera->getEqType_name()); } $dir = calculPath(config::byKey('recordDir', 'camera')) . '/' . $camera->getId(); $files = array(); diff --git a/desktop/modal/camera.preview.php b/desktop/modal/camera.preview.php index e896acf..60a09e9 100644 --- a/desktop/modal/camera.preview.php +++ b/desktop/modal/camera.preview.php @@ -4,9 +4,9 @@ } $eqLogic = eqLogic::byId(init('id')); if (!is_object($eqLogic)) { - throw new Exception(__('Equipement introuvable : ', __FILE__) . init('id')); + throw new Exception(__('Equipement introuvable', __FILE__) . ' : ' . init('id')); } if ($eqLogic->getEqType_name() != 'camera') { - throw new Exception(__('L\'équipement n\'est pas une camera', __FILE__)); + throw new Exception(__("L'équipement n'est pas de type caméra", __FILE__) . ' : ' . $eqLogic->getEqType_name()); } echo $eqLogic->toHtml('dashboard'); diff --git a/desktop/modal/health.php b/desktop/modal/health.php index 114c7a5..7824f1b 100644 --- a/desktop/modal/health.php +++ b/desktop/modal/health.php @@ -34,7 +34,7 @@ {{Modèle}} {{Vidéo}} {{Framerate}} - {{Rafraichissement}} + {{Rafraîchissement}} {{Zoom}} {{Max Enregistrement}} {{Date création}} @@ -83,4 +83,4 @@ } ?> - \ No newline at end of file + diff --git a/desktop/php/camera.php b/desktop/php/camera.php index 676618c..8bf68f7 100644 --- a/desktop/php/camera.php +++ b/desktop/php/camera.php @@ -213,7 +213,7 @@
- +
@@ -230,7 +230,7 @@
-
{{N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation}}
+
{{N'oubliez pas de sauvegarder pour prévisualiser les modifications}}
@@ -248,7 +248,7 @@ {{Informations}} -
{{Si votre caméra n'est pas dans la liste vous pouvez trouver}} {{ici}} {{les informations de configuration pour pas mal de camera}}
+
{{Si votre caméra n'est pas dans la liste référez-vous}} {{à cette page}} {{pour trouver les informations de configuration de nombreuses caméras}}
@@ -312,7 +312,7 @@ - + @@ -339,7 +339,7 @@ - + @@ -397,7 +397,7 @@
- +
@@ -408,7 +408,7 @@
- +
@@ -446,4 +446,4 @@
- \ No newline at end of file + diff --git a/desktop/php/panel.php b/desktop/php/panel.php index c1633f1..db1b9bb 100644 --- a/desktop/php/panel.php +++ b/desktop/php/panel.php @@ -12,7 +12,7 @@ $object = jeeObject::rootObject(); } if (!is_object($object)) { - throw new Exception('{{Aucun objet racine trouvé. Pour en créer un, allez dans Générale -> Objet.
Si vous ne savez pas quoi faire ou que c\'est la premiere fois que vous utilisez Jeedom n\'hésitez pas a consulter cette page}}'); + throw new Exception('{{Aucun objet racine trouvé.}}'); } $child_object = jeeObject::buildTree($object); $parentNumber = array(); diff --git a/plugin_info/info.json b/plugin_info/info.json index 0e79b11..6f3be3c 100644 --- a/plugin_info/info.json +++ b/plugin_info/info.json @@ -2,16 +2,7 @@ "id": "camera", "name": "Caméra", "description": { - "fr_FR": "Plugin permettant l'affichage des caméras IP. L'affichage vidéo de la caméra s'effectue par snapshots (captures) successives toutes les secondes. Le plugin est compatible avec les cameras RTSP.", - "en_US": "Plugin allowing the display of IP cameras. The video display of the camera is carried out by successive snapshots (captures) every second. The plugin is compatible with RTSP cameras", - "es_ES": "Complemento que permite la visualización de cámaras IP. La visualización de vídeo de la cámara se realiza mediante sucesivas instantáneas (capturas) cada segundo. El complemento es compatible con cámaras RTSP", - "de_DE": "Plugin zur Anzeige von IP-Kameras. Die Videoanzeige der Kamera erfolgt jede Sekunde durch aufeinanderfolgende Schnappschüsse (Aufnahmen). Das Plugin ist mit RTSP-Kameras kompatibel", - "pt_PT": "Plugin que permite a exibição de câmeras IP. A exibição do vídeo da câmera é realizada por sucessivos instantâneos (capturas) a cada segundo. O plugin é compatível com câmeras RTSP", - "ru_RU": "Plugin permettant l'affichage des caméras IP. L'affichage vidéo de la caméra s'effectue par snapshots (captures) successives toutes les secondes. Le plugin est compatible avec les cameras RTSP", - "id_ID": "Plugin permettant l'affichage des caméras IP. L'affichage vidéo de la caméra s'effectue par snapshots (captures) successives toutes les secondes. Le plugin est compatible avec les cameras RTSP", - "it_IT": "Plugin permettant l'affichage des caméras IP. L'affichage vidéo de la caméra s'effectue par snapshots (captures) successives toutes les secondes. Le plugin est compatible avec les cameras RTSP", - "ja_JP": "Plugin permettant l'affichage des caméras IP. L'affichage vidéo de la caméra s'effectue par snapshots (captures) successives toutes les secondes. Le plugin est compatible avec les cameras RTSP", - "tr": "Plugin permettant l'affichage des caméras IP. L'affichage vidéo de la caméra s'effectue par snapshots (captures) successives toutes les secondes. Le plugin est compatible avec les cameras RTSP" + "fr_FR": "Plugin permettant l'affichage des caméras IP. L'affichage vidéo de la caméra s'effectue par snapshots (captures) successives toutes les secondes. Le plugin est compatible avec les cameras RTSP." }, "licence": "AGPL", "author": "Jeedom SAS", @@ -31,12 +22,8 @@ "en_US", "es_ES", "de_DE", - "ru_RU", - "id_ID", "it_IT", - "ja_JP", - "pt_PT", - "tr" + "pt_PT" ], "compatibility": [ "miniplus", From 32f1fe78993a7fa6c59b56ab03de3a7ca289903a Mon Sep 17 00:00:00 2001 From: Salvialf <48010158+Salvialf@users.noreply.github.com> Date: Mon, 27 Jul 2026 07:36:25 +0000 Subject: [PATCH 46/47] Auto update translation done by jeedom/jeetranslate workflow --- core/i18n/de_DE.json | 348 +++++++++++++++++++++--------------------- core/i18n/en_US.json | 348 +++++++++++++++++++++--------------------- core/i18n/es_ES.json | 348 +++++++++++++++++++++--------------------- core/i18n/it_IT.json | 348 +++++++++++++++++++++--------------------- core/i18n/pt_PT.json | 348 +++++++++++++++++++++--------------------- plugin_info/info.json | 83 +++++----- 6 files changed, 904 insertions(+), 919 deletions(-) diff --git a/core/i18n/de_DE.json b/core/i18n/de_DE.json index df2185b..d646d65 100644 --- a/core/i18n/de_DE.json +++ b/core/i18n/de_DE.json @@ -1,220 +1,216 @@ { - "plugins\/camera\/mobile\/js\/panel.js": { - "Tous": "Alle" - }, - "plugins\/camera\/plugin_info\/configuration.php": { + "plugins\/camera\/core\/ajax\/camera.ajax.php": { "401 - Accès non autorisé": "401 - Nicht autorisierter Zugriff", - "Le plugin caméra doit réagir aux interactions": "Das Kamera-Plugin muss auf Interaktionen reagieren", - "Moteur RTSP": "RTSP-Motor", - "Chemin des enregistrements": "Pfad aufzeichnen", - "Taille maximale du dossier d'enregistrement": "Maximale Größe des Aufnahmeordners", - "Mo": "MB", - "Panel": "Platte", - "Nombre de lignes": "Anzahl der Zeilen", - "Nombre de colonnes": "Anzahl der Spalten", - "Afficher le panneau des objets": "Objektfenster anzeigen" + "Aucune methode correspondante à : ": "Keine Methode entsprechend:", + "Equipement introuvable": "Gerät nicht gefunden" }, - "plugins\/camera\/desktop\/modal\/camera.displayVideo.php": { + "plugins\/camera\/core\/class\/camera.class.php": { + "Alerte sur la caméra": "Kamera-Alarm", + "Allumer": "Einschalten", + "Arrêter enregistrement": "Beenden Sie die Aufnahme", + "Aucun fichier à supprimer alors que le répertoire pèse": "Es gibt keine zu löschenden Dateien, obwohl das Verzeichnis", + "Capture": "Erfassung", + "Commande message d'envoi des captures": "Befehlsnachricht zum Senden von Captures", + "Enregistrer": "Rekord", + "Erreur lors de l'envoi des images": "Fehler beim Senden der Bilder", + "Erreur sur ": "Fehler ein", + "Eteindre": "Ausschalten", + "Flux vidéo": "Videostream", + "Impossible d'écrire dans le dossier": "Das Schreiben in den Ordner ist nicht möglich", + "Impossible de créer le dossier": "Ordner kann nicht erstellt werden", + "Impossible de trouver la commande \"Allumer\"": "Der Befehl „Einschalten“ kann nicht gefunden werden", + "Impossible de trouver la commande \"Eteindre\"": "Der Befehl „Ausschalten“ kann nicht gefunden werden", + "Impossible de trouver la fonction": "Die Funktion konnte nicht gefunden werden", + "L'adresse IP de la caméra doit être renseignée": "Die IP-Adresse der Kamera muss eingegeben werden", + "La \"Commande d\\'alerte\" ne doit pas être de type caméra": "Der „Alarmbefehl“ darf nicht vom Typ „Kamera“ sein", + "Le fichier est vide": "Die Datei ist leer", + "Nombre captures ou options": "Anzahl der Fänge oder Optionen", + "Statut enregistrement": "Registrierungsstatus", + "Tâche cron introuvable": "Cron-Aufgabe nicht gefunden", + "Veuillez vérifier la configuration": "Bitte überprüfen Sie die Konfiguration", + "à": "bis" + }, + "plugins\/camera\/core\/php\/record.php": { + "Equipement introuvable": "Gerät nicht gefunden", + "L'identifiant de l'équipement doit être renseigné": "Die Geräte-ID muss angegeben werden", + "L'équipement n'est pas de type caméra": "Bei dem Gerät handelt es sich nicht um eine Kamera" + }, + "plugins\/camera\/core\/php\/sendSnapshot.php": { + "Aucun fichier trouvé": "Keine Datei gefunden", + "Equipement introuvable": "Gerät nicht gefunden", + "L'identifiant de l'équipement doit être renseigné": "Die Geräte-ID muss angegeben werden", + "L'équipement n'est pas de type caméra": "Bei dem Gerät handelt es sich nicht um eine Kamera" + }, + "plugins\/camera\/core\/php\/stopCam.php": { + "Equipement introuvable": "Gerät nicht gefunden", + "Impossible de trouver la commande \"Eteindre\"": "Der Befehl „Ausschalten“ kann nicht gefunden werden", + "L'identifiant de l'équipement doit être renseigné": "Die Geräte-ID muss angegeben werden", + "L'équipement n'est pas de type caméra": "Bei dem Gerät handelt es sich nicht um eine Kamera" + }, + "plugins\/camera\/desktop\/js\/camera.js": { + "Afficher": "Anzeige", + "Durée avant retour d\\'état (min)": "Dauer vor Rückkehr zum Status (min)", + "Découverte Caméras": "Entdeckungskameras", + "Etes-vous sur de vouloir supprimer toutes les captures de la caméra ?": "Möchten Sie wirklich alle Aufnahmen von der Kamera löschen?", + "Inverser": "Umgekehrt", + "Prévisualisation": "Vorschau", + "Santé Caméras": "Gesundheitskameras", + "Suppression réussie": "Löschen erfolgreich", + "Tester": "Test", + "URL de la commande": "Bestell-URL", + "URL de la commande de mouvement stop (caméra motorisée)": "URL für den Befehl „Bewegung stoppen“ (motorisierte Kamera)", + "Valeur retour d\\'état": "Statusrückgabewert" + }, + "plugins\/camera\/desktop\/modal\/camera.displayImage.php": { "401 - Accès non autorisé": "401 - Nicht autorisierter Zugriff" }, - "plugins\/camera\/desktop\/modal\/health.php": { - "Image": "Bild", - "Module": "Modul", - "ID": "Identifikation", - "Statut": "Status", - "Ip": "IP", - "Protocole": "Protokolle", - "Modèle": "Modell", - "Vidéo": "Video", - "Framerate": "Framerate", - "Rafraichissement": "Erfrischend", - "Zoom": "Zoomen", - "Max Enregistrement": "Max Aufnahme", - "Date création": "Erstellungsdatum", - "OK": "OK", - "NOK": "NOK", - "OUI": "Ja", - "NON": "Nicht" + "plugins\/camera\/desktop\/modal\/camera.displayVideo.php": { + "401 - Accès non autorisé": "401 - Nicht autorisierter Zugriff" }, "plugins\/camera\/desktop\/modal\/camera.history.php": { - "L\\'id ne peut etre vide": "Die ID darf nicht leer sein", - "L\\'équipement est introuvable : ": "Die Ausrüstung kann nicht gefunden werden:", - "Cet équipement n\\'est pas de type camera : ": "Dieses Gerät ist nicht vom Kameratyp:", "401 - Accès non autorisé": "401 - Nicht autorisierter Zugriff", + "Equipement introuvable": "Gerät nicht gefunden", + "L'identifiant de l'équipement doit être renseigné": "Die Geräte-ID muss angegeben werden", + "L'équipement n'est pas de type caméra": "Bei dem Gerät handelt es sich nicht um eine Kamera", + "Supprimer": "Löschen", "Tout supprimer": "Alle löschen", "Tout télécharger": "Laden Sie alle herunter", - "Supprimer": "Löschen", "Télécharger": "Download" }, + "plugins\/camera\/desktop\/modal\/camera.preview.php": { + "401 - Accès non autorisé": "401 - Nicht autorisierter Zugriff", + "Equipement introuvable": "Gerät nicht gefunden", + "L'équipement n'est pas de type caméra": "Bei dem Gerät handelt es sich nicht um eine Kamera" + }, "plugins\/camera\/desktop\/modal\/discover.cam.php": { "401 - Accès non autorisé": "401 - Nicht autorisierter Zugriff", - "IP": "IP", - "Découverte": "Entdeckung", - "Type": "Typ", - "Nom d'utilisateur": "Benutzername", - "Mot de passe": "Passwort", "Action": "Aktion", "Ajouter": "Hinzufügen", - "Création réussie": "Erfolgreiche Erstellung" - }, - "plugins\/camera\/desktop\/modal\/camera.preview.php": { - "Equipement introuvable : ": "Ausrüstung nicht gefunden:", - "L\\'équipement n\\'est pas une camera": "Das Gerät ist keine Kamera", - "401 - Accès non autorisé": "401 - Unbefugter Zugriff" - }, - "plugins\/camera\/desktop\/modal\/camera.displayImage.php": { - "401 - Accès non autorisé": "401 - Nicht autorisierter Zugriff" + "Création réussie": "Erfolgreiche Erstellung", + "Découverte": "Entdeckung", + "IP": "IP", + "Mot de passe": "Passwort", + "Nom d'utilisateur": "Benutzername", + "Type": "Typ" }, - "plugins\/camera\/desktop\/php\/panel.php": { - "401 - Accès non autorisé": "401 - Nicht autorisierter Zugriff", - "Aucun objet racine trouvé. Pour en créer un, allez dans Générale -> Objet. Si vous ne savez pas quoi faire ou que c\\'est la premiere fois que vous utilisez Jeedom n\\'hésitez pas a consulter cette page<\/a>": "Kein Stammobjekt gefunden. Um eine zu erstellen, gehen Sie zu Allgemein -> Objekt. Wenn Sie nicht wissen, was Sie tun sollen, oder wenn Sie Jeedom zum ersten Mal verwenden, zögern Sie nicht, diese Seite<\/a> zu konsultieren", - "Rechercher": "Suchen nach" + "plugins\/camera\/desktop\/modal\/health.php": { + "Date création": "Erstellungsdatum", + "Framerate": "Framerate", + "ID": "Identifikation", + "Image": "Bild", + "Ip": "IP", + "Max Enregistrement": "Max Aufnahme", + "Module": "Modul", + "Modèle": "Modell", + "NOK": "NOK", + "NON": "Nicht", + "OK": "OK", + "OUI": "Ja", + "Protocole": "Protokolle", + "Rafraîchissement": "Aktualisierung", + "Statut": "Status", + "Vidéo": "Video", + "Zoom": "Zoomen" }, "plugins\/camera\/desktop\/php\/camera.php": { - "Aucun": "Ohne", "401 - Accès non autorisé": "401 - Nicht autorisierter Zugriff", - "Gestion": "Verwaltung", + "Action": "Aktion", + "Activer": "Aktivieren", "Ajouter": "Hinzufügen", - "Configuration": "Konfiguration", - "Découverte": "Entdeckung", - "Santé": "Gesundheit", - "Mes caméras": "Meine Kameras", + "Ajouter une commande": "Kommando hinzufügen", + "Alimentation": "Versorgung", + "Aucun": "Ohne", "Aucun équipement Template trouvé, cliquer sur \"Ajouter\" pour commencer": "Keine Vorlagenausrüstung gefunden, klicken Sie auf \"Hinzufügen\", um zu beginnen", - "Rechercher": "Suchen nach", - "Equipement visible": "Sichtbare Ausrüstung", - "Equipement non visible": "Ausrüstung nicht sichtbar", + "Capture": "Erfassung", + "Catégorie": "Kategorie", + "Commande \"Allumer\"": "Befehl „Einschalten“", + "Commande \"Eteindre\"": "Befehl „Ausschalten“", + "Commandes": "Befehle", + "Configuration": "Konfiguration", "Configuration avancée": "Erweiterte Konfiguration", + "Convertir en x264 le flux RTSP": "Konvertieren Sie den RTSP-Stream in x264", + "Dashboard": "Armaturenbrett", "Dupliquer": "Duplikat", - "Sauvegarder": "Speichern", - "Supprimer": "Löschen", + "Durée maximum d'un enregistrement (s)": "Maximale Dauer einer Aufnahme (n)", + "Découverte": "Entdeckung", + "Délai (de 0 à 5000)": "Verzögerung (von 0 bis 5000)", + "Délai avant commande stop (en ms)": "Verzögerung vor Stoppbefehl (in ms)", "Equipement": "Gerät", + "Equipement non visible": "Ausrüstung nicht sichtbar", + "Equipement visible": "Sichtbare Ausrüstung", + "Gestion": "Verwaltung", + "HTTP": "Http", + "HTTPS": "HTTPS", + "IP": "IP", + "Id": "Identifikation", "Image": "Bild", - "Capture": "Erfassung", - "Alimentation": "Versorgung", - "Commandes": "Befehle", - "Paramètres généraux": "Allgemeine Einstellungen", + "Informations": "Information", + "Jeton de profil": "Profil-Token", + "Mes caméras": "Meine Kameras", + "Miniature": "Vorschaubild", + "Mobile": "Handy", + "Modèle": "Modell", + "Mot de passe": "Passwort", + "N'oubliez pas de sauvegarder pour prévisualiser les modifications": "Vergessen Sie nicht, die Änderungen zu speichern, um eine Vorschau anzuzeigen", + "Ne pas compresser ou redimensionner l'image": "Komprimieren oder ändern Sie die Größe des Bildes nicht", + "Nom": "Name", + "Nom d'utilisateur": "Benutzername", "Nom de l'équipement": "Name der Ausrüstung", "Nom de l'équipement caméra": "Name der Kameraausrüstung", + "Nombre d'images par seconde de la vidéo": "Anzahl der Bilder pro Sekunde des Videos", + "Normal": "Normal", "Objet parent": "Übergeordnetes Objekt", - "Catégorie": "Kategorie", + "Option flux vidéo": "Video-Stream-Option", "Options": "Optionen", - "Activer": "Aktivieren", - "Visible": "Sichtbar", + "Paramètres généraux": "Allgemeine Einstellungen", "Paramètres spécifiques": "Spezifische Parameter", - "IP": "IP", - "HTTP": "Http", - "HTTPS": "HTTPS", "Port": "Hafen", "Port ONVIF": "ONVIF-Port", - "Jeton de profil": "Profil-Token", - "Vitesses X, Y et Z": "X-, Y- und Z-Geschwindigkeiten", - "Y (de 0 à 1)": "Y (0 bis 1)", - "Z (de 0 à 1)": "Z (von 0 bis 1)", - "Délai avant commande stop (en ms)": "Verzögerung vor Stoppbefehl (in ms)", - "Délai (de 0 à 5000)": "Verzögerung (von 0 bis 5000)", - "Nom d'utilisateur": "Benutzername", - "Mot de passe": "Passwort", - "URL de snapshot": "Snapshot-URL", - "URL de capture": "URL erfassen", - "URL du flux": "Feed-URL", - "URL du flux, RTSP": "Stream-URL, RTSP", - "Stream du flux RTSP": "Stream des RTSP-Streams", - "Convertir en x264 le flux RTSP": "Konvertieren Sie den RTSP-Stream in x264", - "Option flux vidéo": "Video-Stream-Option", - "Prévisualiser": "Vorschau", - "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation": "Vergessen Sie nicht, vor der Vorschau zu speichern, um Ihre Änderungen anzuzeigen", "Position sur le panel": "Position auf dem Panel", - "Informations": "Information", - "Si votre caméra n'est pas dans la liste vous pouvez trouver": "Wenn Ihre Kamera nicht in der Liste enthalten ist, können Sie finden", - "ici": "Hier", - "les informations de configuration pour pas mal de camera": "Konfigurationsinformationen für viele Kameras", - "Modèle": "Modell", - "Ne pas compresser ou redimensionner l'image": "Komprimieren oder ändern Sie die Größe des Bildes nicht", - "Miniature": "Vorschaubild", - "Dashboard": "Armaturenbrett", - "Mobile": "Handy", - "Rafraichissement (s)": "Erfrischung (en)", + "Prévisualiser": "Vorschau", "Qualité (%)": "Qualität (%)", + "Rafraîchissement (s)": "Aktualisierung(en)", + "Rechercher": "Suchen nach", + "Requête": "Petition", + "Santé": "Gesundheit", + "Sauvegarder": "Speichern", + "Si votre caméra n'est pas dans la liste référez-vous": "Sollte Ihre Kamera nicht in der Liste aufgeführt sein, sehen Sie bitte hier nach", + "Stream du flux RTSP": "Stream des RTSP-Streams", + "Supprimer": "Löschen", + "Supprimer toutes les captures de la caméra": "Löschen Sie alle Kameraaufnahmen", "Taille (% - 0 : automatique)": "Größe (% - 0: automatisch)", - "Normal": "Normal", - "Vidéo": "Video", - "Durée maximum d'un enregistrement (s)": "Maximale Dauer einer Aufnahme (n)", "Toujours faire une vidéo": "Mach immer ein Video", - "Nombre d'images par seconde de la vidéo": "Anzahl der Bilder pro Sekunde des Videos", - "Supprimer toutes les captures de la caméra": "Löschen Sie alle Kameraaufnahmen", - "Commande ON": "EIN-Befehl", - "Commande OFF": "AUS-Befehl", - "Ajouter une commande": "Kommando hinzufügen", - "Id": "Identifikation", - "Nom": "Name", "Type": "Typ", - "Requête": "Petition", - "Action": "Aktionen" - }, - "plugins\/camera\/desktop\/js\/camera.js": { - "Santé Caméras": "Gesundheitskameras", - "Découverte Caméras": "Entdeckungskameras", - "Prévisualisation": "Vorschau", - "URL de la commande": "Bestell-URL", - "URL de la commande de stop de mouvement (caméra motirisée)": "Bewegungsstopp-Befehls-URL (Kamera mit Stromversorgung)", - "Valeur retour d\\'état": "Statusrückgabewert", - "Durée avant retour d\\'état (min)": "Dauer vor Rückkehr zum Status (min)", - "Inverser": "Umgekehrt", - "Afficher": "Anzeige", - "Tester": "Test", - "Etes-vous sur de vouloir supprimer toutes les captures de la caméra ?": "Möchten Sie wirklich alle Aufnahmen von der Kamera löschen?", - "Supression réussie": "Erfolgreiche Entfernung" - }, - "plugins\/camera\/core\/php\/stopCam.php": { - "[camera\/reccord] L\\'id ne peut etre vide": "[Kamera \/ Aufzeichnung] ID darf nicht leer sein", - "[camera\/reccord] L\\'équipement est introuvable : ": "[Kamera \/ Aufzeichnung] Das Gerät kann nicht gefunden werden:", - "[camera\/reccord] Cet équipement n\\'est pas de type camera : ": "[Kamera \/ Aufzeichnung] Dieses Gerät ist nicht vom Kameratyp:", - "Impossible de trouver la commande OFF": "Der AUS-Befehl konnte nicht gefunden werden" - }, - "plugins\/camera\/core\/php\/sendSnapshot.php": { - "[camera\/sendsnapshot] L\\'id ne peut etre vide": "[camera \/ sendnapshot] Die ID darf nicht leer sein", - "[camera\/sendsnapshot] L\\'équipement est introuvable : ": "[Kamera \/ Sendsnapshot] Das Gerät kann nicht gefunden werden:", - "[camera\/sendsnapshot] Cet équipement n\\'est pas de type camera : ": "[Kamera \/ Sendsnapshot] Dieses Gerät ist nicht vom Kameratyp:", - "[camera\/sendsnapshot]No file found ": "[camera \/ sendnapshot] Keine Datei gefunden" - }, - "plugins\/camera\/core\/php\/record.php": { - "[camera\/reccord] L\\'id ne peut etre vide": "[Kamera \/ Aufzeichnung] ID darf nicht leer sein", - "[camera\/reccord] L\\'équipement est introuvable : ": "[Kamera \/ Aufzeichnung] Das Gerät kann nicht gefunden werden:", - "[camera\/reccord] Cet équipement n\\'est pas de type camera : ": "[Kamera \/ Aufzeichnung] Dieses Gerät ist nicht vom Kameratyp:" + "URL de capture": "URL erfassen", + "URL de snapshot": "Snapshot-URL", + "URL du flux": "Feed-URL", + "URL du flux, RTSP": "Stream-URL, RTSP", + "Vidéo": "Video", + "Visible": "Sichtbar", + "Vitesses X, Y et Z": "X-, Y- und Z-Geschwindigkeiten", + "Y (de 0 à 1)": "Y (0 bis 1)", + "Z (de 0 à 1)": "Z (von 0 bis 1)", + "pour trouver les informations de configuration de nombreuses caméras": "um die Konfigurationsdaten zahlreicher Kameras zu finden", + "à cette page": "auf dieser Seite" }, - "plugins\/camera\/core\/ajax\/camera.ajax.php": { + "plugins\/camera\/desktop\/php\/panel.php": { "401 - Accès non autorisé": "401 - Nicht autorisierter Zugriff", - "Impossible de trouver la camera : ": "Kamera kann nicht gefunden werden:", - "Impossible de trouver la caméra : ' . init('id')": "Kamera kann nicht gefunden werden: '. init ('id')", - "Aucune methode correspondante à : ": "Keine Methode entsprechend:" + "Aucun objet racine trouvé.": "Es wurde kein Stammobjekt gefunden.", + "Rechercher": "Suchen nach" }, - "plugins\/camera\/core\/class\/camera.class.php": { - "Veuillez vérifier la configuration": "Bitte überprüfen Sie die Konfiguration", - "Tache cron introuvable": "Cron-Aufgabe nicht gefunden", - "Erreur aucun fichier trouvé à supprimer alors que le répertoire fait : ": "Fehler Es wurde keine Datei zum Löschen gefunden, während das Verzeichnis Folgendes tut:", - "La \"Commande d\\'alerte\" ne peut être de type caméra": "Der \"Alarmbefehl\" kann nicht vom Kameratyp sein", - "L\\'adresse IP de la camera ne peut être vide": "Die IP-Adresse der Kamera darf nicht leer sein", - "Flux video": "Videostream", - "Status enregistrement": "Registrierungsstatus", - "Arrêter enregistrement": "Beenden Sie die Aufnahme", - "Capture": "Erfassung", - "Enregistrer": "Rekord", - "Nombre captures ou options": "Anzahl der Fänge oder Optionen", - "Commande message d'envoi des captures": "Befehlsnachricht zum Senden von Captures", - "On": "Ein", - "Off": "Aus", - "Alerte sur la camera : ": "Kameraalarm:", - " à ": "zu", - "[camera\/sendSnap] Erreur lors de l\\'envoi des images : ": "[camera \/ sendSnap] Fehler beim Senden der Bilder:", - "Impossible de trouver la function ": "Kann die Funktion nicht finden", - "Erreur sur ": "Fehler ein", - "Impossible de creer le dossier : ": "Ordner kann nicht erstellt werden:", - "Impossible d\\'écrire dans le dossier : ": "In Ordner kann nicht geschrieben werden:", - "Le fichier est vide : ": "Die Datei ist leer:", - "Impossible de trouver la commande ON": "Der EIN-Befehl konnte nicht gefunden werden", - "Impossible de trouver la commande OFF": "Der AUS-Befehl konnte nicht gefunden werden" + "plugins\/camera\/mobile\/js\/panel.js": { + "Tous": "Alle" }, - "info.json": { - "Plugin permettant l'affichage des caméras IP. L'affichage vidéo de la caméra s'effectue par snapshots (captures) successives toutes les secondes. Le plugin est compatible avec les cameras RTSP.": "Plugin zur Anzeige von IP-Kameras. Die Videoanzeige der Kamera erfolgt jede Sekunde durch aufeinanderfolgende Schnappschüsse (Aufnahmen). Das Plugin ist mit RTSP-Kameras kompatibel" + "plugins\/camera\/plugin_info\/configuration.php": { + "401 - Accès non autorisé": "401 - Nicht autorisierter Zugriff", + "Afficher le panneau des objets": "Objektfenster anzeigen", + "Chemin des enregistrements": "Pfad aufzeichnen", + "Le plugin caméra doit réagir aux interactions": "Das Kamera-Plugin muss auf Interaktionen reagieren", + "Mo": "MB", + "Moteur RTSP": "RTSP-Motor", + "Nombre de colonnes": "Anzahl der Spalten", + "Nombre de lignes": "Anzahl der Zeilen", + "Panel": "Platte", + "Taille maximale du dossier d'enregistrement": "Maximale Größe des Aufnahmeordners" } } \ No newline at end of file diff --git a/core/i18n/en_US.json b/core/i18n/en_US.json index 96cc2f1..fac3726 100644 --- a/core/i18n/en_US.json +++ b/core/i18n/en_US.json @@ -1,220 +1,216 @@ { - "plugins\/camera\/mobile\/js\/panel.js": { - "Tous": "All" - }, - "plugins\/camera\/plugin_info\/configuration.php": { + "plugins\/camera\/core\/ajax\/camera.ajax.php": { "401 - Accès non autorisé": "401 - Unauthorized access", - "Le plugin caméra doit réagir aux interactions": "The camera plugin must react to interactions", - "Moteur RTSP": "RTSP", - "Chemin des enregistrements": "Record path", - "Taille maximale du dossier d'enregistrement": "Maximum recording folder size", - "Mo": "MB", - "Panel": "Panel", - "Nombre de lignes": "Number of lines", - "Nombre de colonnes": "Number of columns", - "Afficher le panneau des objets": "Show Objects Panel" + "Aucune methode correspondante à : ": "No method corresponding to:", + "Equipement introuvable": "Equipment not found" }, - "plugins\/camera\/desktop\/modal\/camera.displayVideo.php": { + "plugins\/camera\/core\/class\/camera.class.php": { + "Alerte sur la caméra": "Camera Alert", + "Allumer": "Turn on", + "Arrêter enregistrement": "Stop recording", + "Aucun fichier à supprimer alors que le répertoire pèse": "No files to delete, even though the directory is", + "Capture": "Capture", + "Commande message d'envoi des captures": "Command message to send captures", + "Enregistrer": "Save", + "Erreur lors de l'envoi des images": "Error sending images", + "Erreur sur ": "Error on", + "Eteindre": "Turn off", + "Flux vidéo": "Video stream", + "Impossible d'écrire dans le dossier": "Unable to write to the folder", + "Impossible de créer le dossier": "Unable to create folder", + "Impossible de trouver la commande \"Allumer\"": "Unable to find the \"Turn On\" command", + "Impossible de trouver la commande \"Eteindre\"": "Unable to find the \"Turn Off\" command", + "Impossible de trouver la fonction": "Unable to find the function", + "L'adresse IP de la caméra doit être renseignée": "The camera's IP address must be entered", + "La \"Commande d\\'alerte\" ne doit pas être de type caméra": "The \"Alert Command\" must not be a camera type", + "Le fichier est vide": "The file is empty", + "Nombre captures ou options": "Number of snapshots or options", + "Statut enregistrement": "Registration Status", + "Tâche cron introuvable": "Cron job not found", + "Veuillez vérifier la configuration": "Please check the configuration", + "à": "to" + }, + "plugins\/camera\/core\/php\/record.php": { + "Equipement introuvable": "Equipment not found", + "L'identifiant de l'équipement doit être renseigné": "The device ID must be entered", + "L'équipement n'est pas de type caméra": "The device is not a camera of type" + }, + "plugins\/camera\/core\/php\/sendSnapshot.php": { + "Aucun fichier trouvé": "No files found", + "Equipement introuvable": "Equipment not found", + "L'identifiant de l'équipement doit être renseigné": "The device ID must be entered", + "L'équipement n'est pas de type caméra": "The device is not a camera of type" + }, + "plugins\/camera\/core\/php\/stopCam.php": { + "Equipement introuvable": "Equipment not found", + "Impossible de trouver la commande \"Eteindre\"": "Unable to find the \"Turn Off\" command", + "L'identifiant de l'équipement doit être renseigné": "The device ID must be entered", + "L'équipement n'est pas de type caméra": "The device is not a camera of type" + }, + "plugins\/camera\/desktop\/js\/camera.js": { + "Afficher": "Show", + "Durée avant retour d\\'état (min)": "Duration before return to status (min)", + "Découverte Caméras": "Scan Cameras", + "Etes-vous sur de vouloir supprimer toutes les captures de la caméra ?": "Are you sure you want to delete all the snapshots from the camera ?", + "Inverser": "Invert", + "Prévisualisation": "Preview", + "Santé Caméras": "Cameras Health", + "Suppression réussie": "Deleted successfully", + "Tester": "Test", + "URL de la commande": "Command URL", + "URL de la commande de mouvement stop (caméra motorisée)": "URL for the \"stop\" motion command (motorized camera)", + "Valeur retour d\\'état": "Status return value" + }, + "plugins\/camera\/desktop\/modal\/camera.displayImage.php": { "401 - Accès non autorisé": "401 - Unauthorized access" }, - "plugins\/camera\/desktop\/modal\/health.php": { - "Image": "Picture", - "Module": "Module", - "ID": "ID", - "Statut": "Status", - "Ip": "IP", - "Protocole": "Protocol", - "Modèle": "Model", - "Vidéo": "Video", - "Framerate": "Framerate", - "Rafraichissement": "Refreshing", - "Zoom": "Zoom", - "Max Enregistrement": "Max records", - "Date création": "Creation Date", - "OK": "Ok", - "NOK": "NOK", - "OUI": "Yes", - "NON": "No" + "plugins\/camera\/desktop\/modal\/camera.displayVideo.php": { + "401 - Accès non autorisé": "401 - Unauthorized access" }, "plugins\/camera\/desktop\/modal\/camera.history.php": { - "L\\'id ne peut etre vide": "Id can\\'t be empty", - "L\\'équipement est introuvable : ": "Equipment not found :", - "Cet équipement n\\'est pas de type camera : ": "This equipment is not of camera type :", "401 - Accès non autorisé": "401 - Unauthorized access", + "Equipement introuvable": "Equipment not found", + "L'identifiant de l'équipement doit être renseigné": "The device ID must be entered", + "L'équipement n'est pas de type caméra": "The device is not a camera of type", + "Supprimer": "Delete", "Tout supprimer": "Delete all", "Tout télécharger": "Download All", - "Supprimer": "Delete", "Télécharger": "Download" }, + "plugins\/camera\/desktop\/modal\/camera.preview.php": { + "401 - Accès non autorisé": "401 - Unauthorized access", + "Equipement introuvable": "Equipment not found", + "L'équipement n'est pas de type caméra": "The device is not a camera of type" + }, "plugins\/camera\/desktop\/modal\/discover.cam.php": { "401 - Accès non autorisé": "401 - Unauthorized access", - "IP": "IP", - "Découverte": "Discovery", - "Type": "Type", - "Nom d'utilisateur": "Username", - "Mot de passe": "Password", "Action": "Action", "Ajouter": "Add", - "Création réussie": "Successful creation" - }, - "plugins\/camera\/desktop\/modal\/camera.preview.php": { - "Equipement introuvable : ": "Equipment not found:", - "L\\'équipement n\\'est pas une camera": "The equipment is not a camera", - "401 - Accès non autorisé": "401 - Unauthorized Access" - }, - "plugins\/camera\/desktop\/modal\/camera.displayImage.php": { - "401 - Accès non autorisé": "401 - Unauthorized access" + "Création réussie": "Successful creation", + "Découverte": "Discovery", + "IP": "IP", + "Mot de passe": "Password", + "Nom d'utilisateur": "Username", + "Type": "Type" }, - "plugins\/camera\/desktop\/php\/panel.php": { - "401 - Accès non autorisé": "401 - Unauthorized access", - "Aucun objet racine trouvé. Pour en créer un, allez dans Générale -> Objet. Si vous ne savez pas quoi faire ou que c\\'est la premiere fois que vous utilisez Jeedom n\\'hésitez pas a consulter cette page<\/a>": "No root object found. To create one, go to General -> Object. If you do not know what to do or it is the first time you use Jeedom do not hesitate to consult this page <\/a>", - "Rechercher": "Search" + "plugins\/camera\/desktop\/modal\/health.php": { + "Date création": "Creation Date", + "Framerate": "Framerate", + "ID": "ID", + "Image": "Picture", + "Ip": "IP", + "Max Enregistrement": "Max records", + "Module": "Module", + "Modèle": "Model", + "NOK": "NOK", + "NON": "No", + "OK": "Ok", + "OUI": "Yes", + "Protocole": "Protocol", + "Rafraîchissement": "Refresh", + "Statut": "Status", + "Vidéo": "Video", + "Zoom": "Zoom" }, "plugins\/camera\/desktop\/php\/camera.php": { - "Aucun": "None", "401 - Accès non autorisé": "401 - Unauthorized access", - "Gestion": "Management", + "Action": "Action", + "Activer": "Activate", "Ajouter": "Add", - "Configuration": "Setup", - "Découverte": "Discovery", - "Santé": "Health", - "Mes caméras": "My cameras", + "Ajouter une commande": "Add a command", + "Alimentation": "Power supply", + "Aucun": "None", "Aucun équipement Template trouvé, cliquer sur \"Ajouter\" pour commencer": "No Template equipment found, click \"Add\" to start", - "Rechercher": "Search", - "Equipement visible": "Visible equipment", - "Equipement non visible": "Equipment not visible", + "Capture": "Capture", + "Catégorie": "Category", + "Commande \"Allumer\"": "\"Turn On\" command", + "Commande \"Eteindre\"": "\"Turn Off\" command", + "Commandes": "Commands", + "Configuration": "Setup", "Configuration avancée": "Advanced configuration", + "Convertir en x264 le flux RTSP": "Convert RTSP stream to x264", + "Dashboard": "Dashboard", "Dupliquer": "Duplicate", - "Sauvegarder": "Save", - "Supprimer": "Delete", + "Durée maximum d'un enregistrement (s)": "Maximum duration of a recording (s)", + "Découverte": "Discovery", + "Délai (de 0 à 5000)": "Delay (from 0 to 5000)", + "Délai avant commande stop (en ms)": "Delay before stop command (in ms)", "Equipement": "Equipment", + "Equipement non visible": "Equipment not visible", + "Equipement visible": "Visible equipment", + "Gestion": "Management", + "HTTP": "HTTP", + "HTTPS": "HTTPS", + "IP": "IP", + "Id": "ID", "Image": "Picture", - "Capture": "Capture", - "Alimentation": "Power supply", - "Commandes": "Commands", - "Paramètres généraux": "General settings", + "Informations": "Information", + "Jeton de profil": "Profile token", + "Mes caméras": "My cameras", + "Miniature": "Miniature", + "Mobile": "Mobile", + "Modèle": "Model", + "Mot de passe": "Password", + "N'oubliez pas de sauvegarder pour prévisualiser les modifications": "Don't forget to save to preview your changes", + "Ne pas compresser ou redimensionner l'image": "Do not compress or resize the image", + "Nom": "Name", + "Nom d'utilisateur": "Username", "Nom de l'équipement": "Name of equipment", "Nom de l'équipement caméra": "Camera equipment name", + "Nombre d'images par seconde de la vidéo": "Number of frames per second of the video", + "Normal": "Normal", "Objet parent": "Parent object", - "Catégorie": "Category", + "Option flux vidéo": "Video stream option", "Options": "Options", - "Activer": "Activate", - "Visible": "Visible", + "Paramètres généraux": "General settings", "Paramètres spécifiques": "Specific parameters", - "IP": "IP", - "HTTP": "HTTP", - "HTTPS": "HTTPS", "Port": "Port", "Port ONVIF": "ONVIF port", - "Jeton de profil": "Profile token", - "Vitesses X, Y et Z": "X, Y and Z speeds", - "Y (de 0 à 1)": "Y (0 to 1)", - "Z (de 0 à 1)": "Z (from 0 to 1)", - "Délai avant commande stop (en ms)": "Delay before stop command (in ms)", - "Délai (de 0 à 5000)": "Delay (from 0 to 5000)", - "Nom d'utilisateur": "Username", - "Mot de passe": "Password", - "URL de snapshot": "Snapshot URL", - "URL de capture": "Capture URL", - "URL du flux": "Feed URL", - "URL du flux, RTSP": "URL of RTSP stream", - "Stream du flux RTSP": "Stream of RTSP stream", - "Convertir en x264 le flux RTSP": "Convert RTSP stream to x264", - "Option flux vidéo": "Video stream option", - "Prévisualiser": "Preview", - "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation": "Don't forget to save to see your changes before previewing", "Position sur le panel": "Positon on the panel", - "Informations": "Information", - "Si votre caméra n'est pas dans la liste vous pouvez trouver": "If your camera is not in the list you can find", - "ici": "here", - "les informations de configuration pour pas mal de camera": "configuration information for a lot of cameras", - "Modèle": "Model", - "Ne pas compresser ou redimensionner l'image": "Do not compress or resize the image", - "Miniature": "Miniature", - "Dashboard": "Dashboard", - "Mobile": "Mobile", - "Rafraichissement (s)": "Refreshment (s)", + "Prévisualiser": "Preview", "Qualité (%)": "Quality (%)", + "Rafraîchissement (s)": "Refresh(es)", + "Rechercher": "Search", + "Requête": "Request", + "Santé": "Health", + "Sauvegarder": "Save", + "Si votre caméra n'est pas dans la liste référez-vous": "If your camera is not on the list, please refer to", + "Stream du flux RTSP": "Stream of RTSP stream", + "Supprimer": "Delete", + "Supprimer toutes les captures de la caméra": "Delete all camera captures", "Taille (% - 0 : automatique)": "Size (% - 0 : automatic)", - "Normal": "Normal", - "Vidéo": "Video", - "Durée maximum d'un enregistrement (s)": "Maximum duration of a recording (s)", "Toujours faire une vidéo": "Always make a video", - "Nombre d'images par seconde de la vidéo": "Number of frames per second of the video", - "Supprimer toutes les captures de la caméra": "Delete all camera captures", - "Commande ON": "ON command", - "Commande OFF": "OFF command", - "Ajouter une commande": "Add a command", - "Id": "ID", - "Nom": "Name", "Type": "Type", - "Requête": "Request", - "Action": "Action" - }, - "plugins\/camera\/desktop\/js\/camera.js": { - "Santé Caméras": "Cameras Health", - "Découverte Caméras": "Scan Cameras", - "Prévisualisation": "Preview", - "URL de la commande": "Command URL", - "URL de la commande de stop de mouvement (caméra motirisée)": "Motion stop command URL (ptz camera)", - "Valeur retour d\\'état": "Status return value", - "Durée avant retour d\\'état (min)": "Duration before return to status (min)", - "Inverser": "Invert", - "Afficher": "Show", - "Tester": "Test", - "Etes-vous sur de vouloir supprimer toutes les captures de la caméra ?": "Are you sure you want to delete all the snapshots from the camera ?", - "Supression réussie": "Removed successfully" - }, - "plugins\/camera\/core\/php\/stopCam.php": { - "[camera\/reccord] L\\'id ne peut etre vide": "[camera\/reccord] Id can\\'t be empty", - "[camera\/reccord] L\\'équipement est introuvable : ": "[camera\/reccord] Equipment not found :", - "[camera\/reccord] Cet équipement n\\'est pas de type camera : ": "[camera\/reccord] This equipment is not of camera type :", - "Impossible de trouver la commande OFF": "Unable to find OFF command" - }, - "plugins\/camera\/core\/php\/sendSnapshot.php": { - "[camera\/sendsnapshot] L\\'id ne peut etre vide": "[camera\/sendsnapshot] Id can\\'t be empty", - "[camera\/sendsnapshot] L\\'équipement est introuvable : ": "[camera\/sendsnapshot] Equipment not found :", - "[camera\/sendsnapshot] Cet équipement n\\'est pas de type camera : ": "[camera\/sendsnapshot] This equipment is not of camera type :", - "[camera\/sendsnapshot]No file found ": "[camera\/sendsnapshot]No file found" - }, - "plugins\/camera\/core\/php\/record.php": { - "[camera\/reccord] L\\'id ne peut etre vide": "[camera\/reccord] Id can\\'t be empty", - "[camera\/reccord] L\\'équipement est introuvable : ": "[camera\/reccord] Equipment not found :", - "[camera\/reccord] Cet équipement n\\'est pas de type camera : ": "[camera\/reccord] This equipment is not of camera type :" + "URL de capture": "Capture URL", + "URL de snapshot": "Snapshot URL", + "URL du flux": "Feed URL", + "URL du flux, RTSP": "URL of RTSP stream", + "Vidéo": "Video", + "Visible": "Visible", + "Vitesses X, Y et Z": "X, Y and Z speeds", + "Y (de 0 à 1)": "Y (0 to 1)", + "Z (de 0 à 1)": "Z (from 0 to 1)", + "pour trouver les informations de configuration de nombreuses caméras": "to find configuration information for many cameras", + "à cette page": "on this page" }, - "plugins\/camera\/core\/ajax\/camera.ajax.php": { + "plugins\/camera\/desktop\/php\/panel.php": { "401 - Accès non autorisé": "401 - Unauthorized access", - "Impossible de trouver la camera : ": "Unable to find the camera:", - "Impossible de trouver la caméra : ' . init('id')": "Cannot find camera: '. init ('id')", - "Aucune methode correspondante à : ": "No method corresponding to:" + "Aucun objet racine trouvé.": "No root object found.", + "Rechercher": "Search" }, - "plugins\/camera\/core\/class\/camera.class.php": { - "Veuillez vérifier la configuration": "Please check the configuration", - "Tache cron introuvable": "Cron task not found", - "Erreur aucun fichier trouvé à supprimer alors que le répertoire fait : ": "Error no file found to delete while the directory does:", - "La \"Commande d\\'alerte\" ne peut être de type caméra": "The \"Alert command\" cannot be of the camera type", - "L\\'adresse IP de la camera ne peut être vide": "Camera\\'s ip address can\\'t be empty", - "Flux video": "Video stream", - "Status enregistrement": "Record Status", - "Arrêter enregistrement": "Stop recording", - "Capture": "Capture", - "Enregistrer": "Save", - "Nombre captures ou options": "Number of snapshots or options", - "Commande message d'envoi des captures": "Command message to send captures", - "On": "We", - "Off": "Off", - "Alerte sur la camera : ": "Alert on camera :", - " à ": "at ", - "[camera\/sendSnap] Erreur lors de l\\'envoi des images : ": "[camera\/sendSnap] Error when sending snapshots :", - "Impossible de trouver la function ": "Cannot find the function", - "Erreur sur ": "Error on", - "Impossible de creer le dossier : ": "Unable to create folder :", - "Impossible d\\'écrire dans le dossier : ": "Unable to write in the folder :", - "Le fichier est vide : ": "File is empty :", - "Impossible de trouver la commande ON": "Unable to find the ON command", - "Impossible de trouver la commande OFF": "Unable to find the OFF command" + "plugins\/camera\/mobile\/js\/panel.js": { + "Tous": "All" }, - "info.json": { - "Plugin permettant l'affichage des caméras IP. L'affichage vidéo de la caméra s'effectue par snapshots (captures) successives toutes les secondes. Le plugin est compatible avec les cameras RTSP.": "Plugin allowing the display of IP cameras. The video display of the camera is carried out by successive snapshots (captures) every second. The plugin is compatible with RTSP cameras" + "plugins\/camera\/plugin_info\/configuration.php": { + "401 - Accès non autorisé": "401 - Unauthorized access", + "Afficher le panneau des objets": "Show Objects Panel", + "Chemin des enregistrements": "Record path", + "Le plugin caméra doit réagir aux interactions": "The camera plugin must react to interactions", + "Mo": "MB", + "Moteur RTSP": "RTSP", + "Nombre de colonnes": "Number of columns", + "Nombre de lignes": "Number of lines", + "Panel": "Panel", + "Taille maximale du dossier d'enregistrement": "Maximum recording folder size" } } \ No newline at end of file diff --git a/core/i18n/es_ES.json b/core/i18n/es_ES.json index a5c75e2..67f295b 100644 --- a/core/i18n/es_ES.json +++ b/core/i18n/es_ES.json @@ -1,220 +1,216 @@ { - "plugins\/camera\/mobile\/js\/panel.js": { - "Tous": "Todo" - }, - "plugins\/camera\/plugin_info\/configuration.php": { + "plugins\/camera\/core\/ajax\/camera.ajax.php": { "401 - Accès non autorisé": "401 - Acceso no autorizado", - "Le plugin caméra doit réagir aux interactions": "El complemento de la cámara debe reaccionar a las interacciones", - "Moteur RTSP": "Motor RTSP", - "Chemin des enregistrements": "Ruta de registro", - "Taille maximale du dossier d'enregistrement": "Tamaño máximo de carpeta de grabación", - "Mo": "Mes", - "Panel": "Panel", - "Nombre de lignes": "Número de líneas", - "Nombre de colonnes": "Número de columnas", - "Afficher le panneau des objets": "Panel Mostrar objetos" + "Aucune methode correspondante à : ": "Ningún método correspondiente a:", + "Equipement introuvable": "No se ha encontrado el equipo" }, - "plugins\/camera\/desktop\/modal\/camera.displayVideo.php": { + "plugins\/camera\/core\/class\/camera.class.php": { + "Alerte sur la caméra": "Alerta de la cámara", + "Allumer": "Encender", + "Arrêter enregistrement": "Dejar de grabar", + "Aucun fichier à supprimer alors que le répertoire pèse": "No hay ningún archivo que eliminar, aunque el directorio ocupa", + "Capture": "Captura", + "Commande message d'envoi des captures": "Mensaje de comando para enviar capturas", + "Enregistrer": "Registro", + "Erreur lors de l'envoi des images": "Error al enviar las imágenes", + "Erreur sur ": "Error en", + "Eteindre": "Apagar", + "Flux vidéo": "Transmisión de vídeo", + "Impossible d'écrire dans le dossier": "No se puede escribir en la carpeta", + "Impossible de créer le dossier": "No se puede crear la carpeta", + "Impossible de trouver la commande \"Allumer\"": "No se encuentra el comando «Encender»", + "Impossible de trouver la commande \"Eteindre\"": "No se encuentra el comando «Apagar»", + "Impossible de trouver la fonction": "No se ha podido encontrar la función", + "L'adresse IP de la caméra doit être renseignée": "Hay que introducir la dirección IP de la cámara", + "La \"Commande d\\'alerte\" ne doit pas être de type caméra": "El «Comando de alerta» no debe ser del tipo cámara", + "Le fichier est vide": "El archivo está vacío", + "Nombre captures ou options": "Número de capturas u opciones", + "Statut enregistrement": "Estado del registro", + "Tâche cron introuvable": "No se ha encontrado la tarea cron", + "Veuillez vérifier la configuration": "Por favor verifique la configuración", + "à": "para" + }, + "plugins\/camera\/core\/php\/record.php": { + "Equipement introuvable": "No se ha encontrado el equipo", + "L'identifiant de l'équipement doit être renseigné": "Es necesario introducir el identificador del equipo", + "L'équipement n'est pas de type caméra": "El dispositivo no es una cámara" + }, + "plugins\/camera\/core\/php\/sendSnapshot.php": { + "Aucun fichier trouvé": "No se ha encontrado ningún archivo", + "Equipement introuvable": "No se ha encontrado el equipo", + "L'identifiant de l'équipement doit être renseigné": "Es necesario introducir el identificador del equipo", + "L'équipement n'est pas de type caméra": "El equipo no es una cámara" + }, + "plugins\/camera\/core\/php\/stopCam.php": { + "Equipement introuvable": "No se ha encontrado el equipo", + "Impossible de trouver la commande \"Eteindre\"": "No se encuentra el comando «Apagar»", + "L'identifiant de l'équipement doit être renseigné": "Es necesario introducir el identificador del equipo", + "L'équipement n'est pas de type caméra": "El dispositivo no es una cámara" + }, + "plugins\/camera\/desktop\/js\/camera.js": { + "Afficher": "Mostrar", + "Durée avant retour d\\'état (min)": "Duración antes de volver al estado (min)", + "Découverte Caméras": "Cámaras de descubrimiento", + "Etes-vous sur de vouloir supprimer toutes les captures de la caméra ?": "¿Estás seguro de que deseas eliminar todas las capturas de la cámara?", + "Inverser": "Invertir", + "Prévisualisation": "Avance", + "Santé Caméras": "Cámaras de salud", + "Suppression réussie": "Eliminación realizada con éxito", + "Tester": "Probar", + "URL de la commande": "URL de pedido", + "URL de la commande de mouvement stop (caméra motorisée)": "URL del comando de parada de movimiento (cámara motorizada)", + "Valeur retour d\\'état": "Valor de retorno de estado" + }, + "plugins\/camera\/desktop\/modal\/camera.displayImage.php": { "401 - Accès non autorisé": "401 - Acceso no autorizado" }, - "plugins\/camera\/desktop\/modal\/health.php": { - "Image": "Imagen", - "Module": "Modulo", - "ID": "Identificación", - "Statut": "Estado", - "Ip": "IP", - "Protocole": "Protocolo", - "Modèle": "Modelo", - "Vidéo": "Vídeo", - "Framerate": "Velocidad de fotogramas", - "Rafraichissement": "Refrescante", - "Zoom": "Enfocar", - "Max Enregistrement": "Max grabación", - "Date création": "Fecha de creación", - "OK": "Bueno", - "NOK": "NOK", - "OUI": "Si", - "NON": "No" + "plugins\/camera\/desktop\/modal\/camera.displayVideo.php": { + "401 - Accès non autorisé": "401 - Acceso no autorizado" }, "plugins\/camera\/desktop\/modal\/camera.history.php": { - "L\\'id ne peut etre vide": "La identificación no puede estar vacía", - "L\\'équipement est introuvable : ": "El equipo no se puede encontrar:", - "Cet équipement n\\'est pas de type camera : ": "Este equipo no es del tipo de cámara:", "401 - Accès non autorisé": "401 - Acceso no autorizado", + "Equipement introuvable": "No se ha encontrado el equipo", + "L'identifiant de l'équipement doit être renseigné": "Es necesario introducir el identificador del equipo", + "L'équipement n'est pas de type caméra": "El dispositivo no es una cámara", + "Supprimer": "Borrar", "Tout supprimer": "Borrar todo", "Tout télécharger": "Descargar todo", - "Supprimer": "Borrar", "Télécharger": "Descargar" }, + "plugins\/camera\/desktop\/modal\/camera.preview.php": { + "401 - Accès non autorisé": "401 - Acceso no autorizado", + "Equipement introuvable": "No se ha encontrado el equipo", + "L'équipement n'est pas de type caméra": "El dispositivo no es una cámara" + }, "plugins\/camera\/desktop\/modal\/discover.cam.php": { "401 - Accès non autorisé": "401 - Acceso no autorizado", - "IP": "IP", - "Découverte": "Descubrimiento", - "Type": "Tipo", - "Nom d'utilisateur": "Nombre de usuario", - "Mot de passe": "Contraseña", "Action": "Acción", "Ajouter": "Añadir", - "Création réussie": "Creación exitosa" - }, - "plugins\/camera\/desktop\/modal\/camera.preview.php": { - "Equipement introuvable : ": "Equipo no encontrado:", - "L\\'équipement n\\'est pas une camera": "El equipo no es una cámara", - "401 - Accès non autorisé": "401 - Acceso no autorizado" - }, - "plugins\/camera\/desktop\/modal\/camera.displayImage.php": { - "401 - Accès non autorisé": "401 - Acceso no autorizado" + "Création réussie": "Creación exitosa", + "Découverte": "Descubrimiento", + "IP": "IP", + "Mot de passe": "Contraseña", + "Nom d'utilisateur": "Nombre de usuario", + "Type": "Tipo" }, - "plugins\/camera\/desktop\/php\/panel.php": { - "401 - Accès non autorisé": "401 - Acceso no autorizado", - "Aucun objet racine trouvé. Pour en créer un, allez dans Générale -> Objet. Si vous ne savez pas quoi faire ou que c\\'est la premiere fois que vous utilisez Jeedom n\\'hésitez pas a consulter cette page<\/a>": "No se ha encontrado ningún objeto raíz. Para crear uno, vaya a General -> Objeto. Si no sabe qué hacer o es la primera vez que usa Jeedom, no dude en consultar esta página<\/a>", - "Rechercher": "Buscar" + "plugins\/camera\/desktop\/modal\/health.php": { + "Date création": "Fecha de creación", + "Framerate": "Velocidad de fotogramas", + "ID": "Identificación", + "Image": "Imagen", + "Ip": "IP", + "Max Enregistrement": "Max grabación", + "Module": "Modulo", + "Modèle": "Modelo", + "NOK": "NOK", + "NON": "No", + "OK": "Bueno", + "OUI": "Si", + "Protocole": "Protocolo", + "Rafraîchissement": "Actualización", + "Statut": "Estado", + "Vidéo": "Vídeo", + "Zoom": "Enfocar" }, "plugins\/camera\/desktop\/php\/camera.php": { - "Aucun": "Ninguna", "401 - Accès non autorisé": "401 - Acceso no autorizado", - "Gestion": "Gestión", + "Action": "Acción", + "Activer": "Activar", "Ajouter": "Añadir", - "Configuration": "Configuración", - "Découverte": "Descubrimiento", - "Santé": "Salud", - "Mes caméras": "Mis camaras", + "Ajouter une commande": "Añadir una orden", + "Alimentation": "Suministro", + "Aucun": "Ninguna", "Aucun équipement Template trouvé, cliquer sur \"Ajouter\" pour commencer": "No se encontró ningún equipo de plantilla, haga clic en \"Agregar\" para comenzar", - "Rechercher": "Buscar", - "Equipement visible": "Equipos visibles", - "Equipement non visible": "Equipo no visible", + "Capture": "Captura", + "Catégorie": "Categoría", + "Commande \"Allumer\"": "Comando «Encender»", + "Commande \"Eteindre\"": "Comando «Apagar»", + "Commandes": "Comandos", + "Configuration": "Configuración", "Configuration avancée": "Configuración avanzada", + "Convertir en x264 le flux RTSP": "Convertir transmisión RTSP a x264", + "Dashboard": "Salpicadero", "Dupliquer": "Duplicar", - "Sauvegarder": "Guardar", - "Supprimer": "Borrar", + "Durée maximum d'un enregistrement (s)": "Duración máxima de una grabación (s)", + "Découverte": "Descubrimiento", + "Délai (de 0 à 5000)": "Retraso (de 0 a 5000)", + "Délai avant commande stop (en ms)": "Retardo antes del comando de parada (en ms)", "Equipement": "Dispositivos", + "Equipement non visible": "Equipo no visible", + "Equipement visible": "Equipos visibles", + "Gestion": "Gestión", + "HTTP": "Http", + "HTTPS": "HTTPS", + "IP": "IP", + "Id": "Identificación", "Image": "Imagen", - "Capture": "Captura", - "Alimentation": "Suministro", - "Commandes": "Comandos", - "Paramètres généraux": "Configuración general", + "Informations": "Información", + "Jeton de profil": "Ficha de perfil", + "Mes caméras": "Mis camaras", + "Miniature": "Miniatura", + "Mobile": "Móvil", + "Modèle": "Modelo", + "Mot de passe": "Contraseña", + "N'oubliez pas de sauvegarder pour prévisualiser les modifications": "No olvides guardar para ver una vista previa de los cambios", + "Ne pas compresser ou redimensionner l'image": "No comprima ni cambie el tamaño de la imagen", + "Nom": "Nombre", + "Nom d'utilisateur": "Nombre de usuario", "Nom de l'équipement": "Nombre del equipo", "Nom de l'équipement caméra": "Nombre del equipo de la cámara", + "Nombre d'images par seconde de la vidéo": "Número de fotogramas por segundo del video", + "Normal": "Normal", "Objet parent": "Objeto padre", - "Catégorie": "Categoría", + "Option flux vidéo": "Opción de transmisión de video", "Options": "Opciones", - "Activer": "Activar", - "Visible": "Visible", + "Paramètres généraux": "Configuración general", "Paramètres spécifiques": "Parámetros específicos", - "IP": "IP", - "HTTP": "Http", - "HTTPS": "HTTPS", "Port": "Puerto", "Port ONVIF": "Puerto ONVIF", - "Jeton de profil": "Ficha de perfil", - "Vitesses X, Y et Z": "Velocidades X, Y y Z", - "Y (de 0 à 1)": "Sí (0 a 1)", - "Z (de 0 à 1)": "Z (de 0 a 1)", - "Délai avant commande stop (en ms)": "Retardo antes del comando de parada (en ms)", - "Délai (de 0 à 5000)": "Retraso (de 0 a 5000)", - "Nom d'utilisateur": "Nombre de usuario", - "Mot de passe": "Contraseña", - "URL de snapshot": "URL de instantánea", - "URL de capture": "Capturar url", - "URL du flux": "URL del feed", - "URL du flux, RTSP": "URL de transmisión, RTSP", - "Stream du flux RTSP": "Flujo de flujo RTSP", - "Convertir en x264 le flux RTSP": "Convertir transmisión RTSP a x264", - "Option flux vidéo": "Opción de transmisión de video", - "Prévisualiser": "Avance", - "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation": "No olvide guardar para ver los cambios antes de obtener una vista previa", "Position sur le panel": "Posición en el panel", - "Informations": "Información", - "Si votre caméra n'est pas dans la liste vous pouvez trouver": "Si su cámara no está en la lista, puede encontrar", - "ici": "aquí", - "les informations de configuration pour pas mal de camera": "información de configuración para muchas cámaras", - "Modèle": "Modelo", - "Ne pas compresser ou redimensionner l'image": "No comprima ni cambie el tamaño de la imagen", - "Miniature": "Miniatura", - "Dashboard": "Salpicadero", - "Mobile": "Móvil", - "Rafraichissement (s)": "Refresco (s)", + "Prévisualiser": "Avance", "Qualité (%)": "Calidad (%)", + "Rafraîchissement (s)": "Actualización(es)", + "Rechercher": "Buscar", + "Requête": "Petición", + "Santé": "Salud", + "Sauvegarder": "Guardar", + "Si votre caméra n'est pas dans la liste référez-vous": "Si tu cámara no aparece en la lista, consulta", + "Stream du flux RTSP": "Flujo de flujo RTSP", + "Supprimer": "Borrar", + "Supprimer toutes les captures de la caméra": "Eliminar todas las capturas de cámara", "Taille (% - 0 : automatique)": "Tamaño (% - 0: automático)", - "Normal": "Normal", - "Vidéo": "Vídeo", - "Durée maximum d'un enregistrement (s)": "Duración máxima de una grabación (s)", "Toujours faire une vidéo": "Siempre haz un video", - "Nombre d'images par seconde de la vidéo": "Número de fotogramas por segundo del video", - "Supprimer toutes les captures de la caméra": "Eliminar todas las capturas de cámara", - "Commande ON": "Comando ON", - "Commande OFF": "Comando OFF", - "Ajouter une commande": "Añadir una orden", - "Id": "Identificación", - "Nom": "Nombre", "Type": "Tipo", - "Requête": "Petición", - "Action": "Acción" - }, - "plugins\/camera\/desktop\/js\/camera.js": { - "Santé Caméras": "Cámaras de salud", - "Découverte Caméras": "Cámaras de descubrimiento", - "Prévisualisation": "Avance", - "URL de la commande": "URL de pedido", - "URL de la commande de stop de mouvement (caméra motirisée)": "URL de comando de detención de movimiento (cámara activada)", - "Valeur retour d\\'état": "Valor de retorno de estado", - "Durée avant retour d\\'état (min)": "Duración antes de volver al estado (min)", - "Inverser": "Invertir", - "Afficher": "Mostrar", - "Tester": "Probar", - "Etes-vous sur de vouloir supprimer toutes les captures de la caméra ?": "¿Estás seguro de que deseas eliminar todas las capturas de la cámara?", - "Supression réussie": "Eliminación exitosa" - }, - "plugins\/camera\/core\/php\/stopCam.php": { - "[camera\/reccord] L\\'id ne peut etre vide": "[camera \/ reccord] Id no puede estar vacío", - "[camera\/reccord] L\\'équipement est introuvable : ": "[cámara \/ grabación] No se puede encontrar el equipo:", - "[camera\/reccord] Cet équipement n\\'est pas de type camera : ": "[cámara \/ grabación] Este equipo no es del tipo de cámara:", - "Impossible de trouver la commande OFF": "No se puede encontrar el comando OFF" - }, - "plugins\/camera\/core\/php\/sendSnapshot.php": { - "[camera\/sendsnapshot] L\\'id ne peut etre vide": "[cámara \/ foto instantánea] La identificación no puede estar vacía", - "[camera\/sendsnapshot] L\\'équipement est introuvable : ": "[cámara \/ foto instantánea] No se puede encontrar el equipo:", - "[camera\/sendsnapshot] Cet équipement n\\'est pas de type camera : ": "[cámara \/ foto instantánea] Este equipo no es del tipo de cámara:", - "[camera\/sendsnapshot]No file found ": "[cámara \/ envía instantánea] No se encontró ningún archivo" - }, - "plugins\/camera\/core\/php\/record.php": { - "[camera\/reccord] L\\'id ne peut etre vide": "[camera \/ reccord] Id no puede estar vacío", - "[camera\/reccord] L\\'équipement est introuvable : ": "[cámara \/ grabación] No se puede encontrar el equipo:", - "[camera\/reccord] Cet équipement n\\'est pas de type camera : ": "[cámara \/ grabación] Este equipo no es del tipo de cámara:" + "URL de capture": "Capturar url", + "URL de snapshot": "URL de instantánea", + "URL du flux": "URL del feed", + "URL du flux, RTSP": "URL de transmisión, RTSP", + "Vidéo": "Vídeo", + "Visible": "Visible", + "Vitesses X, Y et Z": "Velocidades X, Y y Z", + "Y (de 0 à 1)": "Sí (0 a 1)", + "Z (de 0 à 1)": "Z (de 0 a 1)", + "pour trouver les informations de configuration de nombreuses caméras": "para encontrar la información de configuración de numerosas cámaras", + "à cette page": "en esta página" }, - "plugins\/camera\/core\/ajax\/camera.ajax.php": { + "plugins\/camera\/desktop\/php\/panel.php": { "401 - Accès non autorisé": "401 - Acceso no autorizado", - "Impossible de trouver la camera : ": "Incapaz de encontrar la cámara:", - "Impossible de trouver la caméra : ' . init('id')": "No se puede encontrar la cámara: '. init ('id')", - "Aucune methode correspondante à : ": "Ningún método correspondiente a:" + "Aucun objet racine trouvé.": "No se ha encontrado ningún objeto raíz.", + "Rechercher": "Buscar" }, - "plugins\/camera\/core\/class\/camera.class.php": { - "Veuillez vérifier la configuration": "Por favor verifique la configuración", - "Tache cron introuvable": "Tarea Cron no encontrada", - "Erreur aucun fichier trouvé à supprimer alors que le répertoire fait : ": "Error: no se encontró ningún archivo para eliminar mientras el directorio sí:", - "La \"Commande d\\'alerte\" ne peut être de type caméra": "El \"comando de alerta\" no puede ser del tipo de cámara", - "L\\'adresse IP de la camera ne peut être vide": "La dirección IP de la cámara no puede estar vacía", - "Flux video": "Transmisión de video", - "Status enregistrement": "Estado de registro", - "Arrêter enregistrement": "Dejar de grabar", - "Capture": "Captura", - "Enregistrer": "Registro", - "Nombre captures ou options": "Número de capturas u opciones", - "Commande message d'envoi des captures": "Mensaje de comando para enviar capturas", - "On": "Uno", - "Off": "Apagado", - "Alerte sur la camera : ": "Alerta de la cámara:", - " à ": "para", - "[camera\/sendSnap] Erreur lors de l\\'envoi des images : ": "[camera \/ sendSnap] Error al enviar imágenes:", - "Impossible de trouver la function ": "No puedo encontrar la función", - "Erreur sur ": "Error en", - "Impossible de creer le dossier : ": "No se puede crear la carpeta:", - "Impossible d\\'écrire dans le dossier : ": "No se puede escribir en la carpeta:", - "Le fichier est vide : ": "El archivo esta vacio:", - "Impossible de trouver la commande ON": "No se puede encontrar el comando ON", - "Impossible de trouver la commande OFF": "No se puede encontrar el comando OFF" + "plugins\/camera\/mobile\/js\/panel.js": { + "Tous": "Todo" }, - "info.json": { - "Plugin permettant l'affichage des caméras IP. L'affichage vidéo de la caméra s'effectue par snapshots (captures) successives toutes les secondes. Le plugin est compatible avec les cameras RTSP.": "Complemento que permite la visualización de cámaras IP. La visualización de vídeo de la cámara se realiza mediante sucesivas instantáneas (capturas) cada segundo. El complemento es compatible con cámaras RTSP" + "plugins\/camera\/plugin_info\/configuration.php": { + "401 - Accès non autorisé": "401 - Acceso no autorizado", + "Afficher le panneau des objets": "Panel Mostrar objetos", + "Chemin des enregistrements": "Ruta de registro", + "Le plugin caméra doit réagir aux interactions": "El complemento de la cámara debe reaccionar a las interacciones", + "Mo": "Mes", + "Moteur RTSP": "Motor RTSP", + "Nombre de colonnes": "Número de columnas", + "Nombre de lignes": "Número de líneas", + "Panel": "Panel", + "Taille maximale du dossier d'enregistrement": "Tamaño máximo de carpeta de grabación" } } \ No newline at end of file diff --git a/core/i18n/it_IT.json b/core/i18n/it_IT.json index 6634f04..6d16a9f 100644 --- a/core/i18n/it_IT.json +++ b/core/i18n/it_IT.json @@ -1,220 +1,216 @@ { - "plugins\/camera\/mobile\/js\/panel.js": { - "Tous": "Tous" - }, - "plugins\/camera\/plugin_info\/configuration.php": { + "plugins\/camera\/core\/ajax\/camera.ajax.php": { "401 - Accès non autorisé": "401 - Accesso non autorizzato", - "Le plugin caméra doit réagir aux interactions": "Le plugin caméra doit réagir aux interactions", - "Moteur RTSP": "Moteur RTSP", - "Chemin des enregistrements": "Chemin des enregistrements", - "Taille maximale du dossier d'enregistrement": "Taille maximale du dossier d'enregistrement", - "Mo": "Mo", - "Panel": "Pannello", - "Nombre de lignes": "Nombre de lignes", - "Nombre de colonnes": "Nombre de colonnes", - "Afficher le panneau des objets": "Afficher le panneau des objets" + "Aucune methode correspondante à : ": "Nessun metodo corrispondente a:", + "Equipement introuvable": "Dispositivo non trovato" }, - "plugins\/camera\/desktop\/modal\/camera.displayVideo.php": { + "plugins\/camera\/core\/class\/camera.class.php": { + "Alerte sur la caméra": "Avviso relativo alla telecamera", + "Allumer": "Accendere", + "Arrêter enregistrement": "Arrêter enregistrement", + "Aucun fichier à supprimer alors que le répertoire pèse": "Nessun file da eliminare, nonostante la directory occupi", + "Capture": "Capture", + "Commande message d'envoi des captures": "Commande message d'envoi des captures", + "Enregistrer": "Salva", + "Erreur lors de l'envoi des images": "Errore durante l'invio delle immagini", + "Erreur sur ": "Errore acceso", + "Eteindre": "Spegni", + "Flux vidéo": "Flusso video", + "Impossible d'écrire dans le dossier": "Impossibile scrivere nella cartella", + "Impossible de créer le dossier": "Impossibile creare la cartella", + "Impossible de trouver la commande \"Allumer\"": "Impossibile trovare il comando \"Accendi\"", + "Impossible de trouver la commande \"Eteindre\"": "Impossibile trovare il comando \"Spegni\"", + "Impossible de trouver la fonction": "Impossibile trovare la funzione", + "L'adresse IP de la caméra doit être renseignée": "È necessario inserire l'indirizzo IP della telecamera", + "La \"Commande d\\'alerte\" ne doit pas être de type caméra": "Il \"Comando di allarme\" non deve essere di tipo telecamera", + "Le fichier est vide": "Il file è vuoto", + "Nombre captures ou options": "Nombre captures ou options", + "Statut enregistrement": "Stato della registrazione", + "Tâche cron introuvable": "Attività cron non trovata", + "Veuillez vérifier la configuration": "Veuillez vérifier la configuration", + "à": "a" + }, + "plugins\/camera\/core\/php\/record.php": { + "Equipement introuvable": "Dispositivo non trovato", + "L'identifiant de l'équipement doit être renseigné": "È necessario inserire l'ID dell'apparecchio", + "L'équipement n'est pas de type caméra": "Il dispositivo non è una telecamera" + }, + "plugins\/camera\/core\/php\/sendSnapshot.php": { + "Aucun fichier trouvé": "Nessun file trovato", + "Equipement introuvable": "Dispositivo non trovato", + "L'identifiant de l'équipement doit être renseigné": "È necessario inserire l'ID dell'apparecchio", + "L'équipement n'est pas de type caméra": "Il dispositivo non è una telecamera" + }, + "plugins\/camera\/core\/php\/stopCam.php": { + "Equipement introuvable": "Dispositivo non trovato", + "Impossible de trouver la commande \"Eteindre\"": "Impossibile trovare il comando \"Spegni\"", + "L'identifiant de l'équipement doit être renseigné": "È necessario inserire l'ID dell'apparecchio", + "L'équipement n'est pas de type caméra": "Il dispositivo non è una telecamera" + }, + "plugins\/camera\/desktop\/js\/camera.js": { + "Afficher": "Mostra", + "Durée avant retour d\\'état (min)": "Durata prima del feedback (min=", + "Découverte Caméras": "Découverte Caméras", + "Etes-vous sur de vouloir supprimer toutes les captures de la caméra ?": "Etes-vous sur de vouloir supprimer toutes les captures de la caméra ?", + "Inverser": "Inverti", + "Prévisualisation": "Prévisualisation", + "Santé Caméras": "Santé Caméras", + "Suppression réussie": "Eliminazione riuscita", + "Tester": "Prova", + "URL de la commande": "URL de la commande", + "URL de la commande de mouvement stop (caméra motorisée)": "URL del comando di arresto del movimento (telecamera motorizzata)", + "Valeur retour d\\'état": "Valore di feedback" + }, + "plugins\/camera\/desktop\/modal\/camera.displayImage.php": { "401 - Accès non autorisé": "401 - Accesso non autorizzato" }, - "plugins\/camera\/desktop\/modal\/health.php": { - "Image": "Immagine", - "Module": "Modulo", - "ID": "ID", - "Statut": "Stato", - "Ip": "Ip", - "Protocole": "Protocoll", - "Modèle": "Modello", - "Vidéo": "Vidéo", - "Framerate": "Framerate", - "Rafraichissement": "Rafraichissement", - "Zoom": "Zoom", - "Max Enregistrement": "Max Enregistrement", - "Date création": "Data di creazione", - "OK": "Bene", - "NOK": "NOK", - "OUI": "Sì", - "NON": "No" + "plugins\/camera\/desktop\/modal\/camera.displayVideo.php": { + "401 - Accès non autorisé": "401 - Accesso non autorizzato" }, "plugins\/camera\/desktop\/modal\/camera.history.php": { - "L\\'id ne peut etre vide": "L\\'id ne peut etre vide", - "L\\'équipement est introuvable : ": "L\\'équipement est introuvable :", - "Cet équipement n\\'est pas de type camera : ": "Cet équipement n\\'est pas de type camera :", "401 - Accès non autorisé": "401 - Accesso non autorizzato", + "Equipement introuvable": "Dispositivo non trovato", + "L'identifiant de l'équipement doit être renseigné": "È necessario inserire l'ID dell'apparecchio", + "L'équipement n'est pas de type caméra": "Il dispositivo non è una telecamera", + "Supprimer": "Rimuovere", "Tout supprimer": "Elimina tutto", "Tout télécharger": "Tout télécharger", - "Supprimer": "Rimuovere", "Télécharger": "Scaricare" }, + "plugins\/camera\/desktop\/modal\/camera.preview.php": { + "401 - Accès non autorisé": "401 - Accesso non autorizzato", + "Equipement introuvable": "Dispositivo non trovato", + "L'équipement n'est pas de type caméra": "Il dispositivo non è una telecamera" + }, "plugins\/camera\/desktop\/modal\/discover.cam.php": { "401 - Accès non autorisé": "401 - Accesso non autorizzato", - "IP": "IP", - "Découverte": "Découverte", - "Type": "Tipo", - "Nom d'utilisateur": "Nome utente", - "Mot de passe": "Password", "Action": "Azione", "Ajouter": "Aggiungi", - "Création réussie": "Création réussie" - }, - "plugins\/camera\/desktop\/modal\/camera.preview.php": { - "Equipement introuvable : ": "Equipement introuvable :", - "L\\'équipement n\\'est pas une camera": "L\\'équipement n\\'est pas une camera", - "401 - Accès non autorisé": "401 - Accès non autorisé" - }, - "plugins\/camera\/desktop\/modal\/camera.displayImage.php": { - "401 - Accès non autorisé": "401 - Accesso non autorizzato" + "Création réussie": "Création réussie", + "Découverte": "Découverte", + "IP": "IP", + "Mot de passe": "Password", + "Nom d'utilisateur": "Nome utente", + "Type": "Tipo" }, - "plugins\/camera\/desktop\/php\/panel.php": { - "401 - Accès non autorisé": "401 - Accesso non autorizzato", - "Aucun objet racine trouvé. Pour en créer un, allez dans Générale -> Objet. Si vous ne savez pas quoi faire ou que c\\'est la premiere fois que vous utilisez Jeedom n\\'hésitez pas a consulter cette page<\/a>": "Aucun objet racine trouvé. Pour en créer un, allez dans Générale -> Objet. Si vous ne savez pas quoi faire ou que c\\'est la premiere fois que vous utilisez Jeedom n\\'hésitez pas a consulter cette page<\/a>", - "Rechercher": "Ricercare" + "plugins\/camera\/desktop\/modal\/health.php": { + "Date création": "Data di creazione", + "Framerate": "Framerate", + "ID": "ID", + "Image": "Immagine", + "Ip": "Ip", + "Max Enregistrement": "Max Enregistrement", + "Module": "Modulo", + "Modèle": "Modello", + "NOK": "NOK", + "NON": "No", + "OK": "Bene", + "OUI": "Sì", + "Protocole": "Protocoll", + "Rafraîchissement": "Rinfresco", + "Statut": "Stato", + "Vidéo": "Vidéo", + "Zoom": "Zoom" }, "plugins\/camera\/desktop\/php\/camera.php": { - "Aucun": "Nessuno", "401 - Accès non autorisé": "401 - Accesso non autorizzato", - "Gestion": "Gestione", + "Action": "Azione", + "Activer": "Attivare", "Ajouter": "Aggiungi", - "Configuration": "Configurazione", - "Découverte": "Découverte", - "Santé": "Salute", - "Mes caméras": "Mes caméras", + "Ajouter une commande": "Aggiungi un comando", + "Alimentation": "Alimentation", + "Aucun": "Nessuno", "Aucun équipement Template trouvé, cliquer sur \"Ajouter\" pour commencer": "Aucun équipement Template trouvé, cliquer sur \"Ajouter\" pour commencer", - "Rechercher": "Ricercare", - "Equipement visible": "Equipement visible", - "Equipement non visible": "Equipement non visible", + "Capture": "Capture", + "Catégorie": "Categoria", + "Commande \"Allumer\"": "Comando \"Accendi\"", + "Commande \"Eteindre\"": "Comando \"Spegni\"", + "Commandes": "Comandi", + "Configuration": "Configurazione", "Configuration avancée": "Configurazione avanzata", + "Convertir en x264 le flux RTSP": "Convertir en x264 le flux RTSP", + "Dashboard": "Cruscotto", "Dupliquer": "Duplicato", - "Sauvegarder": "Salva", - "Supprimer": "Rimuovere", + "Durée maximum d'un enregistrement (s)": "Durée maximum d'un enregistrement (s)", + "Découverte": "Découverte", + "Délai (de 0 à 5000)": "Délai (de 0 à 5000)", + "Délai avant commande stop (en ms)": "Délai avant commande stop (en ms)", "Equipement": "Dispositivo", + "Equipement non visible": "Equipement non visible", + "Equipement visible": "Equipement visible", + "Gestion": "Gestione", + "HTTP": "HTTP", + "HTTPS": "HTTPS", + "IP": "IP", + "Id": "Id", "Image": "Immagine", - "Capture": "Capture", - "Alimentation": "Alimentation", - "Commandes": "Comandi", - "Paramètres généraux": "Paramètres généraux", + "Informations": "Informazioni", + "Jeton de profil": "Jeton de profil", + "Mes caméras": "Mes caméras", + "Miniature": "Miniature", + "Mobile": "Mobile", + "Modèle": "Modello", + "Mot de passe": "Password", + "N'oubliez pas de sauvegarder pour prévisualiser les modifications": "Non dimenticate di salvare per visualizzare l'anteprima delle modifiche", + "Ne pas compresser ou redimensionner l'image": "Ne pas compresser ou redimensionner l'image", + "Nom": "Nome", + "Nom d'utilisateur": "Nome utente", "Nom de l'équipement": "Nome dispositivo", "Nom de l'équipement caméra": "Nom de l'équipement caméra", + "Nombre d'images par seconde de la vidéo": "Nombre d'images par seconde de la vidéo", + "Normal": "Normale", "Objet parent": "Oggetto padre", - "Catégorie": "Categoria", + "Option flux vidéo": "Option flux video", "Options": "Opzioni", - "Activer": "Attivare", - "Visible": "Visibile", + "Paramètres généraux": "Paramètres généraux", "Paramètres spécifiques": "Paramètres spécifiques", - "IP": "IP", - "HTTP": "HTTP", - "HTTPS": "HTTPS", "Port": "Porta", "Port ONVIF": "Port ONVIF", - "Jeton de profil": "Jeton de profil", - "Vitesses X, Y et Z": "Vitesses X, Y et Z", - "Y (de 0 à 1)": "Y (de 0 à 1)", - "Z (de 0 à 1)": "Z (de 0 à 1)", - "Délai avant commande stop (en ms)": "Délai avant commande stop (en ms)", - "Délai (de 0 à 5000)": "Délai (de 0 à 5000)", - "Nom d'utilisateur": "Nome utente", - "Mot de passe": "Password", - "URL de snapshot": "URL de snapshot", - "URL de capture": "URL de capture", - "URL du flux": "URL du flux", - "URL du flux, RTSP": "URL du flux, RTSP", - "Stream du flux RTSP": "Stream du flux RTSP", - "Convertir en x264 le flux RTSP": "Convertir en x264 le flux RTSP", - "Option flux vidéo": "Option flux video", - "Prévisualiser": "Previsualiser", - "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation": "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation", "Position sur le panel": "Position sur le panel", - "Informations": "Informazioni", - "Si votre caméra n'est pas dans la liste vous pouvez trouver": "Si votre caméra n'est pas dans la liste vous pouvez trouver", - "ici": "ici", - "les informations de configuration pour pas mal de camera": "les informations de configuration pour pas mal de camera", - "Modèle": "Modello", - "Ne pas compresser ou redimensionner l'image": "Ne pas compresser ou redimensionner l'image", - "Miniature": "Miniature", - "Dashboard": "Cruscotto", - "Mobile": "Mobile", - "Rafraichissement (s)": "Rafraichissement (s)", + "Prévisualiser": "Previsualiser", "Qualité (%)": "Qualité (%)", + "Rafraîchissement (s)": "Aggiornamento\/i", + "Rechercher": "Ricercare", + "Requête": "Requête", + "Santé": "Salute", + "Sauvegarder": "Salva", + "Si votre caméra n'est pas dans la liste référez-vous": "Se la vostra telecamera non è presente nell'elenco, consultate", + "Stream du flux RTSP": "Stream du flux RTSP", + "Supprimer": "Rimuovere", + "Supprimer toutes les captures de la caméra": "Supprimer toutes les captures de la caméra", "Taille (% - 0 : automatique)": "Taille (% - 0 : automatique)", - "Normal": "Normale", - "Vidéo": "Vidéo", - "Durée maximum d'un enregistrement (s)": "Durée maximum d'un enregistrement (s)", "Toujours faire une vidéo": "Toujours faire une video", - "Nombre d'images par seconde de la vidéo": "Nombre d'images par seconde de la vidéo", - "Supprimer toutes les captures de la caméra": "Supprimer toutes les captures de la caméra", - "Commande ON": "Commande ON", - "Commande OFF": "Commande OFF", - "Ajouter une commande": "Aggiungi un comando", - "Id": "Id", - "Nom": "Nome", "Type": "Tipo", - "Requête": "Requête", - "Action": "Azione" - }, - "plugins\/camera\/desktop\/js\/camera.js": { - "Santé Caméras": "Santé Caméras", - "Découverte Caméras": "Découverte Caméras", - "Prévisualisation": "Prévisualisation", - "URL de la commande": "URL de la commande", - "URL de la commande de stop de mouvement (caméra motirisée)": "URL de la commande de stop de mouvement (caméra motirisée)", - "Valeur retour d\\'état": "Valore di feedback", - "Durée avant retour d\\'état (min)": "Durata prima del feedback (min=", - "Inverser": "Inverti", - "Afficher": "Mostra", - "Tester": "Prova", - "Etes-vous sur de vouloir supprimer toutes les captures de la caméra ?": "Etes-vous sur de vouloir supprimer toutes les captures de la caméra ?", - "Supression réussie": "Supression réussie" - }, - "plugins\/camera\/core\/php\/stopCam.php": { - "[camera\/reccord] L\\'id ne peut etre vide": "[camera\/reccord] L\\'id ne peut etre vide", - "[camera\/reccord] L\\'équipement est introuvable : ": "[camera\/reccord] L\\'équipement est introuvable :", - "[camera\/reccord] Cet équipement n\\'est pas de type camera : ": "[camera\/reccord] Cet équipement n\\'est pas de type camera :", - "Impossible de trouver la commande OFF": "Impossible de trouver la commande OFF" - }, - "plugins\/camera\/core\/php\/sendSnapshot.php": { - "[camera\/sendsnapshot] L\\'id ne peut etre vide": "[camera\/sendsnapshot] L\\'id ne peut etre vide", - "[camera\/sendsnapshot] L\\'équipement est introuvable : ": "[camera\/sendsnapshot] L\\'équipement est introuvable :", - "[camera\/sendsnapshot] Cet équipement n\\'est pas de type camera : ": "[camera\/sendsnapshot] Cet équipement n\\'est pas de type camera :", - "[camera\/sendsnapshot]No file found ": "[camera\/sendsnapshot]No file found" - }, - "plugins\/camera\/core\/php\/record.php": { - "[camera\/reccord] L\\'id ne peut etre vide": "[camera\/reccord] L\\'id ne peut etre vide", - "[camera\/reccord] L\\'équipement est introuvable : ": "[camera\/reccord] L\\'équipement est introuvable :", - "[camera\/reccord] Cet équipement n\\'est pas de type camera : ": "[camera\/reccord] Cet équipement n\\'est pas de type camera :" + "URL de capture": "URL de capture", + "URL de snapshot": "URL de snapshot", + "URL du flux": "URL du flux", + "URL du flux, RTSP": "URL du flux, RTSP", + "Vidéo": "Vidéo", + "Visible": "Visibile", + "Vitesses X, Y et Z": "Vitesses X, Y et Z", + "Y (de 0 à 1)": "Y (de 0 à 1)", + "Z (de 0 à 1)": "Z (de 0 à 1)", + "pour trouver les informations de configuration de nombreuses caméras": "per trovare le informazioni di configurazione di numerose telecamere", + "à cette page": "in questa pagina" }, - "plugins\/camera\/core\/ajax\/camera.ajax.php": { + "plugins\/camera\/desktop\/php\/panel.php": { "401 - Accès non autorisé": "401 - Accesso non autorizzato", - "Impossible de trouver la camera : ": "Impossible de trouver la camera :", - "Impossible de trouver la caméra : ' . init('id')": "Impossible de trouver la caméra : ' . init('id')", - "Aucune methode correspondante à : ": "Nessun metodo corrispondente a:" + "Aucun objet racine trouvé.": "Nessun oggetto radice trovato.", + "Rechercher": "Ricercare" }, - "plugins\/camera\/core\/class\/camera.class.php": { - "Veuillez vérifier la configuration": "Veuillez vérifier la configuration", - "Tache cron introuvable": "Tache cron introuvable", - "Erreur aucun fichier trouvé à supprimer alors que le répertoire fait : ": "Errore nessun file trovato da eliminare mentre la directory fa:", - "La \"Commande d\\'alerte\" ne peut être de type caméra": "La \"Commande d\\'alerte\" ne peut être de type caméra", - "L\\'adresse IP de la camera ne peut être vide": "L\\'adresse IP de la camera ne peut être vide", - "Flux video": "Flux video", - "Status enregistrement": "Status enregistrement", - "Arrêter enregistrement": "Arrêter enregistrement", - "Capture": "Capture", - "Enregistrer": "Salva", - "Nombre captures ou options": "Nombre captures ou options", - "Commande message d'envoi des captures": "Commande message d'envoi des captures", - "On": "On", - "Off": "Off", - "Alerte sur la camera : ": "Alerte sur la camera :", - " à ": "a", - "[camera\/sendSnap] Erreur lors de l\\'envoi des images : ": "[camera\/sendSnap] Erreur lors de l\\'envoi des images :", - "Impossible de trouver la function ": "Impossible de trouver la function", - "Erreur sur ": "Errore acceso", - "Impossible de creer le dossier : ": "Impossible de creer le dossier :", - "Impossible d\\'écrire dans le dossier : ": "Impossible d\\'écrire dans le dossier :", - "Le fichier est vide : ": "Le fichier est vide :", - "Impossible de trouver la commande ON": "Impossible de trouver la commande ON", - "Impossible de trouver la commande OFF": "Impossible de trouver la commande OFF" + "plugins\/camera\/mobile\/js\/panel.js": { + "Tous": "Tous" }, - "info.json": { - "Plugin permettant l'affichage des caméras IP. L'affichage vidéo de la caméra s'effectue par snapshots (captures) successives toutes les secondes. Le plugin est compatible avec les cameras RTSP.": "Plugin permettant l'affichage des caméras IP. L'affichage vidéo de la caméra s'effectue par snapshots (captures) successives toutes les secondes. Le plugin est compatible avec les cameras RTSP" + "plugins\/camera\/plugin_info\/configuration.php": { + "401 - Accès non autorisé": "401 - Accesso non autorizzato", + "Afficher le panneau des objets": "Afficher le panneau des objets", + "Chemin des enregistrements": "Chemin des enregistrements", + "Le plugin caméra doit réagir aux interactions": "Le plugin caméra doit réagir aux interactions", + "Mo": "Mo", + "Moteur RTSP": "Moteur RTSP", + "Nombre de colonnes": "Nombre de colonnes", + "Nombre de lignes": "Nombre de lignes", + "Panel": "Pannello", + "Taille maximale du dossier d'enregistrement": "Taille maximale du dossier d'enregistrement" } } \ No newline at end of file diff --git a/core/i18n/pt_PT.json b/core/i18n/pt_PT.json index 314b32d..2cf9fc4 100644 --- a/core/i18n/pt_PT.json +++ b/core/i18n/pt_PT.json @@ -1,220 +1,216 @@ { - "plugins\/camera\/mobile\/js\/panel.js": { - "Tous": "Todos" - }, - "plugins\/camera\/plugin_info\/configuration.php": { + "plugins\/camera\/core\/ajax\/camera.ajax.php": { "401 - Accès non autorisé": "401 - Acesso não autorizado", - "Le plugin caméra doit réagir aux interactions": "O plug-in da câmera deve reagir às interações", - "Moteur RTSP": "Motor RTSP", - "Chemin des enregistrements": "Caminho do registro", - "Taille maximale du dossier d'enregistrement": "Tamanho máximo da pasta de gravação", - "Mo": "Mo", - "Panel": "Painel", - "Nombre de lignes": "Número de linhas", - "Nombre de colonnes": "Numero de colunas", - "Afficher le panneau des objets": "Mostrar painel de objetos" + "Aucune methode correspondante à : ": "Aucune methode correspondante à :", + "Equipement introuvable": "Equipamento não encontrado" }, - "plugins\/camera\/desktop\/modal\/camera.displayVideo.php": { + "plugins\/camera\/core\/class\/camera.class.php": { + "Alerte sur la caméra": "Alerta na câmara", + "Allumer": "Ligar", + "Arrêter enregistrement": "Parar a gravação", + "Aucun fichier à supprimer alors que le répertoire pèse": "Não há ficheiros para eliminar, apesar de o diretório ocupar", + "Capture": "Captura", + "Commande message d'envoi des captures": "Mensagem de comando para enviar capturas", + "Enregistrer": "Registro", + "Erreur lors de l'envoi des images": "Erro ao enviar as imagens", + "Erreur sur ": "Erro", + "Eteindre": "Desligar", + "Flux vidéo": "Fluxo de vídeo", + "Impossible d'écrire dans le dossier": "Não é possível gravar na pasta", + "Impossible de créer le dossier": "Não foi possível criar a pasta", + "Impossible de trouver la commande \"Allumer\"": "Não é possível encontrar o comando «Ligar»", + "Impossible de trouver la commande \"Eteindre\"": "Não é possível encontrar o comando «Desligar»", + "Impossible de trouver la fonction": "Não foi possível encontrar a função", + "L'adresse IP de la caméra doit être renseignée": "É necessário introduzir o endereço IP da câmara", + "La \"Commande d\\'alerte\" ne doit pas être de type caméra": "O «Comando de alerta» não deve ser do tipo câmara", + "Le fichier est vide": "O ficheiro está vazio", + "Nombre captures ou options": "Número de capturas ou opções", + "Statut enregistrement": "Estado do registo", + "Tâche cron introuvable": "Tarefa cron não encontrada", + "Veuillez vérifier la configuration": "Por favor, verifique a configuração", + "à": "às" + }, + "plugins\/camera\/core\/php\/record.php": { + "Equipement introuvable": "Equipamento não encontrado", + "L'identifiant de l'équipement doit être renseigné": "O identificador do equipamento deve ser preenchido", + "L'équipement n'est pas de type caméra": "O equipamento não é do tipo câmara" + }, + "plugins\/camera\/core\/php\/sendSnapshot.php": { + "Aucun fichier trouvé": "Não foi encontrado nenhum ficheiro", + "Equipement introuvable": "Equipamento não encontrado", + "L'identifiant de l'équipement doit être renseigné": "O identificador do equipamento deve ser preenchido", + "L'équipement n'est pas de type caméra": "O equipamento não é do tipo câmara" + }, + "plugins\/camera\/core\/php\/stopCam.php": { + "Equipement introuvable": "Equipamento não encontrado", + "Impossible de trouver la commande \"Eteindre\"": "Não é possível encontrar o comando «Desligar»", + "L'identifiant de l'équipement doit être renseigné": "O identificador do equipamento deve ser preenchido", + "L'équipement n'est pas de type caméra": "O equipamento não é do tipo câmara" + }, + "plugins\/camera\/desktop\/js\/camera.js": { + "Afficher": "Display", + "Durée avant retour d\\'état (min)": "Tempo para voltar \\ estado (min)", + "Découverte Caméras": "Câmeras Discovery", + "Etes-vous sur de vouloir supprimer toutes les captures de la caméra ?": "Tem certeza de que deseja excluir todas as capturas da câmera?", + "Inverser": "Inverter", + "Prévisualisation": "Antevisão", + "Santé Caméras": "Câmeras de saúde", + "Suppression réussie": "Eliminação bem-sucedida", + "Tester": "Teste", + "URL de la commande": "URL do pedido", + "URL de la commande de mouvement stop (caméra motorisée)": "URL do comando de paragem (câmara motorizada)", + "Valeur retour d\\'état": "Estado Valor de retorno \\ 's" + }, + "plugins\/camera\/desktop\/modal\/camera.displayImage.php": { "401 - Accès non autorisé": "401 - Acesso não autorizado" }, - "plugins\/camera\/desktop\/modal\/health.php": { - "Image": "Imagem", - "Module": "Módulo", - "ID": "ID", - "Statut": "Estado", - "Ip": "IP", - "Protocole": "Protocolo", - "Modèle": "Modelo", - "Vidéo": "Vídeo", - "Framerate": "Taxa de quadros", - "Rafraichissement": "Atualizando", - "Zoom": "Ampliação", - "Max Enregistrement": "Gravação máxima", - "Date création": "Data de criação", - "OK": "Ok", - "NOK": "NOK", - "OUI": "Sim", - "NON": "Não" + "plugins\/camera\/desktop\/modal\/camera.displayVideo.php": { + "401 - Accès non autorisé": "401 - Acesso não autorizado" }, "plugins\/camera\/desktop\/modal\/camera.history.php": { - "L\\'id ne peut etre vide": "O ID não pode estar vazio", - "L\\'équipement est introuvable : ": "O equipamento não pode ser encontrado:", - "Cet équipement n\\'est pas de type camera : ": "Este equipamento não é do tipo de câmera:", "401 - Accès non autorisé": "401 - Acesso não autorizado", + "Equipement introuvable": "Equipamento não encontrado", + "L'identifiant de l'équipement doit être renseigné": "O identificador do equipamento deve ser preenchido", + "L'équipement n'est pas de type caméra": "O equipamento não é do tipo câmara", + "Supprimer": "Remover", "Tout supprimer": "Claro", "Tout télécharger": "Baixar tudo", - "Supprimer": "Remover", "Télécharger": "Baixar" }, + "plugins\/camera\/desktop\/modal\/camera.preview.php": { + "401 - Accès non autorisé": "401 - Acesso não autorizado", + "Equipement introuvable": "Equipamento não encontrado", + "L'équipement n'est pas de type caméra": "O equipamento não é do tipo câmara" + }, "plugins\/camera\/desktop\/modal\/discover.cam.php": { "401 - Accès non autorisé": "401 - Acesso não autorizado", - "IP": "IP", - "Découverte": "Descoberta", - "Type": "Tipo", - "Nom d'utilisateur": "Nome de Usuário", - "Mot de passe": "Senha", "Action": "Ação", "Ajouter": "Adicionar", - "Création réussie": "Criação bem sucedida" - }, - "plugins\/camera\/desktop\/modal\/camera.preview.php": { - "Equipement introuvable : ": "Equipamento não encontrado:", - "L\\'équipement n\\'est pas une camera": "O equipamento não é uma câmera", - "401 - Accès non autorisé": "401 - Acesso não autorizado" - }, - "plugins\/camera\/desktop\/modal\/camera.displayImage.php": { - "401 - Accès non autorisé": "401 - Acesso não autorizado" + "Création réussie": "Criação bem sucedida", + "Découverte": "Descoberta", + "IP": "IP", + "Mot de passe": "Senha", + "Nom d'utilisateur": "Nome de Usuário", + "Type": "Tipo" }, - "plugins\/camera\/desktop\/php\/panel.php": { - "401 - Accès non autorisé": "401 - Acesso não autorizado", - "Aucun objet racine trouvé. Pour en créer un, allez dans Générale -> Objet. Si vous ne savez pas quoi faire ou que c\\'est la premiere fois que vous utilisez Jeedom n\\'hésitez pas a consulter cette page<\/a>": "Nenhum objeto raiz encontrado. Para criar um, vá para Geral -> Objeto. Se você não sabe o que fazer ou é a primeira vez que utiliza o Jeedom, não hesite em consultar esta página<\/a>", - "Rechercher": "Pesquisa" + "plugins\/camera\/desktop\/modal\/health.php": { + "Date création": "Data de criação", + "Framerate": "Taxa de quadros", + "ID": "ID", + "Image": "Imagem", + "Ip": "IP", + "Max Enregistrement": "Gravação máxima", + "Module": "Módulo", + "Modèle": "Modelo", + "NOK": "NOK", + "NON": "Não", + "OK": "Ok", + "OUI": "Sim", + "Protocole": "Protocolo", + "Rafraîchissement": "Atualização", + "Statut": "Estado", + "Vidéo": "Vídeo", + "Zoom": "Ampliação" }, "plugins\/camera\/desktop\/php\/camera.php": { - "Aucun": "Nemhum", "401 - Accès non autorisé": "401 - Acesso não autorizado", - "Gestion": "Gestão", + "Action": "Ação", + "Activer": "Ativar", "Ajouter": "Adicionar", - "Configuration": "Configuração", - "Découverte": "Descoberta", - "Santé": "Saúde", - "Mes caméras": "Minhas câmeras", + "Ajouter une commande": "Adicionar comando", + "Alimentation": "Alimento", + "Aucun": "Nemhum", "Aucun équipement Template trouvé, cliquer sur \"Ajouter\" pour commencer": "Nenhum equipamento modelo encontrado, clique em \"Adicionar\" para iniciar", - "Rechercher": "Pesquisa", - "Equipement visible": "Equipamento visível", - "Equipement non visible": "Equipamento não visível", + "Capture": "Captura", + "Catégorie": "Categoria", + "Commande \"Allumer\"": "Comando «Ligar»", + "Commande \"Eteindre\"": "Comando «Desligar»", + "Commandes": "Comandos", + "Configuration": "Configuração", "Configuration avancée": "Configuração avançada", + "Convertir en x264 le flux RTSP": "Converter fluxo RTSP para x264", + "Dashboard": "Painel de instrumentos", "Dupliquer": "Duplicar", - "Sauvegarder": "Salvar", - "Supprimer": "Remover", + "Durée maximum d'un enregistrement (s)": "Duração máxima de uma gravação", + "Découverte": "Descoberta", + "Délai (de 0 à 5000)": "Atraso (de 0 a 5000)", + "Délai avant commande stop (en ms)": "Atraso antes do comando de parada (em ms)", "Equipement": "Equipamento", + "Equipement non visible": "Equipamento não visível", + "Equipement visible": "Equipamento visível", + "Gestion": "Gestão", + "HTTP": "HTTP", + "HTTPS": "HTTPS", + "IP": "IP", + "Id": "ID", "Image": "Imagem", - "Capture": "Captura", - "Alimentation": "Alimento", - "Commandes": "Comandos", - "Paramètres généraux": "Configurações Gerais", + "Informations": "Informação", + "Jeton de profil": "Token de perfil", + "Mes caméras": "Minhas câmeras", + "Miniature": "Miniatura", + "Mobile": "Móvel", + "Modèle": "Modelo", + "Mot de passe": "Senha", + "N'oubliez pas de sauvegarder pour prévisualiser les modifications": "Não se esqueça de guardar para pré-visualizar as alterações", + "Ne pas compresser ou redimensionner l'image": "Não comprima ou redimensione a imagem", + "Nom": "Nome", + "Nom d'utilisateur": "Nome de Usuário", "Nom de l'équipement": "Nome de equipamentos", "Nom de l'équipement caméra": "Nome do equipamento da câmera", + "Nombre d'images par seconde de la vidéo": "Número de quadros por segundo do vídeo", + "Normal": "Normal", "Objet parent": "Objeto pai", - "Catégorie": "Categoria", + "Option flux vidéo": "Opção de transmissão de vídeo", "Options": "Opções", - "Activer": "Ativar", - "Visible": "Visivél", + "Paramètres généraux": "Configurações Gerais", "Paramètres spécifiques": "Parâmetros específicos", - "IP": "IP", - "HTTP": "HTTP", - "HTTPS": "HTTPS", "Port": "Porta", "Port ONVIF": "Porta ONVIF", - "Jeton de profil": "Token de perfil", - "Vitesses X, Y et Z": "Velocidades X, Y e Z", - "Y (de 0 à 1)": "S (0 a 1)", - "Z (de 0 à 1)": "Z (de 0 a 1)", - "Délai avant commande stop (en ms)": "Atraso antes do comando de parada (em ms)", - "Délai (de 0 à 5000)": "Atraso (de 0 a 5000)", - "Nom d'utilisateur": "Nome de Usuário", - "Mot de passe": "Senha", - "URL de snapshot": "URL do instantâneo", - "URL de capture": "URL de captura", - "URL du flux": "URL do feed", - "URL du flux, RTSP": "URL de fluxo, RTSP", - "Stream du flux RTSP": "Fluxo de fluxo RTSP", - "Convertir en x264 le flux RTSP": "Converter fluxo RTSP para x264", - "Option flux vidéo": "Opção de transmissão de vídeo", - "Prévisualiser": "Antevisão", - "N'oubliez pas de sauvegarder pour voir vos modifications avant la prévisualisation": "Não se esqueça de salvar para ver suas alterações antes de visualizar", "Position sur le panel": "Posição no painel", - "Informations": "Informação", - "Si votre caméra n'est pas dans la liste vous pouvez trouver": "Se sua câmera não estiver na lista, você pode encontrar", - "ici": "aqui", - "les informations de configuration pour pas mal de camera": "informações de configuração para muitas câmeras", - "Modèle": "Modelo", - "Ne pas compresser ou redimensionner l'image": "Não comprima ou redimensione a imagem", - "Miniature": "Miniatura", - "Dashboard": "Painel de instrumentos", - "Mobile": "Móvel", - "Rafraichissement (s)": "Refresco (s)", + "Prévisualiser": "Antevisão", "Qualité (%)": "Qualidade (%)", + "Rafraîchissement (s)": "Atualização(s)", + "Rechercher": "Pesquisa", + "Requête": "Pedido", + "Santé": "Saúde", + "Sauvegarder": "Salvar", + "Si votre caméra n'est pas dans la liste référez-vous": "Se a sua câmara não constar da lista, consulte", + "Stream du flux RTSP": "Fluxo de fluxo RTSP", + "Supprimer": "Remover", + "Supprimer toutes les captures de la caméra": "Excluir todas as capturas de câmera", "Taille (% - 0 : automatique)": "Tamanho (% - 0: automático)", - "Normal": "Normal", - "Vidéo": "Vídeo", - "Durée maximum d'un enregistrement (s)": "Duração máxima de uma gravação", "Toujours faire une vidéo": "Sempre faça um vídeo", - "Nombre d'images par seconde de la vidéo": "Número de quadros por segundo do vídeo", - "Supprimer toutes les captures de la caméra": "Excluir todas as capturas de câmera", - "Commande ON": "Comando ON", - "Commande OFF": "Comando OFF", - "Ajouter une commande": "Adicionar comando", - "Id": "ID", - "Nom": "Nome", "Type": "Tipo", - "Requête": "Pedido", - "Action": "Ação" - }, - "plugins\/camera\/desktop\/js\/camera.js": { - "Santé Caméras": "Câmeras de saúde", - "Découverte Caméras": "Câmeras Discovery", - "Prévisualisation": "Antevisão", - "URL de la commande": "URL do pedido", - "URL de la commande de stop de mouvement (caméra motirisée)": "URL do comando de parada de movimento (câmera alimentada)", - "Valeur retour d\\'état": "Estado Valor de retorno \\ 's", - "Durée avant retour d\\'état (min)": "Tempo para voltar \\ estado (min)", - "Inverser": "Inverter", - "Afficher": "Display", - "Tester": "Teste", - "Etes-vous sur de vouloir supprimer toutes les captures de la caméra ?": "Tem certeza de que deseja excluir todas as capturas da câmera?", - "Supression réussie": "Remoção bem sucedida" - }, - "plugins\/camera\/core\/php\/stopCam.php": { - "[camera\/reccord] L\\'id ne peut etre vide": "[câmera \/ gravação] O ID não pode estar vazio", - "[camera\/reccord] L\\'équipement est introuvable : ": "[câmera \/ gravação] O equipamento não pode ser encontrado:", - "[camera\/reccord] Cet équipement n\\'est pas de type camera : ": "[câmera \/ gravação] Este equipamento não é do tipo câmera:", - "Impossible de trouver la commande OFF": "Não foi possível encontrar o comando OFF" - }, - "plugins\/camera\/core\/php\/sendSnapshot.php": { - "[camera\/sendsnapshot] L\\'id ne peut etre vide": "[camera \/ sendnapshot] O ID não pode estar vazio", - "[camera\/sendsnapshot] L\\'équipement est introuvable : ": "[camera \/ sendnapshot] O equipamento não pode ser encontrado:", - "[camera\/sendsnapshot] Cet équipement n\\'est pas de type camera : ": "[camera \/ sendnapshot] Este equipamento não é do tipo câmera:", - "[camera\/sendsnapshot]No file found ": "[camera \/ sendnapshot] Nenhum arquivo encontrado" - }, - "plugins\/camera\/core\/php\/record.php": { - "[camera\/reccord] L\\'id ne peut etre vide": "[câmera \/ gravação] O ID não pode estar vazio", - "[camera\/reccord] L\\'équipement est introuvable : ": "[câmera \/ gravação] O equipamento não pode ser encontrado:", - "[camera\/reccord] Cet équipement n\\'est pas de type camera : ": "[câmera \/ gravação] Este equipamento não é do tipo câmera:" + "URL de capture": "URL de captura", + "URL de snapshot": "URL do instantâneo", + "URL du flux": "URL do feed", + "URL du flux, RTSP": "URL de fluxo, RTSP", + "Vidéo": "Vídeo", + "Visible": "Visivél", + "Vitesses X, Y et Z": "Velocidades X, Y e Z", + "Y (de 0 à 1)": "S (0 a 1)", + "Z (de 0 à 1)": "Z (de 0 a 1)", + "pour trouver les informations de configuration de nombreuses caméras": "para encontrar as informações de configuração de várias câmaras", + "à cette page": "nesta página" }, - "plugins\/camera\/core\/ajax\/camera.ajax.php": { + "plugins\/camera\/desktop\/php\/panel.php": { "401 - Accès non autorisé": "401 - Acesso não autorizado", - "Impossible de trouver la camera : ": "Não foi possível encontrar a câmera:", - "Impossible de trouver la caméra : ' . init('id')": "Não foi possível encontrar a câmera: '. init ('id')", - "Aucune methode correspondante à : ": "Aucune methode correspondante à :" + "Aucun objet racine trouvé.": "Não foi encontrado nenhum objeto raiz.", + "Rechercher": "Pesquisa" }, - "plugins\/camera\/core\/class\/camera.class.php": { - "Veuillez vérifier la configuration": "Por favor, verifique a configuração", - "Tache cron introuvable": "Tarefa Cron não encontrada", - "Erreur aucun fichier trouvé à supprimer alors que le répertoire fait : ": "Erro, nenhum arquivo, para excluir, encontrado no diretório:", - "La \"Commande d\\'alerte\" ne peut être de type caméra": "O \"comando de alerta\" não pode ser do tipo câmera", - "L\\'adresse IP de la camera ne peut être vide": "O endereço IP da câmera não pode estar vazio", - "Flux video": "Transmissão de vídeo", - "Status enregistrement": "Status de registro", - "Arrêter enregistrement": "Parar a gravação", - "Capture": "Captura", - "Enregistrer": "Registro", - "Nombre captures ou options": "Número de capturas ou opções", - "Commande message d'envoi des captures": "Mensagem de comando para enviar capturas", - "On": "Nós", - "Off": "Fora", - "Alerte sur la camera : ": "Alerta da câmera:", - " à ": "às", - "[camera\/sendSnap] Erreur lors de l\\'envoi des images : ": "[camera \/ sendSnap] Erro ao enviar imagens:", - "Impossible de trouver la function ": "Não consigo encontrar a função", - "Erreur sur ": "Erro", - "Impossible de creer le dossier : ": "Não foi possível criar a pasta:", - "Impossible d\\'écrire dans le dossier : ": "Não foi possível gravar na pasta:", - "Le fichier est vide : ": "O arquivo está vazio:", - "Impossible de trouver la commande ON": "Não foi possível encontrar o comando ON", - "Impossible de trouver la commande OFF": "Não foi possível encontrar o comando OFF" + "plugins\/camera\/mobile\/js\/panel.js": { + "Tous": "Todos" }, - "info.json": { - "Plugin permettant l'affichage des caméras IP. L'affichage vidéo de la caméra s'effectue par snapshots (captures) successives toutes les secondes. Le plugin est compatible avec les cameras RTSP.": "Plugin que permite a exibição de câmeras IP. A exibição do vídeo da câmera é realizada por sucessivos instantâneos (capturas) a cada segundo. O plugin é compatível com câmeras RTSP" + "plugins\/camera\/plugin_info\/configuration.php": { + "401 - Accès non autorisé": "401 - Acesso não autorizado", + "Afficher le panneau des objets": "Mostrar painel de objetos", + "Chemin des enregistrements": "Caminho do registro", + "Le plugin caméra doit réagir aux interactions": "O plug-in da câmera deve reagir às interações", + "Mo": "Mo", + "Moteur RTSP": "Motor RTSP", + "Nombre de colonnes": "Numero de colunas", + "Nombre de lignes": "Número de linhas", + "Panel": "Painel", + "Taille maximale du dossier d'enregistrement": "Tamanho máximo da pasta de gravação" } } \ No newline at end of file diff --git a/plugin_info/info.json b/plugin_info/info.json index 6f3be3c..e2ffd56 100644 --- a/plugin_info/info.json +++ b/plugin_info/info.json @@ -1,40 +1,45 @@ { - "id": "camera", - "name": "Caméra", - "description": { - "fr_FR": "Plugin permettant l'affichage des caméras IP. L'affichage vidéo de la caméra s'effectue par snapshots (captures) successives toutes les secondes. Le plugin est compatible avec les cameras RTSP." - }, - "licence": "AGPL", - "author": "Jeedom SAS", - "require": "4.3.1", - "category": "security", - "display": "panel", - "mobile": "panel", - "hasOwnDeamon": true, - "hasDependency": true, - "whiteListFolders": [ - "data\/records" - ], - "changelog": "https:\/\/doc.jeedom.com\/#language#\/plugins\/security\/camera\/changelog", - "documentation": "https:\/\/doc.jeedom.com\/#language#\/plugins\/security\/camera\/", - "language": [ - "fr_FR", - "en_US", - "es_ES", - "de_DE", - "it_IT", - "pt_PT" - ], - "compatibility": [ - "miniplus", - "smart", - "atlas", - "rpi", - "docker", - "diy", - "mobile", - "v4" - ], - "changelog_beta": "https:\/\/doc.jeedom.com\/#language#\/plugins\/security\/camera\/beta\/changelog", - "documentation_beta": "https:\/\/doc.jeedom.com\/#language#\/plugins\/security\/camera\/beta" -} + "id": "camera", + "name": "Caméra", + "description": { + "fr_FR": "Plugin permettant l'affichage des caméras IP. L'affichage vidéo de la caméra s'effectue par snapshots (captures) successives toutes les secondes. Le plugin est compatible avec les cameras RTSP.", + "en_US": "Plugin for displaying IP cameras. The camera's video feed is displayed as a series of snapshots taken every second. The plugin is compatible with RTSP cameras.", + "es_ES": "Complemento que permite visualizar las cámaras IP. La visualización del vídeo de la cámara se realiza mediante instantáneas sucesivas cada segundo. El complemento es compatible con cámaras RTSP.", + "de_DE": "Plugin zur Anzeige von IP-Kameras. Die Videoanzeige der Kamera erfolgt durch aufeinanderfolgende Schnappschüsse (Aufnahmen) im Sekundentakt. Das Plugin ist mit RTSP-Kameras kompatibel.", + "it_IT": "Plugin che consente la visualizzazione delle telecamere IP. La visualizzazione video della telecamera avviene tramite snapshot (immagini) successive ogni secondo. Il plugin è compatibile con le telecamere RTSP.", + "pt_PT": "Plugin que permite a visualização de câmaras IP. A visualização do vídeo da câmara é feita através de instantâneos (capturas) sucessivos a cada segundo. O plugin é compatível com câmaras RTSP." + }, + "licence": "AGPL", + "author": "Jeedom SAS", + "require": "4.3.1", + "category": "security", + "display": "panel", + "mobile": "panel", + "hasOwnDeamon": true, + "hasDependency": true, + "whiteListFolders": [ + "data/records" + ], + "changelog": "https://doc.jeedom.com/#language#/plugins/security/camera/changelog", + "documentation": "https://doc.jeedom.com/#language#/plugins/security/camera/", + "language": [ + "de_DE", + "en_US", + "es_ES", + "fr_FR", + "it_IT", + "pt_PT" + ], + "compatibility": [ + "miniplus", + "smart", + "atlas", + "rpi", + "docker", + "diy", + "mobile", + "v4" + ], + "changelog_beta": "https://doc.jeedom.com/#language#/plugins/security/camera/beta/changelog", + "documentation_beta": "https://doc.jeedom.com/#language#/plugins/security/camera/beta" +} \ No newline at end of file From 0f16272ab44fbbbdc96659ac1ab1bfa744e5f40a Mon Sep 17 00:00:00 2001 From: Salvialf <48010158+Salvialf@users.noreply.github.com> Date: Mon, 27 Jul 2026 07:43:09 +0000 Subject: [PATCH 47/47] Auto update translation done by jeedom/jeetranslate workflow --- core/i18n/es_ES.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/i18n/es_ES.json b/core/i18n/es_ES.json index 67f295b..181e55b 100644 --- a/core/i18n/es_ES.json +++ b/core/i18n/es_ES.json @@ -39,7 +39,7 @@ "Aucun fichier trouvé": "No se ha encontrado ningún archivo", "Equipement introuvable": "No se ha encontrado el equipo", "L'identifiant de l'équipement doit être renseigné": "Es necesario introducir el identificador del equipo", - "L'équipement n'est pas de type caméra": "El equipo no es una cámara" + "L'équipement n'est pas de type caméra": "El dispositivo no es una cámara" }, "plugins\/camera\/core\/php\/stopCam.php": { "Equipement introuvable": "No se ha encontrado el equipo",