mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 15:59:52 +03:00
Merge branch 'dev' of https://github.com/emsesp/EMS-ESP32 into dev
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
|
||||
## Added
|
||||
|
||||
- Translations in Web UI and all device entity names (DE, NL, SE, PL, NO) [#22](https://github.com/emsesp/EMS-ESP32/issues/22)
|
||||
- Translations in Web UI and all device entity names (DE, NL, SE, PL, NO, FR) [#22](https://github.com/emsesp/EMS-ESP32/issues/22)
|
||||
- Add support for Lolin C3 mini [#620](https://github.com/emsesp/EMS-ESP32/pull/620)
|
||||
- Add support for ESP32-S2 [#667](https://github.com/emsesp/EMS-ESP32/pull/667)
|
||||
- Add devices: Greenstar 30Ri boiler, Junkers FW500 thermostat, Buderus BC30 controller
|
||||
|
||||
@@ -24,6 +24,7 @@ import { ReactComponent as GBflag } from './i18n/GB.svg';
|
||||
import { ReactComponent as SEflag } from './i18n/SE.svg';
|
||||
import { ReactComponent as PLflag } from './i18n/PL.svg';
|
||||
import { ReactComponent as NOflag } from './i18n/NO.svg';
|
||||
import { ReactComponent as FRflag } from './i18n/FR.svg';
|
||||
|
||||
const SignIn: FC = () => {
|
||||
const authenticationContext = useContext(AuthenticationContext);
|
||||
@@ -133,6 +134,10 @@ const SignIn: FC = () => {
|
||||
<NOflag style={{ width: 24 }} />
|
||||
NO
|
||||
</Button>
|
||||
<Button size="small" variant={locale === 'fr' ? 'contained' : 'outlined'} onClick={() => selectLocale('fr')}>
|
||||
<FRflag style={{ width: 24 }} />
|
||||
FR
|
||||
</Button>
|
||||
</Box>
|
||||
|
||||
<ValidatedTextField
|
||||
|
||||
@@ -29,6 +29,7 @@ import { ReactComponent as GBflag } from '../../i18n/GB.svg';
|
||||
import { ReactComponent as SEflag } from '../../i18n/SE.svg';
|
||||
import { ReactComponent as PLflag } from '../../i18n/PL.svg';
|
||||
import { ReactComponent as NOflag } from '../../i18n/NO.svg';
|
||||
import { ReactComponent as FRflag } from '../../i18n/FR.svg';
|
||||
|
||||
const ItemTypography = styled(Typography)<TypographyProps>({
|
||||
maxWidth: '250px',
|
||||
@@ -97,6 +98,10 @@ const LayoutAuthMenu: FC = () => {
|
||||
<NOflag style={{ width: 16, verticalAlign: 'middle' }} />
|
||||
NO
|
||||
</MenuItem>
|
||||
<MenuItem key="fr" value="fr">
|
||||
<FRflag style={{ width: 16, verticalAlign: 'middle' }} />
|
||||
FR
|
||||
</MenuItem>
|
||||
</TextField>
|
||||
|
||||
<IconButton
|
||||
|
||||
1
interface/src/i18n/FR.svg
Executable file
1
interface/src/i18n/FR.svg
Executable file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 85.333 512 341.333"><path fill="#FFF" d="M0 85.331h512v341.337H0z"/><path fill="#0052B4" d="M0 85.331h170.663v341.337H0z"/><path fill="#D80027" d="M341.337 85.331H512v341.337H341.337z"/></svg>
|
||||
|
After Width: | Height: | Size: 243 B |
304
interface/src/i18n/fr/index.ts
Normal file
304
interface/src/i18n/fr/index.ts
Normal file
@@ -0,0 +1,304 @@
|
||||
import type { Translation } from '../i18n-types';
|
||||
/* prettier-ignore */
|
||||
/* eslint-disable */
|
||||
|
||||
const fr: Translation = {
|
||||
LANGUAGE: 'Langue',
|
||||
RETRY: 'Réessayer',
|
||||
LOADING: 'Chargement',
|
||||
IS_REQUIRED: '{0} est requis',
|
||||
SIGN_IN: 'Se connecter',
|
||||
SIGN_OUT: 'Se déconnecter',
|
||||
USERNAME: 'Nom d\'utilisateur',
|
||||
PASSWORD: 'Mot de passe',
|
||||
SU_PASSWORD: 'Mot de passe su',
|
||||
DASHBOARD: 'Tableau de bord',
|
||||
SETTINGS_OF: 'Paramètres {0}',
|
||||
SAVED: 'sauvegardé',
|
||||
HELP_OF: 'Aide {0}',
|
||||
LOGGED_IN: 'Connecté en tant que {name}',
|
||||
PLEASE_SIGNIN: 'Veuillez vous connecter pour continuer',
|
||||
UPLOAD_SUCCESSFUL: 'Upload terminée',
|
||||
DOWNLOAD_SUCCESSFUL: 'Téléchargement terminé',
|
||||
INVALID_LOGIN: 'Informations de connexion invalides',
|
||||
NETWORK: 'Réseau',
|
||||
SECURITY: 'Sécurité',
|
||||
ONOFF_CAP: 'ON/OFF',
|
||||
ONOFF: 'on/off',
|
||||
TYPE: 'Type',
|
||||
DESCRIPTION: 'Description',
|
||||
ENTITIES: 'Entités',
|
||||
REFRESH: 'Rafraîchir',
|
||||
EXPORT: 'Exporter',
|
||||
DEVICE_DETAILS: 'Détails de l\'appareil',
|
||||
ID_OF: 'ID {0}',
|
||||
DEVICE: 'Appareil',
|
||||
PRODUCT: 'Produit',
|
||||
VERSION: 'Version',
|
||||
BRAND: 'Marque',
|
||||
ENTITY_NAME: 'Nom de l\'entité',
|
||||
VALUE: 'Valeur',
|
||||
SHOW_FAV: 'ne montrer que les favoris',
|
||||
DEVICE_SENSOR_DATA: 'Données des appareils et capteurs',
|
||||
DEVICES_SENSORS: 'Appareils et capteurs',
|
||||
ATTACHED_SENSORS: 'Capteurs EMS-ESP connectés',
|
||||
RUN_COMMAND: 'Lancer une commande',
|
||||
CHANGE_VALUE: 'Changer la valeur',
|
||||
CANCEL: 'Annuler',
|
||||
RESET: 'Réinitialiser',
|
||||
SEND: 'Envoyer',
|
||||
SAVE: 'Sauvegarder',
|
||||
REMOVE: 'Enlever',
|
||||
PROBLEM_UPDATING: 'Problème lors de la mise à jour',
|
||||
PROBLEM_LOADING: 'Problème lors du chargement',
|
||||
ACCESS_DENIED: 'Accès refusé',
|
||||
ANALOG_SENSOR: 'Capteur analogique',
|
||||
ANALOG_SENSORS: 'Capteurs analogiques',
|
||||
UPDATED_OF: '{0} mis à jour',
|
||||
UPDATE_OF: 'Mise à jour de {0}',
|
||||
REMOVED_OF: '{0} enlevé',
|
||||
DELETION_OF: '{0} supprimé',
|
||||
OFFSET: 'Offset',
|
||||
FACTOR: 'Facteur',
|
||||
FREQ: 'Fréquence',
|
||||
DUTY_CYCLE: 'Cycle de fonctionnement',
|
||||
UNIT: 'Unité',
|
||||
STARTVALUE: 'Valeur de départ',
|
||||
WARN_GPIO: 'Attention: soyez vigilant en choisissant un GPIO!',
|
||||
EDIT: 'Éditer',
|
||||
SENSOR: 'Capteur',
|
||||
TEMP_SENSOR: 'Capteur de température',
|
||||
TEMP_SENSORS: 'Capteurs de température',
|
||||
WRITE_COMMAND: 'Envoyer la commande {cmd}',
|
||||
EMS_BUS_WARNING: 'Bus EMS déconnecté. Si ce message persiste après quelques secondes, vérifiez les paramètres et la configuration de la carte.',
|
||||
EMS_BUS_SCANNING: 'Scan des appareils EMS...',
|
||||
CONNECTED: 'Connecté',
|
||||
TX_ISSUES: 'Problèmes de transmission (Tx) - Essayez un autre mode Tx',
|
||||
DISCONNECTED: 'Déconnecté',
|
||||
EMS_SCAN: 'Etes-vous sûr de vouloir lancer un scan complet du bus EMS ?',
|
||||
EMS_BUS_STATUS: 'Statut du bus EMS',
|
||||
ACTIVE_DEVICES: 'Appareils et capteurs actifs',
|
||||
EMS_DEVICE: 'Appareils EMS',
|
||||
SUCCESS: 'SUCCÈS',
|
||||
FAIL: 'ÉCHEC',
|
||||
QUALITY: 'QUALITÉ',
|
||||
SCAN_DEVICES: 'Rechercher de nouveaux appareils',
|
||||
EMS_BUS_STATUS_TITLE: 'Statut du bus et de l\'activité EMS',
|
||||
SCAN: 'Scan',
|
||||
STATUS_NAMES: [
|
||||
'Télégrammes EMS reçus (Rx)',
|
||||
'Lectures EMS (Tx)',
|
||||
'Écritures EMS (Tx)',
|
||||
'Lectures capteurs de température',
|
||||
'Lectures capteurs analogiques',
|
||||
'Publications MQTT',
|
||||
'Appels à l\'API',
|
||||
'Messages Syslog'
|
||||
],
|
||||
NUM_DEVICES: '{num} Appareil{{s}}',
|
||||
NUM_TEMP_SENSORS: '{num} Capteur{{s}} de température',
|
||||
NUM_ANALOG_SENSORS: '{num} Capteur{{s}} analogique{{s}}',
|
||||
NUM_DAYS: '{num} jour{{s}}',
|
||||
NUM_SECONDS: '{num} seconde{{s}}',
|
||||
NUM_HOURS: '{num} heure{{s}}',
|
||||
NUM_MINUTES: '{num} minute{{s}}',
|
||||
APPLICATION_SETTINGS: 'Paramètres de l\'application',
|
||||
CUSTOMIZATION: 'Personnalisation',
|
||||
APPLICATION_RESTARTING: 'EMS-ESP redémarre',
|
||||
INTERFACE_BOARD_PROFILE: 'Profile de carte d\'interface',
|
||||
BOARD_PROFILE_TEXT: 'Sélectionnez un profil de carte d\'interface préconfiguré dans la liste ci-dessous ou choisissez Personnalisé pour configurer vos propres paramètres matériels',
|
||||
BOARD_PROFILE: 'Profil de carte',
|
||||
CUSTOM: 'Personnalisé',
|
||||
GPIO_OF: 'GPIO {0}',
|
||||
BUTTON: 'Bouton',
|
||||
TEMPERATURE: 'Température',
|
||||
PHY_TYPE: 'Eth PHY Type',
|
||||
DISABLED: 'désactivé',
|
||||
TX_MODE: 'Tx Mode',
|
||||
HARDWARE: 'Hardware',
|
||||
EMS_BUS: '{{BUS|EMS BUS}}',
|
||||
GENERAL_OPTIONS: 'Options générales',
|
||||
LANGUAGE_ENTITIES: 'Langue (pour les entités du matériel)',
|
||||
HIDE_LED: 'Cacher la LED',
|
||||
ENABLE_TELNET: 'Activer la console Telnet',
|
||||
ENABLE_ANALOG: 'Activer les capteurs analogiques',
|
||||
CONVERT_FAHRENHEIT: 'Convertir les températures en Fahrenheit',
|
||||
BYPASS_TOKEN: 'Contourner l\'autorisation du jeton d\'accès sur les appels API',
|
||||
READONLY: 'Activer le mode lecture uniquement (bloque toutes les commandes EMS sortantes en écriture Tx)',
|
||||
UNDERCLOCK_CPU: 'Underclock du CPU',
|
||||
ENABLE_SHOWER_TIMER: 'Activer la minuterie de la douche',
|
||||
ENABLE_SHOWER_ALERT: 'Activer les alertes de durée de douche',
|
||||
TRIGGER_TIME: 'Durée avant déclenchement',
|
||||
COLD_SHOT_DURATION: 'Durée du coup d\'eau froide',
|
||||
FORMATTING_OPTIONS: 'Options de mise en forme',
|
||||
BOOLEAN_FORMAT_DASHBOARD: 'Tableau de bord du format booléen',
|
||||
BOOLEAN_FORMAT_API: 'Format booléen API/MQTT',
|
||||
ENUM_FORMAT: 'Format enum API/MQTT',
|
||||
INDEX: 'Index',
|
||||
ENABLE_PARASITE: 'Activer la puissance parasite',
|
||||
LOGGING: 'Journal',
|
||||
LOG_HEX: 'Enregistrer les télégrammes EMS en hexadécimal',
|
||||
ENABLE_SYSLOG: 'Activer les logs système',
|
||||
LOG_LEVEL: 'Niveau de log',
|
||||
MARK_INTERVAL: 'Intervalle de marquage',
|
||||
SECONDS: 'secondes',
|
||||
MINUTES: 'minutes',
|
||||
HOURS: 'heures',
|
||||
RESTART: 'Redémarrer',
|
||||
RESTART_TEXT: 'EMS-ESP a besoin de redémarrer pour appliquer les changements de paramètres du système',
|
||||
RESTART_CONFIRM: 'Etes-vous sûr de vouloir redémarrer EMS-ESP ?',
|
||||
COMMAND: 'Commande',
|
||||
CUSTOMIZATIONS_RESTART: 'Toutes les personnalisations ont été supprimées. Redémarrage...',
|
||||
CUSTOMIZATIONS_FULL: 'Les entités sélectionnées ont dépassé la limite. Veuillez sauvegarder par lots',
|
||||
CUSTOMIZATIONS_SAVED: 'Personnalisations enregistrées',
|
||||
CUSTOMIZATIONS_HELP_1: 'Sélectionnez un appareil et personnalisez les options des entités ou cliquez pour renommer',
|
||||
CUSTOMIZATIONS_HELP_2: 'marquer comme favori',
|
||||
CUSTOMIZATIONS_HELP_3: 'désactiver l\'action d\'écriture',
|
||||
CUSTOMIZATIONS_HELP_4: 'exclure de MQTT et de l\'API',
|
||||
CUSTOMIZATIONS_HELP_5: 'cacher du Tableau de bord',
|
||||
SELECT_DEVICE: 'Sélectionnez un appareil',
|
||||
SET_ALL: 'tout régler',
|
||||
OPTIONS: 'Options',
|
||||
NAME: 'Nom',
|
||||
CUSTOMIZATIONS_RESET: 'Êtes-vous sûr de vouloir supprimer toutes les personnalisations, y compris les paramètres personnalisés des capteurs de température et analogiques ?',
|
||||
DEVICE_ENTITIES: 'Entités de l\'appareil',
|
||||
USER_CUSTOMIZATION: 'Personnalisation de l\'utilisateur',
|
||||
SUPPORT_INFORMATION: 'Information de support',
|
||||
CLICK_HERE: 'Cliquez ici',
|
||||
HELP_INFORMATION_1: 'Visitez le wiki en ligne pour obtenir des instructions sur la façon de configurer EMS-ESP.',
|
||||
HELP_INFORMATION_2: 'Pour une discussion en direct avec la communauté, rejoignez notre serveur Discord',
|
||||
HELP_INFORMATION_3: 'Pour demander une fonctionnalité ou signaler un problème',
|
||||
HELP_INFORMATION_4: 'n\'oubliez pas de télécharger et de joindre les informations relatives à votre système pour obtenir une réponse plus rapide lorsque vous signalez un problème',
|
||||
HELP_INFORMATION_5: 'EMS-ESP est un projet libre et open-source. Merci de soutenir son développement futur en lui donnant une étoile sur Github !',
|
||||
SUPPORT_INFO: 'Information de support',
|
||||
UPLOAD_OF: 'Upload de {0}',
|
||||
UPLOAD: 'Upload',
|
||||
DOWNLOAD: 'Download',
|
||||
ABORTED: 'annulé',
|
||||
FAILED: 'échoué',
|
||||
SUCCESSFUL: 'réussi',
|
||||
SYSTEM: 'Système',
|
||||
LOG_OF: '{0} Log',
|
||||
STATUS_OF: 'Statut {0}',
|
||||
UPLOAD_DOWNLOAD: 'Upload/Download',
|
||||
SYSTEM_VERSION_RUNNING: 'Vous utilisez actuellement la version',
|
||||
SYSTEM_APPLY_FIRMWARE: 'pour appliquer le nouveau firmware',
|
||||
CLOSE: 'Fermer',
|
||||
USE: 'Utiliser',
|
||||
FACTORY_RESET: 'Réinitialisation',
|
||||
SYSTEM_FACTORY_TEXT: 'L\'appareil a été réinitialisé et va maintenant redémarrer',
|
||||
SYSTEM_FACTORY_TEXT_DIALOG: 'Êtes-vous sûr de vouloir réinitialiser l\'appareil à ses paramètres d\'usine ?',
|
||||
VERSION_CHECK: 'Vérification de la version',
|
||||
THE_LATEST: 'La dernière',
|
||||
OFFICIAL: 'officielle',
|
||||
DEVELOPMENT: 'développement',
|
||||
VERSION_IS: 'version est',
|
||||
RELEASE_NOTES: 'notes de version',
|
||||
EMS_ESP_VER: 'Version EMS-ESP',
|
||||
PLATFORM: 'Appareil (Plateforme / SDK)',
|
||||
UPTIME: 'Durée de fonctionnement du système',
|
||||
CPU_FREQ: 'Fréquence du CPU',
|
||||
HEAP: 'Heap (Libre / Max Allouée)',
|
||||
PSRAM: 'PSRAM (Taille / Libre)',
|
||||
FLASH: 'Flash Chip (Taille / Vitesse)',
|
||||
APPSIZE: 'Application (Utilisée / Libre)',
|
||||
FILESYSTEM: 'File System (Utilisée / Libre)',
|
||||
BUFFER_SIZE: 'Taille du buffer',
|
||||
COMPACT: 'Compact',
|
||||
ENABLE_OTA: 'Activer les updates OTA',
|
||||
DOWNLOAD_CUSTOMIZATION_TEXT: 'Télécharger les personnalisations d\'entités',
|
||||
DOWNLOAD_SETTINGS_TEXT: 'Téléchargez les paramètres de l\'application. Soyez prudent lorsque vous partagez vos paramètres car ce fichier contient des mots de passe et d\'autres informations système sensibles.',
|
||||
UPLOAD_TEXT: 'Téléchargez un nouveau fichier de firmware (.bin), un fichier de paramètres ou de personnalisations (.json) ci-dessous, pour une validation optionnelle téléchargez d\'abord un fichier (.md5)',
|
||||
UPLOADING: 'Téléchargement',
|
||||
UPLOAD_DROP_TEXT: 'Déposer le fichier ou cliquer ici',
|
||||
ERROR: 'Erreur inattendue, veuillez réessayer',
|
||||
TIME_SET: 'Time set',
|
||||
MANAGE_USERS: 'Gérer les utilisateurs',
|
||||
IS_ADMIN: 'admin',
|
||||
USER_WARNING: 'Vous devez avoir au moins un utilisateur admin configuré',
|
||||
ADD: 'Ajouter',
|
||||
ACCESS_TOKEN_FOR: 'Jeton d\'accès pour',
|
||||
ACCESS_TOKEN_TEXT: 'Le jeton ci-dessous est utilisé avec les appels d\'API REST qui nécessitent une autorisation. Il peut être passé soit en tant que jeton Bearer dans l\'en-tête Authorization, soit dans le paramètre de requête URL access_token.',
|
||||
GENERATING_TOKEN: 'Génération de jeton',
|
||||
USER: 'Utilisateur',
|
||||
MODIFY: 'Modifier',
|
||||
SU_TEXT: 'Le mot de passe su (super utilisateur) est utilisé pour signer les jetons d\'authentification et activer les privilèges d\'administrateur dans la console.',
|
||||
NOT_ENABLED: 'Non activé',
|
||||
ERRORS_OF: 'Erreurs {0}',
|
||||
DISCONNECT_REASON: 'Raison de la déconnexion',
|
||||
ENABLE_MQTT: 'Activer le MQTT',
|
||||
BROKER: 'Broker',
|
||||
CLIENT: 'Client',
|
||||
BASE_TOPIC: 'Base',
|
||||
OPTIONAL: 'Optionnel',
|
||||
FORMATTING: 'Mise en forme',
|
||||
MQTT_FORMAT: 'Format du Topic/Payload',
|
||||
MQTT_NEST_1: 'Englobé dans un topic unique',
|
||||
MQTT_NEST_2: 'En tant que topics individuels',
|
||||
MQTT_RESPONSE: 'Publier le résultat des commandes dans un topic `response`',
|
||||
MQTT_PUBLISH_TEXT_1: 'Publier des topics à valeur unique sur changement',
|
||||
MQTT_PUBLISH_TEXT_2: 'Publier vers des topics de commande (ioBroker)',
|
||||
MQTT_PUBLISH_TEXT_3: 'Activer la découverte MQTT (Home Assistant, Domoticz)',
|
||||
MQTT_PUBLISH_TEXT_4: 'Préfixe pour les topics découverte',
|
||||
MQTT_PUBLISH_INTERVALS: 'Intervalles de publication',
|
||||
MQTT_INT_BOILER: 'Chaudières et pompes à chaleur',
|
||||
MQTT_INT_THERMOSTATS: 'Thermostats',
|
||||
MQTT_INT_SOLAR: 'Modules solaires',
|
||||
MQTT_INT_MIXER: 'Modules mélangeurs',
|
||||
MQTT_INT_HEARTBEAT: 'Battements',
|
||||
MQTT_QUEUE: 'Queue MQTT',
|
||||
DEFAULT: 'Défaut',
|
||||
MQTT_MULTIPLE_INSTANCES: 'Activer plusieurs instances de EMS-ESP',
|
||||
MQTT_CLEAN_SESSION: 'Flag Clean Session',
|
||||
MQTT_RETAIN_FLAG: 'Toujours activer le Retain Flag',
|
||||
INACTIVE: 'Inactif',
|
||||
ACTIVE: 'Actif',
|
||||
UNKNOWN: 'Inconnu',
|
||||
SET_TIME: 'Définir l\'heure',
|
||||
SET_TIME_TEXT: 'Entrer la date et l\'heure locale ci-dessous pour régler l\'heure',
|
||||
LOCAL_TIME: 'Heure locale',
|
||||
UTC_TIME: 'Heure UTC',
|
||||
ENABLE_NTP: 'Activer le NTP',
|
||||
NTP_SERVER: 'Serveur NTP',
|
||||
TIME_ZONE: 'Fuseau horaire',
|
||||
ACCESS_POINT: 'Point d\'accès',
|
||||
AP_PROVIDE: 'Activer le Point d\'Accès',
|
||||
AP_PROVIDE_TEXT_1: 'toujours',
|
||||
AP_PROVIDE_TEXT_2: 'quand le WiFi est déconnecté',
|
||||
AP_PROVIDE_TEXT_3: 'jamais',
|
||||
AP_PREFERRED_CHANNEL: 'Canal préféré',
|
||||
AP_HIDE_SSID: 'Cacher le SSID',
|
||||
AP_CLIENTS: 'AP Clients',
|
||||
AP_MAX_CLIENTS: 'Max Clients',
|
||||
AP_LOCAL_IP: 'IP locale',
|
||||
NETWORK_SCAN: 'Scanner les réseaux WiFi',
|
||||
IDLE: 'Inactif',
|
||||
LOST: 'Perdu',
|
||||
SCANNING: 'Scan en cours',
|
||||
SCAN_AGAIN: 'Rescanner',
|
||||
NETWORK_SCANNER: 'Scan réseau',
|
||||
NETWORK_NO_WIFI: 'Pas de réseau WiFi trouvé',
|
||||
NETWORK_BLANK_SSID: 'laisser vide pour désactiver le WiFi',
|
||||
TX_POWER: 'Puissance Tx',
|
||||
HOSTNAME: 'Nom d\'hôte',
|
||||
NETWORK_DISABLE_SLEEP: 'Désactiver le mode veille du WiFi',
|
||||
NETWORK_LOW_BAND: 'Utiliser une bande passante WiFi plus faible',
|
||||
NETWORK_USE_DNS: 'Activer le service mDNS',
|
||||
NETWORK_ENABLE_CORS: 'Activer CORS',
|
||||
NETWORK_CORS_ORIGIN: 'Origine CORS',
|
||||
NETWORK_ENABLE_IPV6: 'Activer le support de l\'IPv6',
|
||||
NETWORK_FIXED_IP: 'Utiliser une adresse IP fixe',
|
||||
NETWORK_GATEWAY: 'Passerelle',
|
||||
NETWORK_SUBNET: 'Masque de sous-réseau',
|
||||
NETWORK_DNS: 'Serveurs DNS',
|
||||
ADDRESS_OF: 'Adresse de {0}',
|
||||
ADMIN: 'Admin',
|
||||
GUEST: 'Invité',
|
||||
NEW: 'Nouveau',
|
||||
NEW_NAME_OF: 'Nouveau nom de {0}',
|
||||
ENTITY: 'entité',
|
||||
MIN: 'min',
|
||||
MAX: 'max'
|
||||
};
|
||||
|
||||
export default fr;
|
||||
@@ -367,6 +367,7 @@ const SettingsApplication: FC = () => {
|
||||
<MenuItem value="se">Svenska (SE)</MenuItem>
|
||||
<MenuItem value="pl">Polski (PL)</MenuItem>
|
||||
<MenuItem value="no">Norsk (NO)</MenuItem>
|
||||
<MenuItem value="fr">Français (FR)</MenuItem>
|
||||
</ValidatedTextField>
|
||||
</Box>
|
||||
{data.led_gpio !== 0 && (
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -46,7 +46,7 @@ Adafruit_NeoPixel pixels(1, 7, NEO_GRB + NEO_KHZ800);
|
||||
namespace emsesp {
|
||||
|
||||
// Languages supported. Note: the order is important and must match locale_translations.h
|
||||
const char * const languages[] = {EMSESP_LOCALE_EN, EMSESP_LOCALE_DE, EMSESP_LOCALE_NL, EMSESP_LOCALE_SE, EMSESP_LOCALE_PL, EMSESP_LOCALE_NO};
|
||||
const char * const languages[] = {EMSESP_LOCALE_EN, EMSESP_LOCALE_DE, EMSESP_LOCALE_NL, EMSESP_LOCALE_SE, EMSESP_LOCALE_PL, EMSESP_LOCALE_NO, EMSESP_LOCALE_FR};
|
||||
|
||||
size_t num_languages = sizeof(languages) / sizeof(const char *);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user