diff --git a/data/projects/docker-mini-cctv-nvr.yml b/data/projects/docker-mini-cctv-nvr.yml
index 91f271c..553dca3 100644
--- a/data/projects/docker-mini-cctv-nvr.yml
+++ b/data/projects/docker-mini-cctv-nvr.yml
@@ -28,6 +28,8 @@ projects:
subtitle_key: "article.subtitle"
tags:
- "docker"
+ - "cctv"
+ - "nvr"
languages:
- "docker"
- "php"
diff --git a/data/strings/en/docker-mini-cctv-nvr.yml b/data/strings/en/docker-mini-cctv-nvr.yml
index beb53bc..8e71848 100644
--- a/data/strings/en/docker-mini-cctv-nvr.yml
+++ b/data/strings/en/docker-mini-cctv-nvr.yml
@@ -8,7 +8,7 @@ intro.title: "Introduction"
intro.1: "A mini docker stack that allows you to easily record, clean and serve CCTV recordings made
over RSTP while using a minimal amount of system resources."
intro.2: "This stack is mainly intended to be used as a backup when other and more complete solutions crash or
-need to be shutdown.This simple docker stack aims to provide you with a simple,
+need to be shutdown.
This simple docker stack aims to provide you with a simple,
lightweight and robust NVR for all of your RTSP-based CCTV cameras."
preamble.title: "Preamble"
@@ -70,3 +70,5 @@ license.title: "License"
license.1: "This software, as well as the Simplette CSS Stylesheet used for the web interface are both licensed under Unlicense."
commons.example: "Example"
+
+links.title: Links
diff --git a/data/strings/en/lscom-cli-dotnet.yml b/data/strings/en/lscom-cli-dotnet.yml
index 00a81eb..d504d04 100644
--- a/data/strings/en/lscom-cli-dotnet.yml
+++ b/data/strings/en/lscom-cli-dotnet.yml
@@ -3,8 +3,10 @@
meta.title: DotNet-ListComPort
meta.description: A simple CLI tool that can list COM ports with their name, friendly
name and device name easily and cleanly.
+
article.subtitle: View on GitHub
+
intro.title: Introduction
intro.p1: A simple CLI tool that can list COM ports with their full name easily and
cleanly.
@@ -14,22 +16,27 @@ intro.p2: This tool is intended to replace the tedious task of having to use the
intro.p3: This version of the program is a complete refactoring of my old PB-ListComPort
project that also changes from the proprietary and paid PureBasic language and compiler
to .NET 6.0.
+
requirements.title: Requirements
requirements.1: Windows
requirements.2: Any CPU architecture
requirements.3: ".NET 6.0"
requirements.4: Optional if using the larger "self-contained" builds.
+
improvements.title: Improvements over PB-ListComPort
improvements.1: Switched from PureBasic to .NET 6.0.
improvements.2: Improved a lot of the program's logic.
-improvements.3: Added the -H/--short-help
.
+improvements.3: Added the -H/--short-help
.
improvements.4: Added support for Windows ARM & ARM64.
improvements.5: Support for running without a console.
+
usage.title: Usage
+
formatting.title: Output formatting
+
requirements.table.title: Requirements
-requirements.text.dotnet: .NET
- 6.0
+requirements.text.dotnet: .NET 6.0
+
packages.title: Packages
packages.single.title: Single Builds
packages.single.1: Lighter builds that only contain the exe and required licenses.
You
@@ -43,5 +50,7 @@ packages.msi.1: Windows installers that contain the relevant "Self-Contained" bu
with an option to automatically update existing installations and add the program
to the %PATH%.
The install location is %ProgramFiles%\NibblePoker\lscom\
and cannot be changed. (This will be possible in future releases)
+
links.title: Links
+
screenshots.title: Screenshots
diff --git a/data/strings/fr/docker-mini-cctv-nvr.yml b/data/strings/fr/docker-mini-cctv-nvr.yml
index 860f676..c0e2c1a 100644
--- a/data/strings/fr/docker-mini-cctv-nvr.yml
+++ b/data/strings/fr/docker-mini-cctv-nvr.yml
@@ -1,5 +1,74 @@
# FR - Docker Mini CCTV NVR
-meta.title: "Mini Dockerized CCTV NVR"
-meta.description: "Mini docker stack that allows you to easily record, clean and serve CCTV recordings made
-over RSTP while using a minimal amount of system resources."
+meta.title: "Mini enregistreur NVR dockerisé"
+meta.description: "Mini stack Docker qui permet de facilement enregistrer, nettoyer et servir les enregistrements CCTV effectués
+via RTSP tout en utilisant un minimum de ressources."
+
+intro.title: "Introduction"
+intro.1: "Mini stack Docker qui permet de facilement enregistrer, nettoyer et servir les enregistrements CCTV effectués
+via RTSP tout en utilisant un minimum de ressources."
+intro.2: "Ce stack est principalement destiné à être utilisé comme solution de secours lorsque d'autres solutions plus complètes tombent en panne ou
+doivent être arrêtées."
+
+preamble.title: "Remarques"
+preamble.1: "Ce stack enregistre les flux des caméras tels quels sans les ré-encoder.
+Il consommera donc plus d'espace disque.
+Référez-vous à la section \"Exemple de statistiques d'utilisation\" pour plus d'informations."
+preamble.2: "Il est aussi fortement recommandé de mettre le serveur web derrière un reverse-proxy si vous souhaitez le rendre accessible hors de votre réseau local."
+
+setup.title: "Installation"
+setup.1: "L'entièreté de la configuration se fait via les variables d'environnement dans le fichier docker-compose.yml."
+setup.2: "Cette étape ne devrait prendre que 2-3 minutes si vous avez déjà l'URL de flux RTSP sous la main.
+Si vous ne l'avez pas, consultez le manuel d'utilisation de votre caméra et testez les URLs avec VLC."
+
+setup.camera.title: "Caméras"
+setup.camera.1: "Chaque conteneur d'enregistrement doit se voir attribuer une URL de flux RTSP et un dossier unique
+dans lequel les enregistrements seront stockés."
+setup.camera.2: "L'URL doit être fourni via la variable d'environnement NP_CCTV_URL,
+et le dossier de sortie via un volume monté sous /data dans le conteneur."
+setup.camera.3: "L'exemple ci-dessus utilise l'URL rtsp://user:password@address:554/sub-path
+et stocke ses enregistrements dans ./recordings/cam1."
+
+setup.cleaner.title: "Nettoyeur"
+setup.cleaner.1: "Le script de nettoyage nommé cleaner.py nécessite uniquement de définir une variable d'environnement
+nommée NP_MAX_FILE_AGE_HOURS, correspondant au nombre maximal d'heures pendant lesquelles un enregistrement doit être conservé."
+setup.cleaner.2: "Si cette variable n'est pas définie, le script supprimera automatiquement les enregistrements de plus de 72 heures."
+
+setup.web.title: "Interface Web"
+setup.web.1: "L'interface Web doit avoir une ligne de configuration pour chaque caméra que vous souhaitez rendre disponible.
+Additionellement, vous pourrez aussi configurer le titre et le pied de page si vous le souhaitez."
+setup.web.2: "Chaque caméra devra être référencée via une variable d'environnement au format suivant :
+ NP_CAM_<camId> = <Nom de la caméra>"
+setup.web.3: "Voici un exemple pour cam1 si elle est nommée Caméra #1 :
+ NP_CAM_cam1 = Caméra #1"
+setup.web.vars.title: "Autres variables"
+setup.web.vars.description.title: "Titre de la page"
+setup.web.vars.description.footer: "Contenu HTML du pied de page"
+
+startup.title: "Démarrage"
+startup.1: "Une fois la configuration du stack terminée, vous pouvez simplement exécuter la commande suivante :"
+#docker-compose up --build -d
+
+screenshots.title: "Captures d'écran"
+
+statistics.title: "Exemple de statistiques d'utilisation"
+statistics.1: "NanoPi R4S 4GB"
+statistics.1.1: "Consomme 0.008 kWh / 8 Watts avec d'autres conteneurs et un HDD USB & SSD USB"
+statistics.2: "4 caméras IP"
+statistics.2.1: "Tous les flux RTSP TCP en H.256 4K"
+statistics.2.2: "Environ 220 Go de données par jour"
+statistics.2.2.1: "Environ 20.4 Mbit/s ou 2.6 Mo/s"
+statistics.3: "Moins de 200 Mo d'utilisation RAM"
+statistics.3.1: "~32 Mo par enregistreur"
+statistics.3.2: "4 Mo pour le nettoyeur"
+statistics.3.3: "4 Mo pour le serveur web"
+statistics.4: "Utilisation moyenne d'environ 10 % du CPU sur 6 cœurs"
+statistics.4.1: "Moyenne de 15 % par enregistreur"
+statistics.4.2: "Moyenne de 1-5 % pour le nettoyeur et le serveur web"
+
+license.title: "Licence"
+license.1: "Ce logiciel, ainsi que la feuille de style Simplette CSS utilisée pour l'interface Web, sont tous deux sous licence Unlicense."
+
+commons.example: "Exemple"
+
+links.title: "Liens"
diff --git a/data/strings/fr/lscom-cli-dotnet.yml b/data/strings/fr/lscom-cli-dotnet.yml
index 4d5fbf8..ac812fa 100644
--- a/data/strings/fr/lscom-cli-dotnet.yml
+++ b/data/strings/fr/lscom-cli-dotnet.yml
@@ -3,8 +3,10 @@
meta.title: DotNet-ListComPort
meta.description: Un petit utilitaire pour invité de commande qui permet de facilement
lister les noms, noms formatés et chemin des ports COM.
+
article.subtitle: Voir sur GitHub
+
intro.title: Introduction
intro.p1: Un petit utilitaire pour invité de commande qui permet de facilement lister
les noms, noms formatés et chemins des ports COM.
@@ -14,33 +16,38 @@ intro.p3: Cette version du programme a completement été réecrit depuis le pro
PB-ListComPort en
.NET 6.0 au lieu de PureBasic afin de ne plus utiliser de langage de programmation
propriétaire.
+
requirements.title: Dépendances
requirements.1: Windows
requirements.2: Toutes architectures de CPU
requirements.3: ".NET 6.0"
requirements.4: Optionnel si vous utilisez les paquets "self-contained".
+
improvements.title: Améliorations
improvements.1: Changement de PureBasic vers .NET 6.0.
improvements.2: Amélioration de la logique interne du programme.
-improvements.3: Ajout de l'option -H/--short-help
.
+improvements.3: Ajout de l'option -H/--short-help
.
improvements.4: Support pour Windows ARM et ARM64.
improvements.5: Support pour le lancement sans invité de commande.
+
usage.title: Utilisation
+
formatting.title: Formatage de sortie
+
requirements.table.title: Dépendances
requirements.text.dotnet: .NET 6.0
-packages.title: Paquets
-packages.single.title: ??? (Single)
-packages.single.1: Lighter builds that only contain the exe and required licenses.
You
- will need to install the .NET
- 6.0 Runtime.
-packages.self.title: ??? (Self-Contained)
-packages.self.1: Larger builds that contain the exe and the .NET
- 6.0 Runtime as well as the required licenses.
+
+packages.title: Packages
+packages.single.title: Builds légers
+packages.single.1: Versions allégées contenant uniquement l'exécutable et les licences requises.
+ Vous devrez installer le Runtime .NET 6.0.
+packages.self.title: Builds autonomes
+packages.self.1: Versions plus volumineuses contenant l'exécutable, le Runtime .NET 6.0 et les licences requises.
packages.msi.title: Installateurs MSI
-packages.msi.1: Windows installers that contain the relevant "Self-Contained" build
- with an option to automatically update existing installations and add the program
- to the %PATH%.
The install location is %ProgramFiles%\NibblePoker\lscom\
- and cannot be changed. (This will be possible in future releases)
+packages.msi.1: Installateurs Windows contenant la version "Autonome" avec une option de mise à jour automatique des
+ installations existantes et d'ajout du programme au %PATH%.
+ Le chemin d'installation est %ProgramFiles%\NibblePoker\lscom\ et ne peut pas être modifié. (Cela sera possible dans les futures versions)
+
links.title: Liens
+
screenshots.title: Captures d'écran
diff --git a/templates/projects/docker-mini-cctv-nvr.jinja b/templates/projects/docker-mini-cctv-nvr.jinja
index f8c9b8f..04ed1ce 100644
--- a/templates/projects/docker-mini-cctv-nvr.jinja
+++ b/templates/projects/docker-mini-cctv-nvr.jinja
@@ -128,4 +128,10 @@
{{ render_h2(l10n("license.title", project_id, user_lang)) }}
{{ render_paragraph(l10n("license.1", project_id, user_lang)) }}
+
+ {{ render_h2(l10n("links.title", project_id, user_lang)) }}
+ {{ render_list_ul([
+ "" +
+ l10n("github", "commons", user_lang) + "",
+ ]) }}
{% endblock %}