diff --git a/scripts/convertHtml.py b/scripts/convertHtml.py
index ec16b5f34..ea8ef0da6 100644
--- a/scripts/convertHtml.py
+++ b/scripts/convertHtml.py
@@ -232,6 +232,8 @@ def main():
lang = "en"
if env['PIOENV'][-3:] == "-de":
lang = "de"
+ if env['PIOENV'][-3:] == "-fr":
+ lang = "fr"
# go throw the array
diff --git a/src/platformio.ini b/src/platformio.ini
index e9e634652..62507b0b2 100644
--- a/src/platformio.ini
+++ b/src/platformio.ini
@@ -67,6 +67,20 @@ build_flags = ${env.build_flags}
monitor_filters =
esp8266_exception_decoder
+[env:esp8266-fr]
+platform = espressif8266
+board = esp12e
+board_build.f_cpu = 80000000L
+build_flags = ${env.build_flags}
+ -DEMC_MIN_FREE_MEMORY=4096
+ -DLANG_FR
+ -DENABLE_MQTT
+ -DPLUGIN_DISPLAY
+ -DENABLE_HISTORY
+ ;-Wl,-Map,output.map
+monitor_filters =
+ esp8266_exception_decoder
+
[env:esp8266-prometheus]
platform = espressif8266
board = esp12e
@@ -104,8 +118,6 @@ build_flags = ${env.build_flags}
monitor_filters =
esp8266_exception_decoder
-
-
[env:esp8285]
platform = espressif8266
board = esp8285
@@ -164,6 +176,18 @@ build_flags = ${env.build_flags}
monitor_filters =
esp32_exception_decoder
+[env:esp32-wroom32-fr]
+platform = espressif32@6.5.0
+board = lolin_d32
+build_flags = ${env.build_flags}
+ -DUSE_HSPI_FOR_EPD
+ -DENABLE_MQTT
+ -DPLUGIN_DISPLAY
+ -DENABLE_HISTORY
+ -DLANG_FR
+monitor_filters =
+ esp32_exception_decoder
+
[env:esp32-wroom32-prometheus]
platform = espressif32@6.5.0
board = lolin_d32
diff --git a/src/plugins/Display/Display.h b/src/plugins/Display/Display.h
index b2c88b058..e263d6671 100644
--- a/src/plugins/Display/Display.h
+++ b/src/plugins/Display/Display.h
@@ -9,6 +9,7 @@
#include "../../hm/hmSystem.h"
#include "../../hm/hmRadio.h"
#include "../../utils/helper.h"
+#include "../plugin_lang.h"
#include "Display_Mono.h"
#include "Display_Mono_128X32.h"
#include "Display_Mono_128X64.h"
diff --git a/src/plugins/Display/Display_Mono_128X64.h b/src/plugins/Display/Display_Mono_128X64.h
index c63f0b220..c93c5c1a2 100644
--- a/src/plugins/Display/Display_Mono_128X64.h
+++ b/src/plugins/Display/Display_Mono_128X64.h
@@ -93,7 +93,7 @@ class DisplayMono128X64 : public DisplayMono {
// print Date and time
if (0 != mDisplayData->utcTs)
- printText(ah::getDateTimeStrShort(mDisplayData->utcTs).c_str(), l_Time, 0xff);
+ printText(ah::getDateTimeStrShort_i18n(mDisplayData->utcTs).c_str(), l_Time, 0xff);
if (showLine(l_Status)) {
// alternatively:
@@ -108,7 +108,7 @@ class DisplayMono128X64 : public DisplayMono {
int8_t moon_pos = -1;
setLineFont(l_Status);
if (0 == mDisplayData->nrSleeping + mDisplayData->nrProducing)
- snprintf(mFmtText, DISP_FMT_TEXT_LEN, "no inverter");
+ snprintf(mFmtText, DISP_FMT_TEXT_LEN, STR_NO_INVERTER);
else if (0 == mDisplayData->nrSleeping) {
snprintf(mFmtText, DISP_FMT_TEXT_LEN, " ");
sun_pos = 0;
@@ -145,7 +145,7 @@ class DisplayMono128X64 : public DisplayMono {
printText(mFmtText, l_TotalPower, 0xff);
} else {
- printText("offline", l_TotalPower, 0xff);
+ printText(STR_OFFLINE, l_TotalPower, 0xff);
}
}
diff --git a/src/plugins/Display/Display_Mono_84X48.h b/src/plugins/Display/Display_Mono_84X48.h
index b5daacd56..6c7d11247 100644
--- a/src/plugins/Display/Display_Mono_84X48.h
+++ b/src/plugins/Display/Display_Mono_84X48.h
@@ -78,7 +78,7 @@ class DisplayMono84X48 : public DisplayMono {
// print Date and time
if (0 != mDisplayData->utcTs)
- printText(ah::getDateTimeStrShort(mDisplayData->utcTs).c_str(), l_Time, 0xff);
+ printText(ah::getDateTimeStrShort_i18n(mDisplayData->utcTs).c_str(), l_Time, 0xff);
if (showLine(l_Status)) {
// alternatively:
@@ -90,7 +90,7 @@ class DisplayMono84X48 : public DisplayMono {
// print status of inverters
else {
if (0 == mDisplayData->nrSleeping + mDisplayData->nrProducing)
- snprintf(mFmtText, DISP_FMT_TEXT_LEN, "no inverter");
+ snprintf(mFmtText, DISP_FMT_TEXT_LEN, STR_NO_INVERTER);
else if (0 == mDisplayData->nrSleeping)
snprintf(mFmtText, DISP_FMT_TEXT_LEN, "\x86"); // sun symbol
else if (0 == mDisplayData->nrProducing)
@@ -111,7 +111,7 @@ class DisplayMono84X48 : public DisplayMono {
printText(mFmtText, l_TotalPower, 0xff);
} else {
- printText("offline", l_TotalPower, 0xff);
+ printText(STR_OFFLINE, l_TotalPower, 0xff);
}
}
diff --git a/src/plugins/plugin_lang.h b/src/plugins/plugin_lang.h
new file mode 100644
index 000000000..30bea5439
--- /dev/null
+++ b/src/plugins/plugin_lang.h
@@ -0,0 +1,26 @@
+//-----------------------------------------------------------------------------
+// 2024 Ahoy, https://ahoydtu.de
+// Creative Commons - http://creativecommons.org/licenses/by-nc-sa/4.0/deed
+//-----------------------------------------------------------------------------
+
+#ifndef __PLUGIN_LANG_H__
+#define __PLUGIN_LANG_H__
+
+#ifdef LANG_DE
+ #define STR_MONTHNAME_3_CHAR_LIST "ErrJanFebMrzAprMaiJunJulAugSepOktNovDez"
+ #define STR_DAYNAME_3_CHAR_LIST "ErrSonMonDieMitDonFreSam"
+ #define STR_OFFLINE "aus"
+ #define STR_NO_INVERTER "kein inverter"
+#elif LANG_FR
+ #define STR_MONTHNAME_3_CHAR_LIST "ErrJanFevMarAvrMaiJunJulAouSepOctNovDec"
+ #define STR_DAYNAME_3_CHAR_LIST "ErrDimLunMarMerJeuVenSam"
+ #define STR_OFFLINE "eteint"
+ #define STR_NO_INVERTER "pas d'onduleur"
+#else
+ #define STR_MONTHNAME_3_CHAR_LIST "ErrJanFebMarAprMayJunJulAugSepOctNovDec"
+ #define STR_DAYNAME_3_CHAR_LIST "ErrSunMonTueWedThuFriSat"
+ #define STR_OFFLINE "offline"
+ #define STR_NO_INVERTER "no inverter"
+#endif
+
+#endif /*__PLUGIN_LANG_H__*/
\ No newline at end of file
diff --git a/src/utils/helper.cpp b/src/utils/helper.cpp
index 24a4d9ee2..d5612e56d 100644
--- a/src/utils/helper.cpp
+++ b/src/utils/helper.cpp
@@ -5,6 +5,7 @@
#include "helper.h"
#include "dbg.h"
+#include "../plugins/plugin_lang.h"
namespace ah {
void ip2Arr(uint8_t ip[], const char *ipStr) {
@@ -82,6 +83,37 @@ namespace ah {
return String(str);
}
+ #define dt_SHORT_STR_LEN_i18n 3 // the length of short strings
+ static char buffer[dt_SHORT_STR_LEN_i18n + 1]; // must be big enough for longest string and the terminating null
+ const char monthShortNames_P[] PROGMEM = STR_MONTHNAME_3_CHAR_LIST;
+ const char dayShortNames_P[] PROGMEM = STR_DAYNAME_3_CHAR_LIST;
+ char* monthShortStr_i18n(uint8_t month)
+ {
+ for (int i=0; i < dt_SHORT_STR_LEN_i18n; i++)
+ buffer[i] = pgm_read_byte(&(monthShortNames_P[i + month * dt_SHORT_STR_LEN_i18n]));
+ buffer[dt_SHORT_STR_LEN_i18n] = 0;
+ return buffer;
+ }
+
+ char* dayShortStr_i18n(uint8_t day)
+ {
+ for (int i=0; i < dt_SHORT_STR_LEN_i18n; i++)
+ buffer[i] = pgm_read_byte(&(dayShortNames_P[i + day * dt_SHORT_STR_LEN_i18n]));
+ buffer[dt_SHORT_STR_LEN_i18n] = 0;
+ return buffer;
+ }
+
+ String getDateTimeStrShort_i18n(time_t t) {
+ char str[20];
+ if(0 == t)
+ sprintf(str, "n/a");
+ else {
+ sprintf(str, "%3s ", dayShortStr_i18n(dayOfWeek(t)));
+ sprintf(str+4, "%2d.%3s %02d:%02d", day(t), monthShortStr_i18n(month(t)), hour(t), minute(t));
+ }
+ return String(str);
+ }
+
uint64_t Serial2u64(const char *val) {
char tmp[3];
uint64_t ret = 0ULL;
diff --git a/src/utils/helper.h b/src/utils/helper.h
index 1dbba3d91..80a63f412 100644
--- a/src/utils/helper.h
+++ b/src/utils/helper.h
@@ -42,6 +42,7 @@ namespace ah {
double round3(double value);
String getDateTimeStr(time_t t);
String getDateTimeStrShort(time_t t);
+ String getDateTimeStrShort_i18n(time_t t);
String getDateTimeStrFile(time_t t);
String getTimeStr(time_t t);
String getTimeStrMs(uint64_t t);
diff --git a/src/web/lang.h b/src/web/lang.h
index fb5506ee6..2afde61f2 100644
--- a/src/web/lang.h
+++ b/src/web/lang.h
@@ -8,68 +8,91 @@
#ifdef LANG_DE
#define REBOOT_ESP_APPLY_CHANGES "starte AhoyDTU neu, um die Änderungen zu speichern"
-#else /*LANG_EN*/
+#elif LANG_FR
+ #define REBOOT_ESP_APPLY_CHANGES "redémarrer AhoyDTU pour appliquer tous vos changements de configuration"
+#else
#define REBOOT_ESP_APPLY_CHANGES "reboot AhoyDTU to apply all your configuration changes"
#endif
#ifdef LANG_DE
#define TIME_NOT_SET "keine gültige Zeit, daher keine Kommunikation zum Wechselrichter möglich"
-#else /*LANG_EN*/
+#elif LANG_FR
+ #define TIME_NOT_SET "heure non définie. Aucune communication avec l'onduleur possible"
+#else
#define TIME_NOT_SET "time not set. No communication to inverter possible"
#endif
#ifdef LANG_DE
#define WAS_IN_CH_12_TO_14 "Der ESP war in WLAN Kanal 12 bis 14, was uU. zu Abstürzen führt"
-#else /*LANG_EN*/
+#elif LANG_FR
+ #define WAS_IN_CH_12_TO_14 "Votre ESP était sur les canaux wifi 12 à 14. Cela peut entraîner des redémarrages de votre AhoyDTU"
+#else
#define WAS_IN_CH_12_TO_14 "Your ESP was in wifi channel 12 to 14. It may cause reboots of your AhoyDTU"
#endif
#ifdef LANG_DE
#define PATH_NOT_FOUND "Pfad nicht gefunden: "
-#else /*LANG_EN*/
+#elif LANG_FR
+ #define PATH_NOT_FOUND "Chemin introuvable : "
+#else
#define PATH_NOT_FOUND "Path not found: "
#endif
#ifdef LANG_DE
#define INCOMPLETE_INPUT "Unvollständige Eingabe"
-#else /*LANG_EN*/
+#elif LANG_FR
+ #define INCOMPLETE_INPUT "Saisie incomplète"
+#else
#define INCOMPLETE_INPUT "Incomplete input"
#endif
#ifdef LANG_DE
#define INVALID_INPUT "Ungültige Eingabe"
-#else /*LANG_EN*/
+#elif LANG_FR
+ #define INVALID_INPUT "Saisie invalide"
+#else
#define INVALID_INPUT "Invalid input"
#endif
#ifdef LANG_DE
#define NOT_ENOUGH_MEM "nicht genügend Speicher"
-#else /*LANG_EN*/
+#elif LANG_FR
+ #define NOT_ENOUGH_MEM "Mémoire insuffisante"
+#else
#define NOT_ENOUGH_MEM "Not enough memory"
#endif
#ifdef LANG_DE
#define DESER_FAILED "Deserialisierung fehlgeschlagen"
-#else /*LANG_EN*/
+#elif LANG_FR
+ #define DESER_FAILED "Échec de la désérialisation"
+#else
#define DESER_FAILED "Deserialization failed"
#endif
#ifdef LANG_DE
#define INV_NOT_FOUND "Wechselrichter nicht gefunden!"
-#else /*LANG_EN*/
+#elif LANG_FR
+ #define INV_NOT_FOUND "onduleur non trouvé !"
+#else
#define INV_NOT_FOUND "inverter not found!"
#endif
#ifdef LANG_DE
#define FACTORY_RESET "Ahoy auf Werkseinstellungen zurücksetzen"
-#else /*LANG_EN*/
+#elif LANG_FR
+ #define FACTORY_RESET "Réinitialisation d'usine d'Ahoy"
+#else
#define FACTORY_RESET "Ahoy Factory Reset"
#endif
#ifdef LANG_DE
#define BTN_REBOOT "Ahoy neustarten"
-#else /*LANG_EN*/
+#elif LANG_FR
+ #define BTN_REBOOT "Redémarrer"
+#else
#define BTN_REBOOT "Reboot"
#endif
#endif /*__LANG_H__*/
+
diff --git a/src/web/lang.json b/src/web/lang.json
index 67b08b75b..c56910152 100644
--- a/src/web/lang.json
+++ b/src/web/lang.json
@@ -6,42 +6,50 @@
{
"token": "NAV_WIZARD",
"en": "Setup Wizard",
- "de": "Daten"
+ "de": "Daten",
+ "fr": "Assistant de configuration"
},
{
"token": "NAV_LIVE",
"en": "Live",
- "de": "Daten"
+ "de": "Daten",
+ "fr": "En direct"
},
{
"token": "NAV_HISTORY",
"en": "History",
- "de": "Verlauf"
+ "de": "Verlauf",
+ "fr": "Historique"
},
{
"token": "NAV_WEBSERIAL",
"en": "Webserial",
- "de": "Web Konsole"
+ "de": "Web Konsole",
+ "fr": "Web Série"
},
{
"token": "NAV_SETTINGS",
"en": "Settings",
- "de": "Einstellungen"
+ "de": "Einstellungen",
+ "fr": "Paramètres"
},
{
"token": "NAV_DOCUMENTATION",
"en": "Documentation",
- "de": "Dokumentation"
+ "de": "Dokumentation",
+ "fr": "Documentation"
},
{
"token": "NAV_SAVE",
"en": "save",
- "de": "speichern"
+ "de": "speichern",
+ "fr": "Enregistrer"
},
{
"token": "NAV_ABOUT",
"en": "About",
- "de": "Über"
+ "de": "Über",
+ "fr": "à propos"
}
]
},
@@ -51,67 +59,80 @@
{
"token": "WELCOME",
"en": "Welcome to AhoyDTU",
- "de": "Willkommen bei AhoyDTU"
+ "de": "Willkommen bei AhoyDTU",
+ "fr": "Bienvenue sur AhoyDTU"
},
{
"token": "NETWORK_SETUP",
"en": "Network Setup",
- "de": "Netzwerkeinstellung"
+ "de": "Netzwerkeinstellung",
+ "fr": "Configuration du réseau"
},
{
"token": "CHOOSE_WIFI",
"en": "Choose your WiFi Network",
- "de": "Wähle dein WiFi Netzwerk aus"
+ "de": "Wähle dein WiFi Netzwerk aus",
+ "fr": "Choisissez votre réseau WiFi"
},
{
"token": "WIFI_MANUAL",
"en": "... or name it manually",
- "de": "... oder nenne es hier"
+ "de": "... oder nenne es hier",
+ "fr": "... ou nommez-le manuellement"
},
{
"token": "WIFI_PASSWORD",
"en": "WiFi Password",
- "de": "WiFi Passwort"
+ "de": "WiFi Passwort",
+ "fr": "Mot de passe WiFi"
},
{
"token": "STOP_WIZARD",
"en": "stop wizard",
- "de": "Einrichtung beenden"
+ "de": "Einrichtung beenden",
+ "fr": "Arrêter l'assistant"
},
{
"token": "BTN_NEXT",
"en": "next >>",
- "de": "prüfen >>"
+ "de": "prüfen >>",
+ "fr": "suivant >>"
},
{
"token": "TEST_CONNECTION",
"en": "Test Connection",
- "de": "Verbindung wird überprüft"
+ "de": "Verbindung wird überprüft",
+ "fr": "Tester la connexion"
},
{
"token": "TRY_TO_CONNECT",
"en": "AhoyDTU is trying to connect to your WiFi",
- "de": "AhoyDTU versucht eine Verindung mit deinem Netzwerk herzustellen"
+ "de": "AhoyDTU versucht eine Verindung mit deinem Netzwerk herzustellen",
+ "fr": "AhoyDTU essaie de se connecter à votre WiFi"
},
{
"token": "CONNECTING",
"en": "connecting ...",
- "de": "verbinde ..."
+ "de": "verbinde ...",
+ "fr": "connexion en cours ..."
},
{
"token": "NETWORK_SUCCESS",
"en": "success, got following IP in your network: ",
- "de": "Verindung erfolgreich. AhoyDTU hat die folgende IP bekommen: "
+ "de": "Verbindung erfolgreich. AhoyDTU hat die folgende IP bekommen: ",
+ "fr": "succès, voici l'adresse IP obtenue dans votre réseau : "
},
{
"token": "BTN_FINISH",
"en": "Finish >>",
- "de": "Fertig >>"
+ "de": "Fertig >>",
+ "fr": "Terminer >>"
},
{
"token": "NUM_NETWORKS_FOUND",
"en": "Network(s) found",
- "de": "Netzwerk(e) gefunden"
+ "de": "Netzwerk(e) gefunden",
+ "fr": "Réseau(x) trouvé(s)"
}
]
},
@@ -121,652 +142,782 @@
{
"token": "SETTINGS",
"en": "Settings",
- "de": "Einstellungen"
+ "de": "Einstellungen",
+ "fr": "Paramètres"
},
{
"token": "SYSTEM_CONFIG",
"en": "System Config",
- "de": "Systemkonfiguration"
+ "de": "Systemkonfiguration",
+ "fr": "Configuration du système"
},
{
"token": "DEVICE_NAME",
"en": "Device Host Name",
- "de": "Name der DTU"
+ "de": "Name der DTU",
+ "fr": "Nom de l'hôte du périphérique"
},
{
"token": "REBOOT_AT_MIDNIGHT",
"en": "Reboot Ahoy at midnight",
- "de": "mitternachts neu starten"
+ "de": "mitternachts neu starten",
+ "fr": "Redémarrage Ahoy à minuit"
},
{
"token": "DARK_MODE",
"en": "Dark Mode",
- "de": "dunkler Modus"
+ "de": "dunkler Modus",
+ "fr": "Mode Sombre"
},
{
"token": "DARK_MODE_NOTE",
"en": "(empty browser cache or use CTRL + F5 after reboot to apply this setting)",
- "de": "(der Browser-Cache muss geleert oder STRG + F5 gedrückt werden, um diese Einstellung zu aktivieren)"
+ "de": "(der Browser-Cache muss geleert oder STRG + F5 gedrückt werden, um diese Einstellung zu aktivieren)",
+ "fr": "(vider le cache du navigateur ou utiliser CTRL + F5 après le redémarrage pour appliquer ce paramètre)"
},
{
"token": "REGION",
"en": "Region",
- "de": "Region"
+ "de": "Region",
+ "fr": "Région"
},
{
"token": "TIMEZONE",
"en": "Timezone",
- "de": "Zeitzone"
+ "de": "Zeitzone",
+ "fr": "Fuseau horaire"
},
{
"token": "CUSTOM_LINK",
"en": "Custom link (leave empty to hide element in navigation)",
- "de": "benutzerspezifischer Link (leer lassen, um Element in Navigation auszublenden)"
+ "de": "benutzerspezifischer Link (leer lassen, um Element in Navigation auszublenden)",
+ "fr": "Lien personnalisé (laissez vide pour masquer l'élément dans la navigation)"
},
{
"token": "CUSTOM_LINK_TEXT",
"en": "Custom link Text",
- "de": "Beschriftung des Links"
+ "de": "Beschriftung des Links",
+ "fr": "Texte du lien personnalisé"
},
{
"token": "PINOUT_CONFIG",
"en": "Pinout Configuration",
- "de": "Anschlusseinstellungen"
+ "de": "Anschlusseinstellungen",
+ "fr": "Configuration des broches"
},
{
"token": "RADIO",
"en": "Radio",
- "de": "Funkmodul"
+ "de": "Funkmodul",
+ "fr": "Radio"
},
{
"token": "SERIAL_CONSOLE",
"en": "Serial console",
- "de": "Serielle Konsole"
+ "de": "Serielle Konsole",
+ "fr": "Console Série"
},
{
"token": "LOG_PRINT_INVERTER_DATA",
"en": "print inverter data",
- "de": "Livedaten ausgeben"
+ "de": "Livedaten ausgeben",
+ "fr": "Afficher les données de l'onduleur"
},
{
"token": "LOG_SERIAL_DEBUG",
"en": "Serial Debug",
- "de": "Entwicklerinformationen ausgeben"
+ "de": "Entwicklerinformationen ausgeben",
+ "fr": "Débogage Série"
},
{
"token": "LOG_PRIVACY_MODE",
"en": "Privacy Mode",
- "de": "Privatsphärenmodus"
+ "de": "Privatsphärenmodus",
+ "fr": "Mode de Confidentialité"
},
{
"token": "LOG_PRINT_TRACES",
"en": "Print whole traces in Log",
- "de": "alle Informationen in Log schreiben"
+ "de": "alle Informationen in Log schreiben",
+ "fr": "Imprimer toutes les traces dans le journal"
},
{
"token": "LOG_TO_MQTT",
"en": "Send Serial debug over MqTT",
- "de": "sende serielles Log über MqTT"
+ "de": "sende serielles Log über MqTT",
+ "fr": "Envoyer le débogage série sur MqTT"
},
{
"token": "NETWORK",
"en": "Network",
- "de": "Netzwerk"
+ "de": "Netzwerk",
+ "fr": "Réseau"
},
{
"token": "AP_PWD",
"en": "AP Password (min. length: 8)",
- "de": "AP Passwort (min. Länge: 8 Zeichen)"
+ "de": "AP Passwort (min. Länge: 8 Zeichen)",
+ "fr": "Mot de passe AP (longueur minimale : 8)"
},
{
"token": "SEARCH_NETWORKS",
"en": "Search Networks",
- "de": "Netzwerke suchen"
+ "de": "Netzwerke suchen",
+ "fr": "Rechercher des réseaux"
},
{
"token": "BTN_SCAN",
"en": "scan",
- "de": "Suche starten"
+ "de": "Suche starten",
+ "fr": "balayer"
},
{
"token": "AVAIL_NETWORKS",
"en": "Avail Networks",
- "de": "Verfügbare Netzwerke"
+ "de": "Verfügbare Netzwerke",
+ "fr": "Réseaux disponibles"
},
{
"token": "NETWORK_NOT_SCANNED",
"en": "not scanned",
- "de": "nicht gesucht"
+ "de": "nicht gesucht",
+ "fr": "non scanné"
},
{
"token": "SSID_HIDDEN",
"en": "SSID is hidden",
- "de": "SSID ist versteckt"
+ "de": "SSID ist versteckt",
+ "fr": "SSID est cachée"
},
{
"token": "PASSWORD",
"en": "Password",
- "de": "Passwort"
+ "de": "Passwort",
+ "fr": "Mot de passe"
},
{
"token": "STATIC_IP",
"en": "Static IP (optional)",
- "de": "Statische IP (optional)"
+ "de": "Statische IP (optional)",
+ "fr": "IP statique (optionnel)"
},
{
"token": "NETWORK_HINT_BLANK",
"en": "Leave fields blank for DHCP
The following fields are parsed in this format: 192.168.4.1",
- "de": "Felder leer lassen um in den DHCP Modus zu wechseln.
Das Format der IP Adressen ist: 192.168.4.1"
+ "de": "Felder leer lassen um in den DHCP Modus zu wechseln.
Das Format der IP Adressen ist: 192.168.4.1",
+ "fr": "Laissez les champs vides pour le DHCP
Les champs suivants sont analysés dans ce format : 192.168.4.1"
},
{
"token": "IP_ADDRESS",
"en": "IP Address",
- "de": "IP Adresse"
+ "de": "IP Adresse",
+ "fr": "Adresse IP"
},
{
"token": "SUBMASK",
"en": "Submask",
- "de": "Subnetzmaske"
+ "de": "Subnetzmaske",
+ "fr": "Masque de sous-réseau"
},
{
"token": "PROTECTION",
"en": "Protection",
- "de": "Zugriffsschutz"
+ "de": "Zugriffsschutz",
+ "fr": "Protection"
},
{
"token": "ADMIN_PASSWORD",
"en": "Admin Password",
- "de": "Administratorpasswort"
+ "de": "Administratorpasswort",
+ "fr": "Mot de passe administrateur"
},
{
"token": "PROTECTION_NOTE",
"en": "Select pages which should be protected by password",
- "de": "Auswählen, welche Bereiche passwortgeschützt werden sollen"
+ "de": "Auswählen, welche Bereiche passwortgeschützt werden sollen",
+ "fr": "Sélectionnez les pages qui doivent être protégées par mot de passe"
},
{
"token": "INVERTER",
"en": "Inverter",
- "de": "Wechselrichter"
+ "de": "Wechselrichter",
+ "fr": "Onduleur"
},
{
"token": "INTERVAL",
"en": "Interval",
- "de": "Intervall"
+ "de": "Intervall",
+ "fr": "Intervalle"
},
{
"token": "INV_RESET_MIDNIGHT",
"en": "Reset values and YieldDay at midnight",
- "de": "Werte und Gesamtertrag um Mitternacht zurücksetzen"
+ "de": "Werte und Gesamtertrag um Mitternacht zurücksetzen",
+ "fr": "Réinitialiser les valeurs et le rendement quotidien à minuit"
},
{
"token": "INV_PAUSE_SUNSET",
"en": "Reset values at sunset",
- "de": "Werte bei Sonnenuntergang zurücksetzen"
+ "de": "Werte bei Sonnenuntergang zurücksetzen",
+ "fr": "Réinitialiser les valeurs au coucher du soleil"
},
{
"token": "INV_RESET_NOT_AVAIL",
"en": "Reset values when inverter status is 'not available'",
- "de": "Werte zurücksetzen, sobald der Wechselrichter nicht erreichbar ist"
+ "de": "Werte zurücksetzen, sobald der Wechselrichter nicht erreichbar ist",
+ "fr": "Réinitialiser les valeurs lorsque l'état de l'onduleur est 'non disponible'"
},
{
"token": "INV_RESET_MAX_MIDNIGHT",
"en": "Reset 'max' values at midnight",
- "de": "Maximalwerte mitternachts zurücksetzen"
+ "de": "Maximalwerte mitternachts zurücksetzen",
+ "fr": "Réinitialiser les valeurs 'max' à minuit"
},
{
"token": "INV_START_WITHOUT_TIME",
"en": "Start without time sync (useful in AP-Only-Mode)",
- "de": "Kommunikation starten ohne gültige Zeit (sinnvoll im AP Modus)"
+ "de": "Kommunikation starten ohne gültige Zeit (sinnvoll im AP Modus)",
+ "fr": "Démarrer sans synchronisation de l'heure (utile en mode AP uniquement)"
},
{
"token": "INV_READ_GRID_PROFILE",
"en": "Read Grid Profile",
- "de": "Grid-Profil auslesen"
+ "de": "Grid-Profil auslesen",
+ "fr": "Lire le profil du réseau"
},
{
"token": "NTP_INTERVAL",
"en": "NTP Interval (in minutes, min. 5 minutes)",
- "de": "NTP Intervall (in Minuten, min. 5 Minuten)"
+ "de": "NTP Intervall (in Minuten, min. 5 Minuten)",
+ "fr": "Intervalle NTP (en minutes, min. 5 minutes)"
},
{
"token": "NTP_SET_SYS_TIME",
"en": "set system time",
- "de": "Systemzeit setzen"
+ "de": "Systemzeit setzen",
+ "fr": "régler l'heure du système"
},
{
"token": "BTN_FROM_BROWSER",
"en": "from browser",
- "de": "vom Browser übernehmen"
+ "de": "vom Browser übernehmen",
+ "fr": "du navigateur"
},
{
"token": "BTN_SYNC_NTP",
"en": "sync NTP",
- "de": "NTP synchronisieren"
+ "de": "NTP synchronisieren",
+ "fr": "synchroniser NTP"
},
{
"token": "NTP_SYS_TIME",
"en": "System Time",
- "de": "Systemzeit"
+ "de": "Systemzeit",
+ "fr": "Heure système"
},
{
"token": "SUNRISE_SUNSET",
"en": "Sunrise & Sunset",
- "de": "Sonnenaufgang & -untergang"
+ "de": "Sonnenaufgang & -untergang",
+ "fr": "Lever & Coucher du soleil"
},
{
"token": "LATITUDE",
"en": "Latitude (decimal)",
- "de": "Breitengrad (dezimal)"
+ "de": "Breitengrad (dezimal)",
+ "fr": "Latitude (décimale)"
},
{
"token": "LONGITUDE",
"en": "Longitude (decimal)",
- "de": "Längengrad (dezimal)"
+ "de": "Längengrad (dezimal)",
+ "fr": "Longitude (décimale)"
},
{
"token": "OFFSET_SUNRISE",
"en": "Offset (sunrise)",
- "de": "Zeitversatz (Sonnenaufgang)"
+ "de": "Zeitversatz (Sonnenaufgang)",
+ "fr": "Décalage (lever du soleil)"
},
{
"token": "OFFSET_SUNSET",
"en": "Offset (sunset)",
- "de": "Zeitversatz (Sonnenuntergang)"
+ "de": "Zeitversatz (Sonnenuntergang)",
+ "fr": "Décalage (coucher du soleil)"
},
{
"token": "MQTT_USER",
"en": "Username (optional)",
- "de": "Benutzername (optional)"
+ "de": "Benutzername (optional)",
+ "fr": "Nom d'utilisateur (optionnel)"
},
{
"token": "MQTT_PASSWORD",
"en": "Password (optional)",
- "de": "Passwort (optional)"
+ "de": "Passwort (optional)",
+ "fr": "Mot de passe (optionnel)"
},
{
"token": "MQTT_NOTE",
"en": "Send Inverter data in a fixed interval, even if there is no change. A value of '0' disables the fixed interval. The data is published once it was successfully received from inverter. (default: 0)",
- "de": "Wechselrichterdaten in fixem Intervall schicken, auch wenn es keine Änderung gab. Ein Wert von '0' deaktiviert das fixe Intervall, die Wechselrichterdaten werden übertragen, sobald neue zur Verfügung stehen. (Standard: 0)"
+ "de": "Wechselrichterdaten in fixem Intervall schicken, auch wenn es keine Änderung gab. Ein Wert von '0' deaktiviert das fixe Intervall, die Wechselrichterdaten werden übertragen, sobald neue zur Verfügung stehen. (Standard: 0)",
+ "fr": "Envoyer les données de l'onduleur à intervalles réguliers, même s'il n'y a pas de changement. Une valeur de '0' désactive l'intervalle fixe. Les données sont publiées une fois qu'elles ont été reçues avec succès de l'onduleur. (par défaut : 0)"
},
{
"token": "DISPLAY_CONFIG",
"en": "Display Config",
- "de": "Display Konfiguration"
+ "de": "Display Konfiguration",
+ "fr": "Configuration de l'affichage"
},
{
"token": "DISP_OFF_INV",
"en": "Turn off while inverters are offline",
- "de": "Schalte das Display aus, während die Wechselrichter aus sind"
+ "de": "Schalte das Display aus, während die Wechselrichter aus sind",
+ "fr": "éteindre lorsque les onduleurs sont hors ligne"
},
{
"token": "DISP_LUMINANCE",
"en": "Luminance",
- "de": "Helligkeit"
+ "de": "Helligkeit",
+ "fr": "Luminosité"
},
{
"token": "DISP_PINOUT",
"en": "Pinout",
- "de": "Anschlusseinstellungen"
+ "de": "Anschlusseinstellungen",
+ "fr": "Brochage"
},
{
"token": "GRAPH_OPTIONS",
"en": "Graph options",
- "de": "Graph Einstellungen"
+ "de": "Graph Einstellungen",
+ "fr": "Options du graphique"
},
{
"token": "GRAPH_SHOW_RATIO",
"en": "Graph show ratio (0-100%)",
- "de": "Graph Anzeigeverhältnis (0-100%)"
+ "de": "Graph Anzeigeverhältnis (0-100%)",
+ "fr": "Ratio d'affichage du graphique (0-100%)"
},
{
"token": "GRAPH_POSITION",
"en": "Graph pos (from/to)",
- "de": "Graph Position (von/bis)"
+ "de": "Graph Position (von/bis)",
+ "fr": "Position du graphique (de/à)"
},
{
"token": "GRAPH_LINES_1_2",
"en": "Line 1-2",
- "de": "Zeile 1-2"
+ "de": "Zeile 1-2",
+ "fr": "Ligne 1-2"
},
{
"token": "GRAPH_LINES_2_3",
"en": "Line 2-3",
- "de": "Zeile 2-3"
+ "de": "Zeile 2-3",
+ "fr": "Ligne 2-3"
},
{
"token": "GRAPH_LINES_1_3",
"en": "Line 1-3",
- "de": "Zeile 1-3"
+ "de": "Zeile 1-3",
+ "fr": "Ligne 1-3"
},
{
"token": "GRAPH_LINES_2_4",
"en": "Line 2-4",
- "de": "Zeile 2-4"
+ "de": "Zeile 2-4",
+ "fr": "Ligne 2-4"
},
{
"token": "GRAPH_LINES_1_4",
"en": "Line 1-4",
- "de": "Zeile 1-4"
+ "de": "Zeile 1-4",
+ "fr": "Ligne 1-4"
},
{
"token": "BTN_SAVE",
"en": "save",
- "de": "speichern"
+ "de": "speichern",
+ "fr": "enregistrer"
},
{
"token": "BTN_SEND",
"en": "send",
- "de": "senden"
+ "de": "senden",
+ "fr": "envoyer"
},
{
"token": "BTN_REBOOT_SUCCESSFUL_SAVE",
"en": "Reboot device after successful save",
- "de": "Nach erfolgreichem Speichern AhoyDTU neu starten"
+ "de": "Nach erfolgreichem Speichern AhoyDTU neu starten",
+ "fr": "Redémarrer l'appareil après l'enregistrement réussi"
},
{
"token": "BTN_ERASE",
"en": "ERASE SETTINGS (not WiFi)",
- "de": "Einstellungen zurücksetzen (nicht WiFi)"
+ "de": "Einstellungen zurücksetzen (nicht WiFi)",
+ "fr": "EFFACER LES PARAMèTRES (pas de WiFi)"
},
{
"token": "IM_EXPORT",
"en": "Import / Export JSON Settings",
- "de": "Import / Export JSON Einstellungen"
+ "de": "Import / Export JSON Einstellungen",
+ "fr": "Importer / Exporter les paramètres JSON"
},
{
"token": "IMPORT",
"en": "Import",
- "de": "Import"
+ "de": "Import",
+ "fr": "Importer"
},
{
"token": "EXPORT",
"en": "Export",
- "de": "Export"
+ "de": "Export",
+ "fr": "Exporter"
},
{
"token": "BTN_EXPORT",
"en": "Export settings (JSON file)",
- "de": "Einstellungen exportieren (JSON Datei)"
+ "de": "Einstellungen exportieren (JSON Datei)",
+ "fr": "Exporter les paramètres (fichier JSON)"
},
{
"token": "EXPORT_NOTE",
"en": "(only values, passwords will be skipped!)",
- "de": "(nur Werte, Passwörter werden nicht mit exportiert!)"
+ "de": "(nur Werte, Passwörter werden nicht mit exportiert!)",
+ "fr": "(seuls les valeurs, les mots de passe seront ignorés !)"
},
{
"token": "PIN_OFF",
"en": "off / default",
- "de": "aus / Standard"
+ "de": "aus / Standard",
+ "fr": "éteint / par défaut"
},
{
"token": "PIN_NO_IRQ",
"en": "no IRQ!",
- "de": "kein Interrupt!"
+ "de": "kein Interrupt!",
+ "fr": "pas de IRQ !"
},
{
"token": "PIN_INPUT_ONLY",
"en": "in only",
- "de": "nur Eingang"
+ "de": "nur Eingang",
+ "fr": "entrée uniquement"
},
{
"token": "PIN_DONT_USE",
"en": "DONT USE",
- "de": "nicht benutzen"
+ "de": "nicht benutzen",
+ "fr": "NE PAS UTILISER"
},
{
"token": "PIN_NOT_AVAIL",
"en": "not available",
- "de": "nicht verfügbar"
+ "de": "nicht verfügbar",
+ "fr": "non disponible"
},
{
"token": "PIN_RECOMMENDED",
"en": "recommended",
- "de": "empfohlen"
+ "de": "empfohlen",
+ "fr": "recommandé"
},
{
"token": "PIN_EXPERIMENTAL",
"en": "experimental",
- "de": "experimentell"
+ "de": "experimentell",
+ "fr": "expérimental"
},
{
"token": "PIN_LOW_ACTIVE",
"en": "low active",
- "de": "low aktiv"
+ "de": "low aktiv",
+ "fr": "bas actif"
},
{
"token": "PIN_HIGH_ACTIVE",
"en": "high active",
- "de": "high aktiv"
+ "de": "high aktiv",
+ "fr": "haut actif"
},
{
"token": "NETWORK_SCANNING",
"en": "scanning ...",
- "de": "suche ..."
+ "de": "suche ...",
+ "fr": "analyse en cours ..."
},
{
"token": "ERROR",
"en": "Error:",
- "de": "Fehler:"
+ "de": "Fehler:",
+ "fr": "Erreur :"
},
{
"token": "NTP_COMMAND_EXE",
"en": "command executed, set new time ...",
- "de": "Befehl ausgeführt, setze neue Zeit ..."
+ "de": "Befehl ausgeführt, setze neue Zeit ...",
+ "fr": "commande exécutée, définir une nouvelle heure ..."
},
{
"token": "NTP_SYNCED_AT",
"en": "synced at",
- "de": "synchronisiert um"
+ "de": "synchronisiert um",
+ "fr": "synchronisé à"
},
{
"token": "NTP_DIFF",
"en": "difference",
- "de": "Unterschied"
+ "de": "Unterschied",
+ "fr": "différence"
},
{
"token": "MQTT_EXE",
"en": "command executed",
- "de": "Befehl ausgeführt"
+ "de": "Befehl ausgeführt",
+ "fr": "commande exécutée"
},
{
"token": "IMPORT_UPLOAD_STARTED",
"en": "upload started",
- "de": "Hochladen gestartet"
+ "de": "Hochladen gestartet",
+ "fr": "téléchargement démarré"
},
{
"token": "INV_EDIT",
"en": "Edit",
- "de": "Bearbeiten"
+ "de": "Bearbeiten",
+ "fr": "Modifier"
},
{
"token": "INV_DELETE",
"en": "Delete",
- "de": "Löschen"
+ "de": "Löschen",
+ "fr": "Supprimer"
},
{
"token": "ENABLED",
"en": "enabled",
- "de": "aktiviert"
+ "de": "aktiviert",
+ "fr": "activé"
},
{
"token": "DISABLED",
"en": "disabled",
- "de": "deaktiviert"
+ "de": "deaktiviert",
+ "fr": "désactivé"
},
{
"token": "BTN_INV_ADD",
"en": "add Inverter",
- "de": "Wechselrichter hinzufuegen"
+ "de": "Wechselrichter hinzufuegen",
+ "fr": "ajouter un onduleur"
},
{
"token": "INV_INPUT",
"en": "Input",
- "de": "Eingang"
+ "de": "Eingang",
+ "fr": "Entrée"
},
{
"token": "INV_MAX_MODULE_POWER",
"en": "Max Module Power",
- "de": "Maximale Panelleistung"
+ "de": "Maximale Panelleistung",
+ "fr": "Puissance maximale du module"
},
{
"token": "INV_YIELD_CORR",
"en": "Yield Correction",
- "de": "Ertragskorrektur"
+ "de": "Ertragskorrektur",
+ "fr": "Correction du rendement"
},
{
"token": "TAB_GENERAL",
"en": "General",
- "de": "Allgemein"
+ "de": "Allgemein",
+ "fr": "Général"
},
{
"token": "TAB_INPUTS",
"en": "Inputs",
- "de": "Eingaenge"
+ "de": "Eingaenge",
+ "fr": "Entrées"
},
{
"token": "TAB_RADIO",
"en": "Radio",
- "de": "Funkmodul"
+ "de": "Funkmodul",
+ "fr": "Radio"
},
{
"token": "TAB_ADVANCED",
"en": "Advanced",
- "de": "Erweitert"
+ "de": "Erweitert",
+ "fr": "Avancé"
},
{
"token": "INV_ENABLE",
"en": "Enabled",
- "de": "aktiviert"
+ "de": "aktiviert",
+ "fr": "activé"
},
{
"token": "INV_SERIAL",
"en": "Serial",
- "de": "Seriennummer"
+ "de": "Seriennummer",
+ "fr": "Série"
},
{
"token": "INV_FREQUENCY",
"en": "Frequency",
- "de": "Frequenz"
+ "de": "Frequenz",
+ "fr": "Fréquence"
},
{
"token": "INV_POWER_LEVEL",
"en": "Power Level",
- "de": "Sendeleistung"
+ "de": "Sendeleistung",
+ "fr": "Niveau de puissance"
},
{
"token": "INV_PAUSE_DURING_NIGHT",
"en": "Pause communication during night (lat. and lon. need to be set)",
- "de": "Kommunikation während der Nacht pausieren (Breiten- und Längengrad müssen gesetzt sein"
+ "de": "Kommunikation während der Nacht pausieren (Breiten- und Längengrad müssen gesetzt sein",
+ "fr": "Pause de communication pendant la nuit (lat. et lon. doivent être définis)"
},
{
"token": "BTN_SAVE",
"en": "save",
- "de": "speichern"
+ "de": "speichern",
+ "fr": "enregistrer"
},
{
"token": "INV_EDIT_MODAL",
"en": "Edit inverter",
- "de": "Wechselrichter editieren"
+ "de": "Wechselrichter editieren",
+ "fr": "Modifier l'onduleur"
},
{
"token": "INV_DELETE_SURE",
"en": "do you really want to delete inverter?",
- "de": "Willst du den Wechselrichter wirklich löschen?"
+ "de": "Willst du den Wechselrichter wirklich löschen?",
+ "fr": "voulez-vous vraiment supprimer l'onduleur ?"
},
{
"token": "BTN_YES",
"en": "yes",
- "de": "ja"
+ "de": "ja",
+ "fr": "oui"
},
{
"token": "INV_DELETE_MODAL",
"en": "Delete inverter",
- "de": "Wechselrichter löschen "
+ "de": "Wechselrichter löschen ",
+ "fr": "Supprimer l'onduleur"
},
{
"token": "NTP_MINUTES",
"en": "minutes",
- "de": "Minuten"
+ "de": "Minuten",
+ "fr": "minutes"
},
{
"token": "LED_AT_LEAST_ONE_PRODUCING",
"en": "At least one inverter is producing",
- "de": "mindestens ein Wechselrichter produziert"
+ "de": "mindestens ein Wechselrichter produziert",
+ "fr": "Au moins un onduleur produit"
},
{
"token": "LED_MQTT_CONNECTED",
"en": "MqTT connected",
- "de": "MqTT verbunden"
+ "de": "MqTT verbunden",
+ "fr": "MQTT connecté"
},
{
"token": "LED_NIGHT_TIME",
"en": "Night time",
- "de": "Nachtschaltung"
+ "de": "Nachtschaltung",
+ "fr": "Nuit"
},
{
"token": "LED_POLARITY",
"en": "LED polarity",
- "de": "LED Polarität"
+ "de": "LED Polarität",
+ "fr": "Polarité de la LED"
},
{
"token": "LED_LUMINANCE",
"en": "LED luminance",
- "de": "LED Helligkeit"
+ "de": "LED Helligkeit",
+ "fr": "Luminosité de la LED"
},
{
"token": "NRF24_ENABLE",
"en": "NRF24 radio enable",
- "de": "NRF24 Funkmodul aktivieren"
+ "de": "NRF24 Funkmodul aktivieren",
+ "fr": "Activation de la radio NRF24"
},
{
"token": "CMT_ENABLE",
"en": "CMT2300A radio enable",
- "de": "CMT2300A Funkmodul aktivieren"
+ "de": "CMT2300A Funkmodul aktivieren",
+ "fr": "Activation de la radio CMT2300A"
},
{
"token": "DISP_NONE",
"en": "None",
- "de": "keins"
+ "de": "keins",
+ "fr": "Aucun"
},
{
"token": "DISP_TYPE",
"en": "Type",
- "de": "Typ"
+ "de": "Typ",
+ "fr": "Type"
},
{
"token": "DISP_ROTATION",
"en": "Rotation",
- "de": "Drehung"
+ "de": "Drehung",
+ "fr": "Rotation"
},
{
"token": "DISP_SCREENSAVER_OFF",
"en": "off",
- "de": "aus"
+ "de": "aus",
+ "fr": "éteint"
},
{
"token": "DISP_PIXEL_SHIFT",
"en": "pixel shift",
- "de": "Bildversatz"
+ "de": "Bildversatz",
+ "fr": "Décalage de pixel"
},
{
"token": "DISP_MOTION_SENS",
"en": "motion sensor",
- "de": "Bewegungssensor"
+ "de": "Bewegungssensor",
+ "fr": "capteur de mouvement"
},
{
"token": "DISP_SCREENSAVER",
"en": "Screensaver (OLED only)",
- "de": "Bildschirmschoner (nur OLED)"
+ "de": "Bildschirmschoner (nur OLED)",
+ "fr": "économiseur d'écran (uniquement OLED)"
},
{
"token": "NETWORK_PLEASE_SELECT",
"en": "please select network",
- "de": "bitte Netzwerk auswählen"
+ "de": "bitte Netzwerk auswählen",
+ "fr": "veuillez sélectionner le réseau"
},
{
"token": "NO_NETWORK_FOUND",
"en": "no network found",
- "de": "kein Netzwerk gefunden"
+ "de": "kein Netzwerk gefunden",
+ "fr": "aucun réseau trouvé"
}
]
},
@@ -776,92 +927,110 @@
{
"token": "UNKNOWN",
"en": "unknown",
- "de": "unbekannt"
+ "de": "unbekannt",
+ "fr": "inconnu"
},
{
"token": "CONNECTED",
"en": "connected",
- "de": "verbunden"
+ "de": "verbunden",
+ "fr": "connecté"
},
{
"token": "NOT",
"en": "not",
- "de": "nicht"
+ "de": "nicht",
+ "fr": "non"
},
{
"token": "IRQ_WORKING",
"en": "Interrupt Pin working",
- "de": "Interrupt Pin funktioniert"
+ "de": "Interrupt Pin funktioniert",
+ "fr": "Broche d'interruption fonctionne"
},
{
"token": "NRF24_DATA_RATE",
"en": "NRF24 Data Rate",
- "de": "NRF24 Geschwindigkeit"
+ "de": "NRF24 Geschwindigkeit",
+ "fr": "Débit de données NRF24"
},
{
"token": "NOT_ENABLED",
"en": "not enabled",
- "de": "nicht aktiviert"
+ "de": "nicht aktiviert",
+ "fr": "non activé"
},
{
"token": "NRF24_RADIO",
"en": "Radio NRF24",
- "de": "NRF24 Funkmodul"
+ "de": "NRF24 Funkmodul",
+ "fr": "Radio NRF24"
},
{
"token": "CMT_RADIO",
"en": "Radio CMT",
- "de": "CMT2300A Funkmodul"
+ "de": "CMT2300A Funkmodul",
+ "fr": "Radio CMT"
},
{
"token": "TRUE",
"en": "true",
- "de": "ja"
+ "de": "ja",
+ "fr": "vrai"
},
{
"token": "FALSE",
"en": "false",
- "de": "nein"
+ "de": "nein",
+ "fr": "faux"
},
{
"token": "ENABLED",
"en": "enabled",
- "de": "aktiviert"
+ "de": "aktiviert",
+ "fr": "activé"
},
{
"token": "SUN",
"en": "Sun",
- "de": "Sonne"
+ "de": "Sonne",
+ "fr": "Soleil"
},
{
"token": "SUNRISE",
"en": "sunrise",
- "de": "Sonnenaufgang"
+ "de": "Sonnenaufgang",
+ "fr": "lever du soleil"
},
{
"token": "SUNSET",
"en": "sunset",
- "de": "Sonnenuntergang"
+ "de": "Sonnenuntergang",
+ "fr": "coucher du soleil"
},
{
"token": "COMMUNICATION_START",
"en": "Communication start",
- "de": "Start der Kommunikation"
+ "de": "Start der Kommunikation",
+ "fr": "Début de la communication"
},
{
"token": "COMMUNICATION_STOP",
"en": "Communication stop",
- "de": "Ende der Kommunikation"
+ "de": "Ende der Kommunikation",
+ "fr": "Fin de la communication"
},
{
"token": "NIGHT_BEHAVE",
"en": "Night behaviour",
- "de": "Verhalten bei Nacht"
+ "de": "Verhalten bei Nacht",
+ "fr": "Comportement nocturne"
},
{
"token": "COMMUNICATING",
"en": "communicating",
- "de": "aktiv"
+ "de": "aktiv",
+ "fr": "en communication"
}
]
},
@@ -871,47 +1040,56 @@
{
"token": "BTN_CLEAR",
"en": "clear",
- "de": "löschen"
+ "de": "löschen",
+ "fr": "effacer"
},
{
"token": "BTN_AUTOSCROLL",
"en": "autoscroll",
- "de": "automatisch scrollen"
+ "de": "automatisch scrollen",
+ "fr": "DÉF'ILEMENT AUTOMATIQUE"
},
{
"token": "BTN_MANUALSCROLL",
"en": "manual scroll",
- "de": "manuell scrollen"
+ "de": "manuell scrollen",
+ "fr": "DÉFILEMENT MANUEL"
},
{
"token": "BTN_COPY",
"en": "copy",
- "de": "kopieren"
+ "de": "kopieren",
+ "fr": "copier"
},
{
"token": "CONSOLE_ACTIVE",
"en": "console active",
- "de": "Konsole aktiv"
+ "de": "Konsole aktiv",
+ "fr": "console active"
},
{
"token": "UPTIME",
"en": "uptime",
- "de": "Laufzeit"
+ "de": "Laufzeit",
+ "fr": "temps de fonctionnement"
},
{
"token": "DAYS",
"en": "days",
- "de": "Tage"
+ "de": "Tage",
+ "fr": "jours"
},
{
"token": "COPIED_TO_CLIPBOARD",
"en": "Copied to clipboard",
- "de": "in die Zwischenablage kopiert"
+ "de": "in die Zwischenablage kopiert",
+ "fr": "Copié dans le presse-papiers"
},
{
"token": "CLIPBOARD_FAILED",
"en": "Copy failed",
- "de": "kopieren fehlgeschlagen"
+ "de": "kopieren fehlgeschlagen",
+ "fr": "Echec de la copie"
}
]
},
@@ -921,172 +1099,200 @@
{
"token": "SUPPORT",
"en": "Support this project",
- "de": "Dieses Projekt unterstützen"
+ "de": "Dieses Projekt unterstützen",
+ "fr": "Soutenir ce projet"
},
{
"token": "CHANGELOG",
"en": "Changelog",
- "de": "Änderungshistorie"
+ "de": "Änderungshistorie",
+ "fr": "Journal des modifications"
},
{
"token": "DISCUSS",
"en": "Discuss with us on",
- "de": "Diskutiere mit uns bei"
+ "de": "Diskutiere mit uns bei",
+ "fr": "Discuter avec nous sur"
},
{
"token": "REPORT",
"en": "Report",
- "de": "Melde "
+ "de": "Melde ",
+ "fr": "Rapport"
},
{
"token": "ISSUES",
"en": "Issues",
- "de": "Fehler "
+ "de": "Fehler ",
+ "fr": "Problèmes"
},
{
"token": "CONTRIBUTE",
"en": "Contribute to",
- "de": "Unterstütze bei"
+ "de": "Unterstütze bei",
+ "fr": "Contribuer à"
},
{
"token": "DOCUMENTATION",
"en": "documentation",
- "de": "der Dokumentation"
+ "de": "der Dokumentation",
+ "fr": "documentation"
},
{
"token": "DEV_FIRMWARE",
"en": "development firmware",
- "de": "Entwicklerversionen der Firmware"
+ "de": "Entwicklerversionen der Firmware",
+ "fr": "micrologiciel de développement"
},
{
"token": "DEV_CHANGELOG",
"en": "Development Changelog",
- "de": "Änderungshistorie der Entwicklerversionen"
+ "de": "Änderungshistorie der Entwicklerversionen",
+ "fr": "Journal des modifications de développement"
},
{
"token": "DON_MAKE",
"en": "make a",
- "de": "Unterstüze mit"
- },
- {
- "token": "DON_MAKE",
- "en": "make a",
- "de": "Unterstüze z.B. mit"
+ "de": "Unterstüze z.B. mit",
+ "fr": "faire un"
},
{
"token": "DONATION",
"en": "donation",
- "de": "Paypal"
+ "de": "Paypal",
+ "fr": "don"
},
{
"token": "COMMAND_EXE",
"en": "command executed",
- "de": "Befehl ausgeführt"
+ "de": "Befehl ausgeführt",
+ "fr": "commande exécutée"
},
{
"token": "ERROR",
"en": "Error",
- "de": "Fehler"
+ "de": "Fehler",
+ "fr": "Erreur"
},
{
"token": "DAY",
"en": "day",
- "de": "Tag"
+ "de": "Tag",
+ "fr": "jour"
},
{
"token": "S",
"en": "s",
- "de": "e"
+ "de": "e",
+ "fr": "s"
},
{
"token": "NTP_UNREACH",
"en": "NTP timeserver unreachable",
- "de": "NTP Zeitserver nicht erreichbar"
+ "de": "NTP Zeitserver nicht erreichbar",
+ "fr": "Serveur de temps NTP inaccessible"
},
{
"token": "POLLING_STOP",
"en": "Polling inverter(s), will pause at sunset",
- "de": "Abfrage der Wechselrichter wird zum Sonnenuntergang stoppen"
+ "de": "Abfrage der Wechselrichter wird zum Sonnenuntergang stoppen",
+ "fr": "Interrogation de l'onduleur(s), fera une pause au coucher du soleil"
},
{
"token": "NIGHT_TIME",
"en": "Night time, inverter polling disabled",
- "de": "Wechselrichterabfrage deaktiviert (Nacht)"
+ "de": "Wechselrichterabfrage deaktiviert (Nacht)",
+ "fr": "Temps de nuit, interrogation de l'onduleur désactivée"
},
{
"token": "PAUSED_AT",
"en": "paused at",
- "de": "pausiert um"
+ "de": "pausiert um",
+ "fr": "en pause à"
},
{
"token": "START_AT",
"en": "will start polling at",
- "de": "Abfrage startet am"
+ "de": "Abfrage startet am",
+ "fr": "démarrera l'interrogation à"
},
{
"token": "DISABLED",
"en": "disabled",
- "de": "deaktiviert"
+ "de": "deaktiviert",
+ "fr": "désactivé"
},
{
"token": "NOT_YET_AVAIL",
"en": "not yet available",
- "de": "gerade nicht verfügbar"
+ "de": "gerade nicht verfügbar",
+ "fr": "pas encore disponible"
},
{
"token": "AVAIL",
"en": "available and is",
- "de": "verfügbar und"
+ "de": "verfügbar und",
+ "fr": "disponible et est"
},
{
"token": "AVAIL_NO_DATA",
"en": "available but no data was received until now",
- "de": "verfügbar, aber bis jetzt keine Daten empfangen"
+ "de": "verfügbar, aber bis jetzt keine Daten empfangen",
+ "fr": "disponible mais aucune donnée n'a été reçue jusqu'à présent"
},
{
"token": "NOT_PRODUCING",
"en": "not producing",
- "de": "produziert nicht"
+ "de": "produziert nicht",
+ "fr": "ne produit pas"
},
{
"token": "PRODUCING",
"en": "producing",
- "de": "produziert"
+ "de": "produziert",
+ "fr": "produit"
},
{
"token": "INVERTER",
"en": "Inverter",
- "de": "Wechselrichter"
+ "de": "Wechselrichter",
+ "fr": "Onduleur"
},
{
"token": "IS",
"en": "is",
- "de": "ist"
+ "de": "ist",
+ "fr": "est"
},
{
"token": "LAST_SUCCESS",
"en": "last successful transmission",
- "de": "letzte erfolgreiche Übertragung"
+ "de": "letzte erfolgreiche Übertragung",
+ "fr": "dernière transmission réussie"
},
{
"token": "UPDATE_AVAIL",
"en": "Update available, current released version",
- "de": "Update verfügbar, aktuell veröffentlichte Version"
+ "de": "Update verfügbar, aktuell veröffentlichte Version",
+ "fr": "Mise à jour disponible, version actuellement publiée"
},
{
"token": "USING_DEV_VERSION",
"en": "You are using development version",
- "de": "Du verwendest eine Entwicklerversion"
+ "de": "Du verwendest eine Entwicklerversion",
+ "fr": "Vous utilisez une version de développement"
},
{
"token": "DEV_ISSUE_RELEASE_VERSION",
"en": "In case of issues you may want to try the current stable release",
- "de": "Wenn du Fehler feststellst solltest du die aktuelle Releaseversion verwenden"
+ "de": "Wenn du Fehler feststellst solltest du die aktuelle Releaseversion verwenden",
+ "fr": "En cas de problèmes, vous voudrez peut-être essayer la version stable actuelle"
},
{
"token": "RELEASE_INSTALLED",
"en": "You are using the current stable release",
- "de": "Du verwendest das aktuelle Release"
+ "de": "Du verwendest das aktuelle Release",
+ "fr": "Vous utilisez la version stable actuelle"
}
]
},
@@ -1096,52 +1302,62 @@
{
"token": "SELECT_FILE",
"en": "Select firmware file",
- "de": "Firmware Datei auswählen"
+ "de": "Firmware Datei auswählen",
+ "fr": "Sélectionner le fichier de micrologiciel"
},
{
"token": "BTN_UPDATE",
"en": "Update",
- "de": "aktualisieren"
+ "de": "aktualisieren",
+ "fr": "Mettre à jour"
},
{
"token": "BTN_UPDATE",
"en": "Update",
- "de": "aktualisieren"
+ "de": "aktualisieren",
+ "fr": "Mettre à jour"
},
{
"token": "DOWNLOADS",
"en": "Download latest Release and Development versions (without login)",
- "de": "Lade die letzte Releaseversion oder Entwicklerversion herunter (ohne Login)"
+ "de": "Lade die letzte Releaseversion oder Entwicklerversion herunter (ohne Login)",
+ "fr": "Téléchargez les dernières versions de release et de développement (sans connexion)"
},
{
"token": "INSTALLED_VERSION",
"en": "installed version (original filename)",
- "de": "aktuell installierte Version"
+ "de": "aktuell installierte Version",
+ "fr": "version installée (nom de fichier original)"
},
{
"token": "UPDATE_STARTED",
"en": "update started",
- "de": "Aktualisierung gestartet"
+ "de": "Aktualisierung gestartet",
+ "fr": "Mise à jour démarrée"
},
{
"token": "UPDATE_MODAL",
"en": "Warning",
- "de": "Warnung"
+ "de": "Warnung",
+ "fr": "Avertissement"
},
{
"token": "WARN_DIFF_ENV",
"en": "your environment may not match the update file!",
- "de": "Die ausgewählte Firmware passt u.U. nicht zum Chipsatz!"
+ "de": "Die ausgewählte Firmware passt u.U. nicht zum Chipsatz!",
+ "fr": "Votre environnement peut ne pas correspondre au fichier de mise à jour!"
},
{
"token": "CONTIUE",
"en": "continue",
- "de": "fortfahren"
+ "de": "fortfahren",
+ "fr": "continuer"
},
{
"token": "CANCEL",
"en": "cancel",
- "de": "abbrechen"
+ "de": "abbrechen",
+ "fr": "annuler"
}
]
},
@@ -1151,342 +1367,410 @@
{
"token": "EVERY",
"en": "Every",
- "de": "Alle"
+ "de": "Alle",
+ "fr": "Toutes"
},
{
"token": "UPDATE_SECS",
"en": "seconds the values are updated",
- "de": "Sekunden werden die Daten aktualisiert"
+ "de": "Sekunden werden die Daten aktualisiert",
+ "fr": "secondes les valeurs sont mises à jour"
},
{
"token": "TOTAL",
"en": "TOTAL",
- "de": "GESAMT"
+ "de": "GESAMT",
+ "fr": "TOTAL"
},
{
"token": "AC_POWER",
"en": "AC Power",
- "de": "AC Leistung"
+ "de": "AC Leistung",
+ "fr": "Puissance AC"
},
{
"token": "YIELD_DAY",
"en": "Yield Day",
- "de": "Tagesertrag"
+ "de": "Tagesertrag",
+ "fr": "Rendement journalier"
},
{
"token": "YIELD_TOTAL",
"en": "Yield Total",
- "de": "Gesamtertrag"
+ "de": "Gesamtertrag",
+ "fr": "Rendement total"
},
{
"token": "MAX_POWER",
"en": "Max Power",
- "de": "Maximale Leistung"
+ "de": "Maximale Leistung",
+ "fr": "Puissance maximale"
},
{
"token": "DC_POWER",
"en": "DC Power",
- "de": "DC Leistung"
+ "de": "DC Leistung",
+ "fr": "Puissance DC"
},
{
"token": "REACTIVE_POWER",
"en": "Reactive Power",
- "de": "Blindleistung"
+ "de": "Blindleistung",
+ "fr": "Puissance réactive"
},
{
"token": "ACTIVE_POWER_CONTROL",
"en": "Active Power Control",
- "de": "Leistungsbegrenzung"
+ "de": "Leistungsbegrenzung",
+ "fr": "Contrôle de la puissance active"
},
{
"token": "APC",
"en": "APC",
- "de": "Limit"
+ "de": "Limit",
+ "fr": "PLA"
},
{
"token": "ALARMS",
"en": "Alarms",
- "de": "Meldungen"
+ "de": "Meldungen",
+ "fr": "Alarmes"
},
{
"token": "MAX_AC_POWER",
"en": "Max AC Power",
- "de": "Max AC Leistung"
+ "de": "Max AC Leistung",
+ "fr": "Puissance AC maximale"
},
{
"token": "DC_POWER",
"en": "DC Power",
- "de": "DC Leistung"
+ "de": "DC Leistung",
+ "fr": "Puissance DC"
},
{
"token": "DC_VOLTAGE",
"en": "DC Voltage",
- "de": "DC Spannung"
+ "de": "DC Spannung",
+ "fr": "Tension DC"
},
{
"token": "AC_VOLTAGE",
"en": "AC Voltage",
- "de": "Netzspannung"
+ "de": "Netzspannung",
+ "fr": "Tension AC"
},
{
"token": "AC_CURRENT",
"en": "AC Current",
- "de": "AC Strom"
+ "de": "AC Strom",
+ "fr": "Courant AC"
},
{
"token": "FREQUENCY",
"en": "Frequency",
- "de": "Frequenz"
+ "de": "Frequenz",
+ "fr": "Fréquence"
},
{
"token": "EFFICIENCY",
"en": "Efficiency",
- "de": "Effizienz"
+ "de": "Effizienz",
+ "fr": "Efficacité"
},
{
"token": "POWER_FACTOR",
"en": "Power Factor",
- "de": "Leistungsfaktor"
+ "de": "Leistungsfaktor",
+ "fr": "Facteur de puissance"
},
{
"token": "IRRADIATION",
"en": "Irradiation",
- "de": "Einstrahlung"
+ "de": "Einstrahlung",
+ "fr": "Irradiation"
},
{
"token": "DC_CURRENT",
"en": "DC Current",
- "de": "DC Strom"
+ "de": "DC Strom",
+ "fr": "Courant DC"
},
{
"token": "LAST_RECEIVED",
"en": "Last received data requested at",
- "de": "Zuletzt empfangene Daten wurden angefragt am"
+ "de": "Zuletzt empfangene Daten wurden angefragt am",
+ "fr": "Dernières données reçues demandées à"
},
{
"token": "NOTHING_RECEIVED",
"en": "nothing received",
- "de": "nichts empfangen"
+ "de": "nichts empfangen",
+ "fr": "rien reçu"
},
{
"token": "ALARMS_MODAL",
"en": "Alarms of inverter",
- "de": "Meldungen von Wechselrichter"
+ "de": "Meldungen von Wechselrichter",
+ "fr": "Alarmes de l'onduleur"
},
{
"token": "SERIAL",
"en": "Serial",
- "de": "Seriennummer"
+ "de": "Seriennummer",
+ "fr": "Série"
},
{
"token": "BTN_SHOW",
"en": "show",
- "de": "anzeigen"
+ "de": "anzeigen",
+ "fr": "montrer"
},
{
"token": "EVENT",
"en": "Event",
- "de": "Ereignis"
+ "de": "Ereignis",
+ "fr": "événement"
},
{
"token": "END",
"en": "End",
- "de": "Ende"
+ "de": "Ende",
+ "fr": "Fin"
},
{
"token": "HW_NUMBER",
"en": "Hardware Number",
- "de": "Hardware Nummer"
+ "de": "Hardware Nummer",
+ "fr": "Numéro de matériel"
},
{
"token": "INV_INFO",
"en": "Info for inverter",
- "de": "Info für Wechselrichter"
+ "de": "Info für Wechselrichter",
+ "fr": "Info pour l'onduleur"
},
{
"token": "VALUE",
"en": "Value",
- "de": "Wert"
+ "de": "Wert",
+ "fr": "Valeur"
},
{
"token": "RANGE",
"en": "Range",
- "de": "Bereich"
+ "de": "Bereich",
+ "fr": "Plage"
},
{
"token": "DEFAULT",
"en": "Default",
- "de": "Standard"
+ "de": "Standard",
+ "fr": "Défaut"
},
{
"token": "PROFILE_NOT_READ",
"en": "Profile was not read until now, maybe turned off",
- "de": "Grid-Profil wurde bis jetzt noch nicht gelesen oder das Auslesen ist nicht aktiv"
+ "de": "Grid-Profil wurde bis jetzt noch nicht gelesen oder das Auslesen ist nicht aktiv",
+ "fr": "Le profil n'a pas été lu jusqu'à présent, peut-être éteint"
},
{
"token": "UNKNOWN_PROFILE",
"en": "Unknown Profile",
- "de": "Unbekanntes Profil"
+ "de": "Unbekanntes Profil",
+ "fr": "Profil inconnu"
},
{
"token": "OPEN_ISSUE",
"en": "Please open a new issue at https://github.com/lumapu/ahoy and copy the raw data into it",
- "de": "Bitte erstelle einen neuen Issue auf https://github.com/lumapu/ahoy und kopiere die Rohdaten hinein"
+ "de": "Bitte erstelle einen neuen Issue auf https://github.com/lumapu/ahoy und kopiere die Rohdaten hinein",
+ "fr": "Veuillez ouvrir un nouveau problème sur https://github.com/lumapu/ahoy et copier les données brutes dedans"
},
{
"token": "PROFILE_MODAL",
"en": "Grid Profile for inverter",
- "de": "Grid-Profil für Wechselrichter"
+ "de": "Grid-Profil für Wechselrichter",
+ "fr": "Profil de réseau pour onduleur"
},
{
"token": "TX_COUNT",
"en": "TX count",
- "de": "Sendezähler"
+ "de": "Sendezähler",
+ "fr": "Nombre de transmissions"
},
{
"token": "RX_SUCCESS",
"en": "RX success",
- "de": "erfolgreicher Empfang"
+ "de": "erfolgreicher Empfang",
+ "fr": "Réception réussie"
},
{
"token": "RX_FAIL",
"en": "RX fail",
- "de": "fehlgeschlagener Empfang"
+ "de": "fehlgeschlagener Empfang",
+ "fr": "échec de réception"
},
{
"token": "RX_NO_ANSWER",
"en": "RX no answer",
- "de": "keine Antwort"
+ "de": "keine Antwort",
+ "fr": "Pas de réponse"
},
{
"token": "RX_FRAGMENTS",
"en": "RX fragments",
- "de": "empfangene Fragmente"
+ "de": "empfangene Fragmente",
+ "fr": "Fragments reçus"
},
{
"token": "TX_RETRANSMITS",
"en": "TX retransmits",
- "de": "erneute Sendeversuche"
+ "de": "erneute Sendeversuche",
+ "fr": "Retransmissions TX"
},
{
"token": "INV_LOSS_RATE",
"en": "Inverter loss rate",
- "de": "Wechselrichter Verlustrate"
+ "de": "Wechselrichter Verlustrate",
+ "fr": "Taux de perte de l'onduleur"
},
{
"token": "DTU_LOSS_RATE",
"en": "DTU loss rate",
- "de": "DTU Verlustrate"
+ "de": "DTU Verlustrate",
+ "fr": "Taux de perte du DTU"
},
{
"token": "RADIO_STAT_MODAL",
"en": "Radio statistics for inverter",
- "de": "Funkstatistik für Wechselrichter"
+ "de": "Funkstatistik für Wechselrichter",
+ "fr": "Statistiques radio pour onduleur"
},
{
"token": "LOST_1",
"en": "lost",
- "de": ""
+ "de": "",
+ "fr": "perdu"
},
{
"token": "LOST_2",
"en": "of",
- "de": "von"
+ "de": "von",
+ "fr": "de"
},
{
"token": "LOST_3",
"en": "",
- "de": "verloren"
+ "de": "verloren",
+ "fr": ""
},
{
"token": "LIMIT_VALUE",
"en": "Limit Value",
- "de": "Wert der Leistungsbegrenzung"
+ "de": "Wert der Leistungsbegrenzung",
+ "fr": "Valeur limite"
},
{
"token": "KEEP_LIMIT",
"en": "Keep limit over inverter restart",
- "de": "Leistungsbegrenzung dauerhaft speichern (im Wechselrichter)"
+ "de": "Leistungsbegrenzung dauerhaft speichern (im Wechselrichter)",
+ "fr": "Conserver la limite lors du redémarrage de l'onduleur"
},
{
"token": "BTN_APPLY",
"en": "Apply",
- "de": "anwenden"
+ "de": "anwenden",
+ "fr": "Appliquer"
},
{
"token": "CONTROL",
"en": "Control",
- "de": "Ansteuern"
+ "de": "Ansteuern",
+ "fr": "Contrôle"
},
{
"token": "RESTART",
"en": "restart",
- "de": "neustarten"
+ "de": "neustarten",
+ "fr": "redémarrer"
},
{
"token": "TURN_OFF",
"en": "turn off",
- "de": "ausschalten"
+ "de": "ausschalten",
+ "fr": "éteindre"
},
{
"token": "TURN_ON",
"en": "turn on",
- "de": "anschalten"
+ "de": "anschalten",
+ "fr": "allumer"
},
{
"token": "RESULT",
"en": "Result",
- "de": "Status"
+ "de": "Status",
+ "fr": "Résultat"
},
{
"token": "POWER_LIMIT_MODAL",
"en": "Active Power Control for inverter",
- "de": "Leistungsbegrenzung für Wechselrichter"
+ "de": "Leistungsbegrenzung für Wechselrichter",
+ "fr": "Contrôle de la puissance active pour onduleur"
},
{
"token": "CMD_RECEIVED_WAIT_ACK",
"en": "received command, waiting for inverter acknowledge ...",
- "de": "Befehl erhalten, warte auf Bestäigung vom Wechselrichter ..."
+ "de": "Befehl erhalten, warte auf Bestäigung vom Wechselrichter ...",
+ "fr": "commande reçue, en attente de l'accusé de réception de l'onduleur ..."
},
{
"token": "COMMAND_RECEIVED",
"en": "command received",
- "de": "Befehl erhalten"
+ "de": "Befehl erhalten",
+ "fr": "commande reçue"
},
{
"token": "ERROR",
"en": "Error",
- "de": "Fehler"
+ "de": "Fehler",
+ "fr": "Erreur"
},
{
"token": "INV_ACK",
"en": "inverter acknowledged active power control command",
- "de": "Wechselrichter hat die Leistungsbegrenzung akzeptiert"
+ "de": "Wechselrichter hat die Leistungsbegrenzung akzeptiert",
+ "fr": "l'onduleur a reconnu la commande de contrôle de la puissance active"
},
{
"token": "ERR_AUTH",
"en": "authentication error",
- "de": "Authentifizierungsfehler"
+ "de": "Authentifizierungsfehler",
+ "fr": "erreur d'authentification"
},
{
"token": "ERR_INDEX",
"en": "inverter index invalid",
- "de": "Wechselrichterindex ungültig"
+ "de": "Wechselrichterindex ungültig",
+ "fr": "index de l'onduleur non valide"
},
{
"token": "ERR_UNKNOWN_CMD",
"en": "unknown cmd",
- "de": "unbekanntes Kommando"
+ "de": "unbekanntes Kommando",
+ "fr": "commande inconnue"
},
{
"token": "ERR_LIMIT_NOT_ACCEPT",
"en": "inverter does not accept dev control request at this moment",
- "de": "Leistungsbegrenzung / Ansteuerung aktuell nicht möglich"
+ "de": "Leistungsbegrenzung / Ansteuerung aktuell nicht möglich",
+ "fr": "l'onduleur n'accepte pas la demande de contrôle de périphérique pour le moment"
},
{
"token": "ERR_PROTECTED",
"en": "not logged in, command not possible!",
- "de": "nicht angemeldet, Kommando nicht möglich!"
+ "de": "nicht angemeldet, Kommando nicht möglich!",
+ "fr": "non connecté, commande non possible !"
}
]
},
@@ -1496,27 +1780,32 @@
{
"token": "SAVE_SETTINGS",
"en": "Saving settings...",
- "de": "Einstellungen werden gespeichert ..."
+ "de": "Einstellungen werden gespeichert ...",
+ "fr": "Enregistrement des paramètres..."
},
{
"token": "SUCCESS_SAVED_RELOAD",
"en": "Settings successfully saved. Automatic page reload in 3 seconds.",
- "de": "Einstellungen erfolgreich gespeichert. Automatische Weiterleitung in 3 Sekunden"
+ "de": "Einstellungen erfolgreich gespeichert. Automatische Weiterleitung in 3 Sekunden",
+ "fr": "Paramètres enregistrés avec succès. Rechargement automatique de la page dans 3 secondes."
},
{
"token": "SUCCESS_SAVED_REBOOT",
"en": "Settings successfully saved. Rebooting. Automatic redirect in",
- "de": "Einstellungen erfolgreich gespeichert. Automatische Weiterleitung nach Reboot in"
+ "de": "Einstellungen erfolgreich gespeichert. Automatische Weiterleitung nach Reboot in",
+ "fr": "Paramètres enregistrés avec succès. Redémarrage. Redirection automatique dans"
},
{
"token": "SECONDS",
"en": "seconds",
- "de": "Sekunden"
+ "de": "Sekunden",
+ "fr": "secondes"
},
{
"token": "FAILED_SAVE",
"en": "Failed saving settings",
- "de": "Fehler beim Speichern"
+ "de": "Fehler beim Speichern",
+ "fr": "échec de l'enregistrement des paramètres"
}
]
},
@@ -1526,37 +1815,44 @@
{
"token": "TOTAL_POWER",
"en": "Total Power",
- "de": "Gesamtleistung"
+ "de": "Gesamtleistung",
+ "fr": "Puissance totale"
},
{
"token": "TOTAL_YIELD_PER_DAY",
"en": "Total Yield per day",
- "de": "Gesamtertrag pro Tag"
+ "de": "Gesamtertrag pro Tag",
+ "fr": "Rendement total par jour"
},
{
"token": "MAX_DAY",
"en": "maximum day",
- "de": "Tagesmaximum"
+ "de": "Tagesmaximum",
+ "fr": "Jour maximum"
},
{
"token": "LAST_VALUE",
"en": "last value",
- "de": "letzter Wert"
+ "de": "letzter Wert",
+ "fr": "dernière valeur"
},
{
"token": "MAXIMUM",
"en": "maximum value",
- "de": "Maximalwert"
+ "de": "Maximalwert",
+ "fr": "valeur maximale"
},
{
"token": "UPDATED",
"en": "Updated every",
- "de": "aktualisiert alle"
+ "de": "aktualisiert alle",
+ "fr": "Mise à jour toutes les"
},
{
"token": "SECONDS",
"en": "seconds",
- "de": "Sekunden"
+ "de": "Sekunden",
+ "fr": "secondes"
}
]
}