From f3c323bd25cf3f70bd2d22091225cec54b9bd373 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Wed, 21 Jan 2026 08:43:09 +0100 Subject: [PATCH] fix: better support for secret manager --- README.fr.md | 57 +-- README.md | 57 +-- locale/fr/LC_MESSAGES/rougail.po | 408 +++++++++-------- locale/rougail.pot | 433 ++++++++++--------- src/rougail/annotator/property.py | 2 +- src/rougail/annotator/variable.py | 2 + src/rougail/locale/fr/LC_MESSAGES/rougail.mo | Bin 26856 -> 27377 bytes src/rougail/user_data.py | 2 +- 8 files changed, 507 insertions(+), 454 deletions(-) diff --git a/README.fr.md b/README.fr.md index 6b73c8292..4b0b038b4 100644 --- a/README.fr.md +++ b/README.fr.md @@ -4,21 +4,22 @@ include_toc: true --- [🇬🇧 (EN)](README.md) - [🇫🇷 (FR)](README.fr.md) -| Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur | -|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------| -| **default_structural_format_version**
**Ligne de commande** : -v, --default_structural_format_version
**Variable d'environnement** : DEFAULT_STRUCTURAL_FORMAT_VERSION | Version par défaut du format des fichiers de structure.
Cette valeur n'est utilisée que si la version n'est pas définie dans le fichier de structure. | | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** :
• 1.0
• 1.1
• null | -| **functions_files**
**Ligne de commande** : -c, --functions_files
**Variable d'environnement** : FUNCTIONS_FILES | Fichier avec les fonctions.
Ce fichier contient des filtres et des fonctions Jinja2 supplémentaires utilisables dans les fichiers de structure. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`
• le nom de fichier peut ĂŞtre une chemin relatif
• le fichier doit exister
• type de fichier autorisĂ©: "file". | -| **modes_level**
**Ligne de commande** : --modes_level
**Variable d'environnement** : MODES_LEVEL | Tous les niveaux de modes valides. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique` | -| **default_family_mode**
**Variable d'environnement** : DEFAULT_FAMILY_MODE | Mode par défaut pour une famille. | le premier défini dans "[Tous les niveaux de modes valides](#modes_level)" | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | Ce mode doit être disponible dans "[Tous les niveaux de modes valides](#modes_level)". | -| **default_variable_mode**
**Variable d'environnement** : DEFAULT_VARIABLE_MODE | Mode par défaut pour une variable. | si la variable "[Tous les niveaux de modes valides](#modes_level)" est définit, la valeur par défaut est le second élément disponible, sinon, le premier | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | Ce mode doit être disponible dans "[Tous les niveaux de modes valides](#modes_level)". | -| **base_option_name**
**Variable d'environnement** : BASE_OPTION_NAME | Nom de l'option pour l'option de base. | baseoption | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | -| **export_with_import**
**Variable d'environnement** : EXPORT_WITH_IMPORT | Dans le fichier de cache, ne pas importer Tiramisu et autres dépendances. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | -| **tiramisu_cache**
**Ligne de commande** : -t, --tiramisu_cache
**Variable d'environnement** : TIRAMISU_CACHE | Enregistrer le cache Tiramisu dans le fichier.
Ce fichier contient les instructions Tiramisu utilisé en interne pour charger les variables.
Ce fichier peut ĂŞtre utilisĂ© pour le dĂ©bogage. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | • le nom de fichier peut ĂŞtre une chemin relatif
• type de fichier autorisĂ©: "file". | -| **internal_functions**
**Variable d'environnement** : INTERNAL_FUNCTIONS | Nom des fonctions internes qu'il est possible d'utiliser comme fonction. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | | -| **extra_annotators**
**Variable d'environnement** : EXTRA_ANNOTATORS | Nom des annotators supplémentaires. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | | -| **suffix**
**Variable d'environnement** : SUFFIX | Suffix ajouté pour généré le nom des options. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | -| **force_optional**
**Ligne de commande** :
• --force_optional
• --no-force_optional
**Variable d'environnement** : FORCE_OPTIONAL | Toutes les variables dans un calcul sont optionnelles. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | `standard` | | -| **load_unexist_redefine**
**Variable d'environnement** : LOAD_UNEXIST_REDEFINE | Charger les variables redéfinis même si elles n'existe pas. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | +| Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur | +|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **default_structural_format_version**
**Ligne de commande** :
-v, --default_structural_format_version
**Variable d'environnement** : DEFAULT_STRUCTURAL_FORMAT_VERSION | Version par défaut du format des fichiers de structure.
Cette valeur n'est utilisée que si la version n'est pas définie dans le fichier de structure. | | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** :
• 1.0
• 1.1
• null | +| **types**
**Ligne de commande** :
--types
**Variable d'environnement** : TYPES | Fichier avec types personnalisés.
Ce fichier contient des types personnalisés au format Rougail pour les fichiers de structure. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`
• le nom de fichier peut ĂŞtre une chemin relatif
• le fichier doit exister
• type de fichier autorisĂ©: "fichier" et "rĂ©pertoire". | +| **functions_files**
**Ligne de commande** :
--functions_files
**Variable d'environnement** : FUNCTIONS_FILES | Fichier avec les fonctions.
Ce fichier contient des filtres et des fonctions Jinja2 supplémentaires utilisables dans les fichiers de structure. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`
• le nom de fichier peut ĂŞtre une chemin relatif
• le fichier doit exister
• type de fichier autorisĂ©: "file". | +| **modes_level**
**Ligne de commande** :
--modes_level
**Variable d'environnement** : MODES_LEVEL | Tous les niveaux de modes valides. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique` | +| **default_family_mode**
**Variable d'environnement** : DEFAULT_FAMILY_MODE | Mode par défaut pour une famille. | le premier défini dans "[Tous les niveaux de modes valides](#modes_level)" | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | Ce mode doit être disponible dans "[Tous les niveaux de modes valides](#modes_level)". | +| **default_variable_mode**
**Variable d'environnement** : DEFAULT_VARIABLE_MODE | Mode par défaut pour une variable. | si la variable "[Tous les niveaux de modes valides](#modes_level)" est définit, la valeur par défaut est le second élément disponible, sinon, le premier | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | Ce mode doit être disponible dans "[Tous les niveaux de modes valides](#modes_level)". | +| **base_option_name**
**Variable d'environnement** : BASE_OPTION_NAME | Nom de l'option pour l'option de base. | baseoption | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | +| **export_with_import**
**Variable d'environnement** : EXPORT_WITH_IMPORT | Dans le fichier de cache, ne pas importer Tiramisu et autres dépendances. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | +| **tiramisu_cache**
**Ligne de commande** :
-t, --tiramisu_cache
**Variable d'environnement** : TIRAMISU_CACHE | Enregistrer le cache Tiramisu dans le fichier.
Ce fichier contient les instructions Tiramisu utilisé en interne pour charger les variables.
Ce fichier peut ĂŞtre utilisĂ© pour le dĂ©bogage. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | • le nom de fichier peut ĂŞtre une chemin relatif
• type de fichier autorisĂ©: "file". | +| **internal_functions**
**Variable d'environnement** : INTERNAL_FUNCTIONS | Nom des fonctions internes qu'il est possible d'utiliser comme fonction. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | | +| **extra_annotators**
**Variable d'environnement** : EXTRA_ANNOTATORS | Nom des annotators supplémentaires. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | | +| **suffix**
**Variable d'environnement** : SUFFIX | Suffix ajouté pour généré le nom des options. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | +| **force_optional**
**Ligne de commande** :
• --force_optional
• --no-force_optional
**Variable d'environnement** : FORCE_OPTIONAL | Toutes les variables dans un calcul sont optionnelles. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | `standard` | | +| **load_unexist_redefine**
**Variable d'environnement** : LOAD_UNEXIST_REDEFINE | Charger les variables redéfinis même si elles n'existe pas. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | ## Le gestionnaire de secret @@ -27,9 +28,9 @@ include_toc: true > **Chemin** : secret_manager\ > `standard` -| Variable | Description | Valeur par défaut | Type | Contrôle des accès | -|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------|--------------------------------------------------------------------------------------------------|----------------------| -| **secret_manager.pattern**
**Ligne de commande** : --secret_manager.pattern
**Variable d'environnement** : SECRET_MANAGER.PATTERN | Le modèle de secret permettant de construire le nom de l'élément recherché dans le gestionnaire de secrets.
Le modèle est au format Jinja2. | {{ project }} - {{ environment }} - {{ service }} - {{ user }} | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | `standard` | +| Variable | Description | Valeur par défaut | Type | Contrôle des accès | +|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------|--------------------------------------------------------------------------------------------------|----------------------| +| **secret_manager.pattern**
**Ligne de commande** :
--secret_manager.pattern
**Variable d'environnement** : SECRET_MANAGER.PATTERN | Le modèle de secret permettant de construire le nom de l'élément recherché dans le gestionnaire de secrets.
Le modèle est au format Jinja2. | {{ project }} - {{ environment }} - {{ service }} - {{ user }} | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | `standard` | ## Load and exporter steps @@ -38,11 +39,11 @@ include_toc: true > **Chemin** : step\ > `standard` -| Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur | -|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------|---------------------|--------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **step.structural**
**Variable d'environnement** : STEP.STRUCTURAL | SĂ©lection pour structure. | • directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | **Choix** :
• directory
• string
• commandline
• risotto
• bitwarden | -| **step.user_data**
**Ligne de commande** : -u, --step.user_data
**Variable d'environnement** : STEP.USER_DATA | Sélection pour données utilisateur. | | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` *`désactivé`*
**Désactivé** : les sorties "doc" n'autorisent pas des données utilisateur | `unique`
**Choix** :
• yaml
• environment
• commandline
• ansible
• questionary
• risotto
• bitwarden | -| **step.output**
**Ligne de commande** : -o, --step.output
**Variable d'environnement** : STEP.OUTPUT | Sélection pour sortie. | display | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | `standard` | **Choix** :
• display
• json
• doc
• table
• ansible | +| Variable | Description | Valeur par dĂ©faut | Type | ContrĂ´le des accès | Validateur | +|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------|---------------------|--------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **step.structural**
**Variable d'environnement** : STEP.STRUCTURAL | SĂ©lection pour structure. | • directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | **Choix** :
• directory
• string
• commandline
• risotto | +| **step.user_data**
**Ligne de commande** :
-u, --step.user_data
**Variable d'environnement** : STEP.USER_DATA | Sélection pour données utilisateur. | | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` *`désactivé`*
**Désactivé** : les sorties "doc" n'autorisent pas des données utilisateur | `unique`
**Choix** :
• yaml
• environment
• commandline
• ansible
• questionary
• risotto
• bitwarden | +| **step.output**
**Ligne de commande** :
-o, --step.output
**Variable d'environnement** : STEP.OUTPUT | Sélection pour sortie. | display | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | `standard` | **Choix** :
• display
• json
• doc
• table
• ansible | | Variable | Description | Valeur par dĂ©faut | Type | ContrĂ´le des accès | |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------|---------------------|---------------------------------------------------------------------------------------------------|----------------------| @@ -67,7 +68,7 @@ include_toc: true |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|----------------------------------|-----------------------------------------------------------------------------------------------|----------------------|----------------------------------------------------------------| | **default_params.unix_filename.allow_relative**
**Ligne de commande** :
• --default_params.unix_filename.allow_relative
• --default_params.unix_filename.no-allow_relative
**Variable d'environnement** : DEFAULT_PARAMS.UNIX_FILENAME.ALLOW_RELATIVE | Le nom de fichier peut ĂŞtre une chemin relatif. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.unix_filename.test_existence**
**Ligne de commande** :
• --default_params.unix_filename.test_existence
• --default_params.unix_filename.no-test_existence
**Variable d'environnement** : DEFAULT_PARAMS.UNIX_FILENAME.TEST_EXISTENCE | Le fichier doit exister. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | -| **default_params.unix_filename.types**
**Ligne de commande** : --default_params.unix_filename.types
**Variable d'environnement** : DEFAULT_PARAMS.UNIX_FILENAME.TYPES | Type de fichier autorisĂ©. | • file
• directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`
**Choix** :
• file
• directory | +| **default_params.unix_filename.types**
**Ligne de commande** :
--default_params.unix_filename.types
**Variable d'environnement** : DEFAULT_PARAMS.UNIX_FILENAME.TYPES | Type de fichier autorisĂ©. | • file
• directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`
**Choix** :
• file
• directory | ### IP @@ -130,7 +131,7 @@ include_toc: true | Variable | Description | Valeur par dĂ©faut | Type | ContrĂ´le des accès | Validateur | |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|---------------------|-------------------------------------------------------------------------------------|----------------------|-------------------------------------------------------------------------------------------| -| **default_params.netbios.type**
**Ligne de commande** : --default_params.netbios.type
**Variable d'environnement** : DEFAULT_PARAMS.NETBIOS.TYPE | Type de nom de domaine. | netbios | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** :
• domainname
• netbios
• hostname
• null | +| **default_params.netbios.type**
**Ligne de commande** :
--default_params.netbios.type
**Variable d'environnement** : DEFAULT_PARAMS.NETBIOS.TYPE | Type de nom de domaine. | netbios | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** :
• domainname
• netbios
• hostname
• null | | **default_params.netbios.allow_without_dot**
**Ligne de commande** :
• --default_params.netbios.allow_without_dot
• --default_params.netbios.no-allow_without_dot
**Variable d'environnement** : DEFAULT_PARAMS.NETBIOS.ALLOW_WITHOUT_DOT | Le nom de domaine peut ĂŞtre un nom d'hĂ´te. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.netbios.test_existence**
**Ligne de commande** :
• --default_params.netbios.test_existence
• --default_params.netbios.no-test_existence
**Variable d'environnement** : DEFAULT_PARAMS.NETBIOS.TEST_EXISTENCE | Le nom de domaine doit exister. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.netbios.allow_ip**
**Ligne de commande** :
• --default_params.netbios.allow_ip
• --default_params.netbios.no-allow_ip
**Variable d'environnement** : DEFAULT_PARAMS.NETBIOS.ALLOW_IP | Le nom de domaine peut être une IP. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | @@ -146,7 +147,7 @@ include_toc: true | Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur | |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|---------------------|-------------------------------------------------------------------------------------|----------------------|-------------------------------------------------------------------------------------------| -| **default_params.domainname.type**
**Ligne de commande** : --default_params.domainname.type
**Variable d'environnement** : DEFAULT_PARAMS.DOMAINNAME.TYPE | Type de nom de domaine. | domainname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** :
• domainname
• netbios
• hostname
• null | +| **default_params.domainname.type**
**Ligne de commande** :
--default_params.domainname.type
**Variable d'environnement** : DEFAULT_PARAMS.DOMAINNAME.TYPE | Type de nom de domaine. | domainname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** :
• domainname
• netbios
• hostname
• null | | **default_params.domainname.allow_without_dot**
**Ligne de commande** :
• --default_params.domainname.allow_without_dot
• --default_params.domainname.no-allow_without_dot
**Variable d'environnement** : DEFAULT_PARAMS.DOMAINNAME.ALLOW_WITHOUT_DOT | Le nom de domaine peut ĂŞtre un nom d'hĂ´te. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.domainname.test_existence**
**Ligne de commande** :
• --default_params.domainname.test_existence
• --default_params.domainname.no-test_existence
**Variable d'environnement** : DEFAULT_PARAMS.DOMAINNAME.TEST_EXISTENCE | Le nom de domaine doit exister. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.domainname.allow_ip**
**Ligne de commande** :
• --default_params.domainname.allow_ip
• --default_params.domainname.no-allow_ip
**Variable d'environnement** : DEFAULT_PARAMS.DOMAINNAME.ALLOW_IP | Le nom de domaine peut être une IP. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | @@ -162,7 +163,7 @@ include_toc: true | Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur | |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|---------------------|-------------------------------------------------------------------------------------|----------------------|-------------------------------------------------------------------------------------------| -| **default_params.hostname.type**
**Ligne de commande** : --default_params.hostname.type
**Variable d'environnement** : DEFAULT_PARAMS.HOSTNAME.TYPE | Type de nom de domaine. | hostname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** :
• domainname
• netbios
• hostname
• null | +| **default_params.hostname.type**
**Ligne de commande** :
--default_params.hostname.type
**Variable d'environnement** : DEFAULT_PARAMS.HOSTNAME.TYPE | Type de nom de domaine. | hostname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** :
• domainname
• netbios
• hostname
• null | | **default_params.hostname.allow_without_dot**
**Ligne de commande** :
• --default_params.hostname.allow_without_dot
• --default_params.hostname.no-allow_without_dot
**Variable d'environnement** : DEFAULT_PARAMS.HOSTNAME.ALLOW_WITHOUT_DOT | Le nom de domaine peut ĂŞtre un nom d'hĂ´te. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.hostname.test_existence**
**Ligne de commande** :
• --default_params.hostname.test_existence
• --default_params.hostname.no-test_existence
**Variable d'environnement** : DEFAULT_PARAMS.HOSTNAME.TEST_EXISTENCE | Le nom de domaine doit exister. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.hostname.allow_ip**
**Ligne de commande** :
• --default_params.hostname.allow_ip
• --default_params.hostname.no-allow_ip
**Variable d'environnement** : DEFAULT_PARAMS.HOSTNAME.ALLOW_IP | Le nom de domaine peut être une IP. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | @@ -178,7 +179,7 @@ include_toc: true | Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur | |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|---------------------|-------------------------------------------------------------------------------------|----------------------|-------------------------------------------------------------------------------------------| -| **default_params.web_address.type**
**Ligne de commande** : --default_params.web_address.type
**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.TYPE | Type de nom de domaine. | domainname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** :
• domainname
• netbios
• hostname
• null | +| **default_params.web_address.type**
**Ligne de commande** :
--default_params.web_address.type
**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.TYPE | Type de nom de domaine. | domainname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** :
• domainname
• netbios
• hostname
• null | | **default_params.web_address.allow_without_dot**
**Ligne de commande** :
• --default_params.web_address.allow_without_dot
• --default_params.web_address.no-allow_without_dot
**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_WITHOUT_DOT | Le nom de domaine peut ĂŞtre un nom d'hĂ´te. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.web_address.test_existence**
**Ligne de commande** :
• --default_params.web_address.test_existence
• --default_params.web_address.no-test_existence
**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.TEST_EXISTENCE | Le nom de domaine doit exister. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.web_address.allow_ip**
**Ligne de commande** :
• --default_params.web_address.allow_ip
• --default_params.web_address.no-allow_ip
**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_IP | Le nom de domaine peut être une IP. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | diff --git a/README.md b/README.md index 8bbee00b8..a301012ec 100644 --- a/README.md +++ b/README.md @@ -4,21 +4,22 @@ include_toc: true --- [🇬🇧 (EN)](README.md) - [🇫🇷 (FR)](README.fr.md) -| Variable | Description | Default value | Type | Access control | Validator | -|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|------------------|----------------------------------------------------------------------------------------------------------------------------------| -| **default_structural_format_version**
**Command line**: -v, --default_structural_format_version
**Environment variable**: DEFAULT_STRUCTURAL_FORMAT_VERSION | Default version of the structural file format.
This value is only used if the version is not set in the structural file. | | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**:
• 1.0
• 1.1
• null | -| **functions_files**
**Command line**: -c, --functions_files
**Environment variable**: FUNCTIONS_FILES | File with functions.
This file contains filters and additional Jinja2 functions usable in structure files. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`
• this filename could be a relative path
• this file must exist
• file type allowed: "file". | -| **modes_level**
**Command line**: --modes_level
**Environment variable**: MODES_LEVEL | All modes level available. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique` | -| **default_family_mode**
**Environment variable**: DEFAULT_FAMILY_MODE | Default mode for a family. | the first one defined in "[All modes level available](#modes_level)" | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | This mode must be available in "[All modes level available](#modes_level)". | -| **default_variable_mode**
**Environment variable**: DEFAULT_VARIABLE_MODE | Default mode for a variable. | if the variable "[All modes level available](#modes_level)" is defined, the default value is the second available element, otherwise, the first | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | This mode must be available in "[All modes level available](#modes_level)". | -| **base_option_name**
**Environment variable**: BASE_OPTION_NAME | Option name for the base option. | baseoption | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | -| **export_with_import**
**Environment variable**: EXPORT_WITH_IMPORT | In cache file, do not importation of Tiramisu and other dependencies. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | -| **tiramisu_cache**
**Command line**: -t, --tiramisu_cache
**Environment variable**: TIRAMISU_CACHE | Store Tiramisu cache filename.
This file contains the Tiramisu instructions used internally to load the variables.
This file can be used for debugging. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | • this filename could be a relative path
• file type allowed: "file". | -| **internal_functions**
**Environment variable**: INTERNAL_FUNCTIONS | Name of internal functions that we can use as a function. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | | -| **extra_annotators**
**Environment variable**: EXTRA_ANNOTATORS | Name of extra annotators. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | | -| **suffix**
**Environment variable**: SUFFIX | Suffix add to generated options name. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | -| **force_optional**
**Command line**:
• --force_optional
• --no-force_optional
**Environment variable**: FORCE_OPTIONAL | Every variables in calculation are optionals. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | `standard` | | -| **load_unexist_redefine**
**Environment variable**: LOAD_UNEXIST_REDEFINE | Loads redefine variables even if there don't already exists. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | +| Variable | Description | Default value | Type | Access control | Validator | +|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|------------------|--------------------------------------------------------------------------------------------------------------------------------------------------| +| **default_structural_format_version**
**Command line**:
-v, --default_structural_format_version
**Environment variable**: DEFAULT_STRUCTURAL_FORMAT_VERSION | Default version of the structural file format.
This value is only used if the version is not set in the structural file. | | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**:
• 1.0
• 1.1
• null | +| **types**
**Command line**:
--types
**Environment variable**: TYPES | File with personalize types.
This file contains personalize types in Rougail format for structure files. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`
• this filename could be a relative path
• this file must exist
• file type allowed: "directory" and "file". | +| **functions_files**
**Command line**:
--functions_files
**Environment variable**: FUNCTIONS_FILES | File with functions.
This file contains filters and additional Jinja2 functions usable in structure files. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`
• this filename could be a relative path
• this file must exist
• file type allowed: "file". | +| **modes_level**
**Command line**:
--modes_level
**Environment variable**: MODES_LEVEL | All modes level available. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique` | +| **default_family_mode**
**Environment variable**: DEFAULT_FAMILY_MODE | Default mode for a family. | the first one defined in "[All modes level available](#modes_level)" | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | This mode must be available in "[All modes level available](#modes_level)". | +| **default_variable_mode**
**Environment variable**: DEFAULT_VARIABLE_MODE | Default mode for a variable. | if the variable "[All modes level available](#modes_level)" is defined, the default value is the second available element, otherwise, the first | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | This mode must be available in "[All modes level available](#modes_level)". | +| **base_option_name**
**Environment variable**: BASE_OPTION_NAME | Option name for the base option. | baseoption | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | +| **export_with_import**
**Environment variable**: EXPORT_WITH_IMPORT | In cache file, do not importation of Tiramisu and other dependencies. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | +| **tiramisu_cache**
**Command line**:
-t, --tiramisu_cache
**Environment variable**: TIRAMISU_CACHE | Store Tiramisu cache filename.
This file contains the Tiramisu instructions used internally to load the variables.
This file can be used for debugging. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | • this filename could be a relative path
• file type allowed: "file". | +| **internal_functions**
**Environment variable**: INTERNAL_FUNCTIONS | Name of internal functions that we can use as a function. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | | +| **extra_annotators**
**Environment variable**: EXTRA_ANNOTATORS | Name of extra annotators. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | | +| **suffix**
**Environment variable**: SUFFIX | Suffix add to generated options name. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | +| **force_optional**
**Command line**:
• --force_optional
• --no-force_optional
**Environment variable**: FORCE_OPTIONAL | Every variables in calculation are optionals. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | `standard` | | +| **load_unexist_redefine**
**Environment variable**: LOAD_UNEXIST_REDEFINE | Loads redefine variables even if there don't already exists. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | ## The secret manager @@ -27,9 +28,9 @@ include_toc: true > **Path**: secret_manager\ > `standard` -| Variable | Description | Default value | Type | Access control | -|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------|------------------------------------------------------------------------------------------------|------------------| -| **secret_manager.pattern**
**Command line**: --secret_manager.pattern
**Environment variable**: SECRET_MANAGER.PATTERN | The secret pattern to constructing the name of the item searched for in the secret manager.
The pattern is in Jinja2 format. | {{ project }} - {{ environment }} - {{ service }} - {{ user }} | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | `standard` | +| Variable | Description | Default value | Type | Access control | +|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------|------------------------------------------------------------------------------------------------|------------------| +| **secret_manager.pattern**
**Command line**:
--secret_manager.pattern
**Environment variable**: SECRET_MANAGER.PATTERN | The secret pattern to constructing the name of the item searched for in the secret manager.
The pattern is in Jinja2 format. | {{ project }} - {{ environment }} - {{ service }} - {{ user }} | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | `standard` | ## Load and exporter steps @@ -38,11 +39,11 @@ include_toc: true > **Path**: step\ > `standard` -| Variable | Description | Default value | Type | Access control | Validator | -|-------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------|------------------|------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **step.structural**
**Environment variable**: STEP.STRUCTURAL | Select for structural. | • directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | **Choices**:
• directory
• string
• commandline
• risotto
• bitwarden | -| **step.user_data**
**Command line**: -u, --step.user_data
**Environment variable**: STEP.USER_DATA | Select for user datas. | | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` *`disabled`*
**Disabled**: outputs "doc" did not allow user data | `unique`
**Choices**:
• yaml
• environment
• commandline
• ansible
• questionary
• risotto
• bitwarden | -| **step.output**
**Command line**: -o, --step.output
**Environment variable**: STEP.OUTPUT | Select for output. | display | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | `standard` | **Choices**:
• display
• json
• doc
• table
• ansible | +| Variable | Description | Default value | Type | Access control | Validator | +|------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------|------------------|------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **step.structural**
**Environment variable**: STEP.STRUCTURAL | Select for structural. | • directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | **Choices**:
• directory
• string
• commandline
• risotto | +| **step.user_data**
**Command line**:
-u, --step.user_data
**Environment variable**: STEP.USER_DATA | Select for user datas. | | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` *`disabled`*
**Disabled**: outputs "doc" did not allow user data | `unique`
**Choices**:
• yaml
• environment
• commandline
• ansible
• questionary
• risotto
• bitwarden | +| **step.output**
**Command line**:
-o, --step.output
**Environment variable**: STEP.OUTPUT | Select for output. | display | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | `standard` | **Choices**:
• display
• json
• doc
• table
• ansible | | Variable | Description | Default value | Type | Access control | |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------|-----------------|-------------------------------------------------------------------------------------------------|------------------| @@ -67,7 +68,7 @@ include_toc: true |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|----------------------------------|-----------------------------------------------------------------------------------------------|------------------|-----------------------------------------------------------------| | **default_params.unix_filename.allow_relative**
**Command line**:
• --default_params.unix_filename.allow_relative
• --default_params.unix_filename.no-allow_relative
**Environment variable**: DEFAULT_PARAMS.UNIX_FILENAME.ALLOW_RELATIVE | This filename could be a relative path. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.unix_filename.test_existence**
**Command line**:
• --default_params.unix_filename.test_existence
• --default_params.unix_filename.no-test_existence
**Environment variable**: DEFAULT_PARAMS.UNIX_FILENAME.TEST_EXISTENCE | This file must exist. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | -| **default_params.unix_filename.types**
**Command line**: --default_params.unix_filename.types
**Environment variable**: DEFAULT_PARAMS.UNIX_FILENAME.TYPES | File type allowed. | • file
• directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`
**Choices**:
• file
• directory | +| **default_params.unix_filename.types**
**Command line**:
--default_params.unix_filename.types
**Environment variable**: DEFAULT_PARAMS.UNIX_FILENAME.TYPES | File type allowed. | • file
• directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`
**Choices**:
• file
• directory | ### IP @@ -130,7 +131,7 @@ include_toc: true | Variable | Description | Default value | Type | Access control | Validator | |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------|-----------------|-------------------------------------------------------------------------------------|------------------|--------------------------------------------------------------------------------------------| -| **default_params.netbios.type**
**Command line**: --default_params.netbios.type
**Environment variable**: DEFAULT_PARAMS.NETBIOS.TYPE | Type of domainname. | netbios | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**:
• domainname
• netbios
• hostname
• null | +| **default_params.netbios.type**
**Command line**:
--default_params.netbios.type
**Environment variable**: DEFAULT_PARAMS.NETBIOS.TYPE | Type of domainname. | netbios | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**:
• domainname
• netbios
• hostname
• null | | **default_params.netbios.allow_without_dot**
**Command line**:
• --default_params.netbios.allow_without_dot
• --default_params.netbios.no-allow_without_dot
**Environment variable**: DEFAULT_PARAMS.NETBIOS.ALLOW_WITHOUT_DOT | The domain name can be a hostname. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.netbios.test_existence**
**Command line**:
• --default_params.netbios.test_existence
• --default_params.netbios.no-test_existence
**Environment variable**: DEFAULT_PARAMS.NETBIOS.TEST_EXISTENCE | The domain name must exist. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.netbios.allow_ip**
**Command line**:
• --default_params.netbios.allow_ip
• --default_params.netbios.no-allow_ip
**Environment variable**: DEFAULT_PARAMS.NETBIOS.ALLOW_IP | The domain name can be an IP. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | @@ -146,7 +147,7 @@ include_toc: true | Variable | Description | Default value | Type | Access control | Validator | |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------|-----------------|-------------------------------------------------------------------------------------|------------------|--------------------------------------------------------------------------------------------| -| **default_params.domainname.type**
**Command line**: --default_params.domainname.type
**Environment variable**: DEFAULT_PARAMS.DOMAINNAME.TYPE | Type of domainname. | domainname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**:
• domainname
• netbios
• hostname
• null | +| **default_params.domainname.type**
**Command line**:
--default_params.domainname.type
**Environment variable**: DEFAULT_PARAMS.DOMAINNAME.TYPE | Type of domainname. | domainname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**:
• domainname
• netbios
• hostname
• null | | **default_params.domainname.allow_without_dot**
**Command line**:
• --default_params.domainname.allow_without_dot
• --default_params.domainname.no-allow_without_dot
**Environment variable**: DEFAULT_PARAMS.DOMAINNAME.ALLOW_WITHOUT_DOT | The domain name can be a hostname. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.domainname.test_existence**
**Command line**:
• --default_params.domainname.test_existence
• --default_params.domainname.no-test_existence
**Environment variable**: DEFAULT_PARAMS.DOMAINNAME.TEST_EXISTENCE | The domain name must exist. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.domainname.allow_ip**
**Command line**:
• --default_params.domainname.allow_ip
• --default_params.domainname.no-allow_ip
**Environment variable**: DEFAULT_PARAMS.DOMAINNAME.ALLOW_IP | The domain name can be an IP. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | @@ -162,7 +163,7 @@ include_toc: true | Variable | Description | Default value | Type | Access control | Validator | |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------|-----------------|-------------------------------------------------------------------------------------|------------------|--------------------------------------------------------------------------------------------| -| **default_params.hostname.type**
**Command line**: --default_params.hostname.type
**Environment variable**: DEFAULT_PARAMS.HOSTNAME.TYPE | Type of domainname. | hostname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**:
• domainname
• netbios
• hostname
• null | +| **default_params.hostname.type**
**Command line**:
--default_params.hostname.type
**Environment variable**: DEFAULT_PARAMS.HOSTNAME.TYPE | Type of domainname. | hostname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**:
• domainname
• netbios
• hostname
• null | | **default_params.hostname.allow_without_dot**
**Command line**:
• --default_params.hostname.allow_without_dot
• --default_params.hostname.no-allow_without_dot
**Environment variable**: DEFAULT_PARAMS.HOSTNAME.ALLOW_WITHOUT_DOT | The domain name can be a hostname. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.hostname.test_existence**
**Command line**:
• --default_params.hostname.test_existence
• --default_params.hostname.no-test_existence
**Environment variable**: DEFAULT_PARAMS.HOSTNAME.TEST_EXISTENCE | The domain name must exist. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.hostname.allow_ip**
**Command line**:
• --default_params.hostname.allow_ip
• --default_params.hostname.no-allow_ip
**Environment variable**: DEFAULT_PARAMS.HOSTNAME.ALLOW_IP | The domain name can be an IP. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | @@ -178,7 +179,7 @@ include_toc: true | Variable | Description | Default value | Type | Access control | Validator | |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|-----------------|-------------------------------------------------------------------------------------|------------------|--------------------------------------------------------------------------------------------| -| **default_params.web_address.type**
**Command line**: --default_params.web_address.type
**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.TYPE | Type of domainname. | domainname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**:
• domainname
• netbios
• hostname
• null | +| **default_params.web_address.type**
**Command line**:
--default_params.web_address.type
**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.TYPE | Type of domainname. | domainname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**:
• domainname
• netbios
• hostname
• null | | **default_params.web_address.allow_without_dot**
**Command line**:
• --default_params.web_address.allow_without_dot
• --default_params.web_address.no-allow_without_dot
**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_WITHOUT_DOT | The domain name can be a hostname. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.web_address.test_existence**
**Command line**:
• --default_params.web_address.test_existence
• --default_params.web_address.no-test_existence
**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.TEST_EXISTENCE | The domain name must exist. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | | **default_params.web_address.allow_ip**
**Command line**:
• --default_params.web_address.allow_ip
• --default_params.web_address.no-allow_ip
**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_IP | The domain name can be an IP. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | | diff --git a/locale/fr/LC_MESSAGES/rougail.po b/locale/fr/LC_MESSAGES/rougail.po index 53084ab35..8f5887f3d 100644 --- a/locale/fr/LC_MESSAGES/rougail.po +++ b/locale/fr/LC_MESSAGES/rougail.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2025-12-23 21:09+0100\n" -"PO-Revision-Date: 2025-12-23 21:10+0100\n" +"POT-Creation-Date: 2026-01-21 08:37+0100\n" +"PO-Revision-Date: 2026-01-21 08:42+0100\n" "Last-Translator: \n" "Language-Team: \n" "Language: fr\n" @@ -16,31 +16,31 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" "X-Generator: Poedit 3.8\n" -#: src/rougail/annotator/family.py:151 +#: src/rougail/annotator/family.py:152 msgid "default variable mode \"{0}\" is not a valid mode, valid modes are {1}" msgstr "" "le mode d'une variable par défaut \"{0}\" n'est pas un mode valide, les " "modes valides sont {1}" -#: src/rougail/annotator/family.py:157 +#: src/rougail/annotator/family.py:158 msgid "default family mode \"{0}\" is not a valid mode, valid modes are {1}" msgstr "" "le mode d'une famille par défaut \"{0}\" n'est pas un mode valide, les modes " "valides sont {1}" -#: src/rougail/annotator/family.py:189 +#: src/rougail/annotator/family.py:190 msgid "mode \"{0}\" for \"{1}\" is not a valid mode, valid modes are {2}" msgstr "" "le mode \"{0}\" pour \"{1}\" n'est pas un mode valide, les modes valides " "sont {2}" -#: src/rougail/annotator/family.py:193 +#: src/rougail/annotator/family.py:194 msgid "mode \"{0}\" for \"{1}\" is not a valid mode, no modes are available" msgstr "" "le mode \"{0}\" pour \"{1}\" n'est pas un mode valide, aucun mode ne sont " "définis" -#: src/rougail/annotator/family.py:257 +#: src/rougail/annotator/family.py:258 msgid "" "the variable \"{0}\" is mandatory so in \"{1}\" mode but family has the " "higher family mode \"{2}\"" @@ -48,7 +48,7 @@ msgstr "" "la variable \"{0}\" est obligatoire, donc en mode \"{1}\", mais la famille a " "un mode supérieur \"{2}\"" -#: src/rougail/annotator/family.py:295 +#: src/rougail/annotator/family.py:296 msgid "" "the follower \"{0}\" is in \"{1}\" mode but leader have the higher mode " "\"{2}\"" @@ -56,7 +56,7 @@ msgstr "" "la variable suiveuse \"{0}\" a le mode \"{1}\" mais la variable leader a un " "mode supérieur \"{2}\"" -#: src/rougail/annotator/family.py:328 +#: src/rougail/annotator/family.py:329 msgid "" "the family \"{0}\" is in \"{1}\" mode but variables and families inside have " "the higher modes \"{2}\"" @@ -64,7 +64,7 @@ msgstr "" "la famille \"{0}\" a le mode \"{1}\" mais les variables et les familles à " "l'intérieur ont des modes supérieurs \"{2}\"" -#: src/rougail/annotator/family.py:346 +#: src/rougail/annotator/family.py:347 msgid "" "the variable \"{0}\" is in \"{1}\" mode but family has the higher family " "mode \"{2}\"" @@ -72,7 +72,7 @@ msgstr "" "la variable \"{0}\" est dans le mode \"{1}\" mais la famille a le mode " "supérieur \"{2}\"" -#: src/rougail/annotator/property.py:161 +#: src/rougail/annotator/property.py:181 msgid "" "invalid tag name \"{0}\" should only contains lowercase ascii character, " "number or _" @@ -80,12 +80,12 @@ msgstr "" "nom de l'étiquette invalide \"{0}\" doit seulement contenir des caractères " "ascii minuscule, nombre or _" -#: src/rougail/annotator/property.py:166 +#: src/rougail/annotator/property.py:186 msgid "invalid tag name \"{0}\" should not be a name of an existing mode" msgstr "" "nom de l'étiquette invalide \"{0}\" ne doit pas être un nom de mode existant" -#: src/rougail/annotator/property.py:171 +#: src/rougail/annotator/property.py:191 msgid "" "invalid tag name \"{0}\" should not be the name of an available properties" msgstr "" @@ -114,7 +114,7 @@ msgid "the variable \"{0}\" is a \"regexp\" variable but don't have any regexp" msgstr "" "la variable \"{0}\" a une variable \"regexp\" mais n'a pas de \"regexp\"" -#: src/rougail/annotator/variable.py:95 +#: src/rougail/annotator/variable.py:93 msgid "" "only \"unix_user\" or \"secret\" variable type can have \"secret_manager\" " "attribute, but \"{0}\" has type \"{1}\"" @@ -122,14 +122,14 @@ msgstr "" "seul une variable de type \"unix_user\" ou \"secret\" peut avoir l'attribut " "\"secret_manager\", mais \"{0}\" a le type \"{1}\"" -#: src/rougail/annotator/variable.py:102 +#: src/rougail/annotator/variable.py:100 msgid "" "the variable \"{0}\" has attribute \"secret_manager\" but is a multi variable" msgstr "" "la variable \"{0}\" a l'attribut \"secret_manager\" mais est une variable " "multiple" -#: src/rougail/annotator/variable.py:107 +#: src/rougail/annotator/variable.py:105 msgid "" "the variable \"{0}\" has attribute \"secret_manager\" so must not have " "default value" @@ -137,49 +137,49 @@ msgstr "" "la variable \"{0}\" a l'attribut \"secret_manager\" donc ne devrait pas " "avoir de valeur par défaut" -#: src/rougail/annotator/variable.py:161 +#: src/rougail/annotator/variable.py:159 msgid "{0} values needed, but there are {{{{ var | length }}}}" msgstr "il faut {0} valeurs, mais il y en a {{{{ var | length }}}}" -#: src/rougail/annotator/variable.py:162 +#: src/rougail/annotator/variable.py:160 msgid "needs exactly {0} values" msgstr "nécessite exactement {0} valeurs" -#: src/rougail/annotator/variable.py:164 +#: src/rougail/annotator/variable.py:162 msgid "" "a maximum of {0} values are needed, but there are {{{{ var | length }}}}" msgstr "il faut au maximum {0} valeurs, mais il y en a {{{{ var | length }}}}" -#: src/rougail/annotator/variable.py:165 +#: src/rougail/annotator/variable.py:163 msgid "needs a maximum of {0} values" msgstr "nécessite au maximum {0} valeurs" -#: src/rougail/annotator/variable.py:169 +#: src/rougail/annotator/variable.py:167 msgid "" "a minimum of {0} values are needed, but there are {{{{ var | length }}}}" msgstr "il faut au minimum {0} valeurs, mais il y en a {{{{ var | length }}}}" -#: src/rougail/annotator/variable.py:170 +#: src/rougail/annotator/variable.py:168 msgid "needs a minimum of {0} values" msgstr "nécessite au minimum {0} valeurs" -#: src/rougail/annotator/variable.py:247 +#: src/rougail/annotator/variable.py:246 msgid "the \"{0}\" default value is a calculation with itself" msgstr "la valeur par défaut \"{0}\" est un calcul avec elle-même" -#: src/rougail/annotator/variable.py:308 +#: src/rougail/annotator/variable.py:306 msgid "" "the variable \"{0}\" has regexp attribut but has not the \"regexp\" type" msgstr "" "la variable \"{0}\" a un attribut regexp mais n'a pas le type \"regexp\"" -#: src/rougail/annotator/variable.py:351 +#: src/rougail/annotator/variable.py:349 msgid "" "the variable \"{0}\" has choices attribut but has not the \"choice\" type" msgstr "" "la variable \"{0}\" a un attribut choices mais n'a pas le type \"choice\"" -#: src/rougail/annotator/variable.py:379 +#: src/rougail/annotator/variable.py:377 msgid "" "the variable \"{0}\" has an unvalid default value \"{1}\" should be in {2}" msgstr "" @@ -197,10 +197,21 @@ msgstr "" "fichier de structure" #: src/rougail/config/__init__.py:281 +msgid "File with personalize types" +msgstr "Fichier avec types personnalisés" + +#: src/rougail/config/__init__.py:282 +msgid "" +"This file contains personalize types in Rougail format for structure files" +msgstr "" +"Ce fichier contient des types personnalisés au format Rougail pour les " +"fichiers de structure" + +#: src/rougail/config/__init__.py:291 msgid "File with functions" msgstr "Fichier avec les fonctions" -#: src/rougail/config/__init__.py:282 +#: src/rougail/config/__init__.py:292 msgid "" "This file contains filters and additional Jinja2 functions usable in " "structure files" @@ -208,31 +219,31 @@ msgstr "" "Ce fichier contient des filtres et des fonctions Jinja2 supplémentaires " "utilisables dans les fichiers de structure" -#: src/rougail/config/__init__.py:294 +#: src/rougail/config/__init__.py:303 msgid "All modes level available" msgstr "Tous les niveaux de modes valides" -#: src/rougail/config/__init__.py:306 +#: src/rougail/config/__init__.py:315 msgid "Default mode for a family" msgstr "Mode par défaut pour une famille" -#: src/rougail/config/__init__.py:312 +#: src/rougail/config/__init__.py:321 msgid "the first one defined in \"modes_level\"" msgstr "le premier défini dans \"modes_level\"" -#: src/rougail/config/__init__.py:318 src/rougail/config/__init__.py:345 +#: src/rougail/config/__init__.py:327 src/rougail/config/__init__.py:354 msgid "when no mode is defined in \"modes_level\"" msgstr "si aucun mode n'est défini dans \"modes_level\"" -#: src/rougail/config/__init__.py:325 src/rougail/config/__init__.py:352 +#: src/rougail/config/__init__.py:334 src/rougail/config/__init__.py:361 msgid "this mode must be available in \"modes_level\"" msgstr "ce mode doit être disponible dans \"modes_level\"" -#: src/rougail/config/__init__.py:329 +#: src/rougail/config/__init__.py:338 msgid "Default mode for a variable" msgstr "Mode par défaut pour une variable" -#: src/rougail/config/__init__.py:339 +#: src/rougail/config/__init__.py:348 msgid "" "if the variable \"modes_level\" is defined, the default value is the second " "available element, otherwise, the first" @@ -240,20 +251,20 @@ msgstr "" "si la variable \"modes_level\" est définit, la valeur par défaut est le " "second élément disponible, sinon, le premier" -#: src/rougail/config/__init__.py:356 +#: src/rougail/config/__init__.py:365 msgid "Option name for the base option" msgstr "Nom de l'option pour l'option de base" -#: src/rougail/config/__init__.py:361 +#: src/rougail/config/__init__.py:370 msgid "In cache file, do not importation of Tiramisu and other dependencies" msgstr "" "Dans le fichier de cache, ne pas importer Tiramisu et autres dépendances" -#: src/rougail/config/__init__.py:366 +#: src/rougail/config/__init__.py:375 msgid "Store Tiramisu cache filename" msgstr "Enregistrer le cache Tiramisu dans le fichier" -#: src/rougail/config/__init__.py:367 +#: src/rougail/config/__init__.py:376 msgid "" "This file contains the Tiramisu instructions used internally to load the " "variables.\n" @@ -263,34 +274,34 @@ msgstr "" "Ce fichier contient les instructions Tiramisu utilisé en interne pour " "charger les variables.\n" "\n" -"Ce fichier peut être utilisé pour le débogage." +"Ce fichier peut être utilisé pour le débogage" -#: src/rougail/config/__init__.py:377 +#: src/rougail/config/__init__.py:386 msgid "Name of internal functions that we can use as a function" msgstr "" "Nom des fonctions internes qu'il est possible d'utiliser comme fonction" -#: src/rougail/config/__init__.py:383 +#: src/rougail/config/__init__.py:392 msgid "Name of extra annotators" msgstr "Nom des annotators supplémentaires" -#: src/rougail/config/__init__.py:389 +#: src/rougail/config/__init__.py:398 msgid "Suffix add to generated options name" msgstr "Suffix ajouté pour généré le nom des options" -#: src/rougail/config/__init__.py:395 +#: src/rougail/config/__init__.py:404 msgid "Every variables in calculation are optionals" msgstr "Toutes les variables dans un calcul sont optionnelles" -#: src/rougail/config/__init__.py:399 +#: src/rougail/config/__init__.py:408 msgid "Loads redefine variables even if there don't already exists" msgstr "Charger les variables redéfinis même si elles n'existe pas" -#: src/rougail/config/__init__.py:403 +#: src/rougail/config/__init__.py:412 msgid "The secret manager" msgstr "Le gestionnaire de secret" -#: src/rougail/config/__init__.py:406 +#: src/rougail/config/__init__.py:415 msgid "" "The secret pattern to constructing the name of the item searched for in the " "secret manager" @@ -298,35 +309,35 @@ msgstr "" "Le modèle de secret permettant de construire le nom de l'élément recherché " "dans le gestionnaire de secrets" -#: src/rougail/config/__init__.py:407 +#: src/rougail/config/__init__.py:416 msgid "The pattern is in Jinja2 format" msgstr "Le modèle est au format Jinja2" -#: src/rougail/config/__init__.py:416 +#: src/rougail/config/__init__.py:425 msgid "structural" msgstr "structure" -#: src/rougail/config/__init__.py:417 +#: src/rougail/config/__init__.py:426 msgid "user datas" msgstr "données utilisateur" -#: src/rougail/config/__init__.py:418 +#: src/rougail/config/__init__.py:427 msgid "output" msgstr "sortie" -#: src/rougail/config/__init__.py:439 +#: src/rougail/config/__init__.py:448 msgid "Select for {0}" msgstr "Sélection pour {0}" -#: src/rougail/config/__init__.py:477 +#: src/rougail/config/__init__.py:486 msgid "outputs {0} did not allow user data" msgstr "les sorties {0} n'autorisent pas des données utilisateur" -#: src/rougail/config/__init__.py:503 +#: src/rougail/config/__init__.py:512 msgid "Override default parameters for option type" msgstr "Sur charger les paramètre par défaut pour le type d'option" -#: src/rougail/config/__init__.py:506 +#: src/rougail/config/__init__.py:515 msgid "Default parameters for option type" msgstr "Paramètre par défaut pour le type d'option" @@ -334,31 +345,31 @@ msgstr "Paramètre par défaut pour le type d'option" msgid "unknown type {0} for {1}" msgstr "type {0} inconnu pour {1}" -#: src/rougail/convert/convert.py:419 +#: src/rougail/convert/convert.py:444 msgid "family \"{0}\" define multiple time" msgstr "la famille \"{0}\" est définit plusieurs fois" -#: src/rougail/convert/convert.py:673 +#: src/rougail/convert/convert.py:715 msgid "variable \"{0}\" define multiple time" msgstr "la variable \"{0}\" est définit plusieurs fois" -#: src/rougail/convert/convert.py:771 +#: src/rougail/convert/convert.py:808 src/rougail/convert/convert.py:815 msgid "params must be a dict for {0}" msgstr "params doit être une dict pour {0}" -#: src/rougail/convert/convert.py:792 +#: src/rougail/convert/convert.py:836 msgid "\"{0}\" has an invalid \"params\" for {1}: {2}" msgstr "\"{0}\" a un attribut \"params\" invalide pour {1}: {2}" -#: src/rougail/convert/convert.py:806 +#: src/rougail/convert/convert.py:850 msgid "secret_manager must be a dict for {0}" msgstr "secret_manager doit être une dict pour {0}" -#: src/rougail/convert/convert.py:1135 +#: src/rougail/convert/convert.py:1190 msgid "Cannot execute annotate multiple time" msgstr "Ne peut exécuter l'annotation plusieurs fois" -#: src/rougail/convert/convert.py:1142 +#: src/rougail/convert/convert.py:1197 msgid "" "invalid \"structural\" definition ({0}), we cannot load any structural file!" msgstr "" @@ -379,7 +390,7 @@ msgstr "" "\"{2}\"" #: src/rougail/convert/object_model.py:143 -#: src/rougail/convert/object_model.py:527 +#: src/rougail/convert/object_model.py:528 msgid "unknown object \"{0}\" in attribute \"{1}\" for \"{2}\"" msgstr "objet inconnu \"{0}\" dans l'attribut \"{1}\" pour \"{2}\"" @@ -411,10 +422,10 @@ msgstr "" #: src/rougail/convert/object_model.py:263 msgid "" "\"warnings\" are only available with attribute \"{self.attribute_name}\" for " -"variable \"{self.ori_path}\"" +"variable \"{self.path}\"" msgstr "" "\"warnings\" est seulement utilisable avec l'attribut \"{self.attribute_name}" -"\" pour la variable \"{self.ori_path}\"" +"\" pour la variable \"{self.path}\"" #: src/rougail/convert/object_model.py:325 msgid "" @@ -424,8 +435,8 @@ msgstr "" "la variable \"{0}\" a un attribut return_type déprécié \"{1}\", veuillez " "utiliser \"{2}\" au lieu de \"{3}\"" -#: src/rougail/convert/object_model.py:415 -#: src/rougail/convert/object_model.py:446 +#: src/rougail/convert/object_model.py:413 +#: src/rougail/convert/object_model.py:447 msgid "" "variable \"{0}\" has a calculating \"{1}\" with an invalid return_type, " "should be boolean or string, not \"{2}\"" @@ -433,7 +444,7 @@ msgstr "" "la variable \"{0}\" a un calcul \"{1}\" avec un return_type invalide, " "devrait être un booléen ou une chaîne de caractère, et pas \"{2}\"" -#: src/rougail/convert/object_model.py:422 +#: src/rougail/convert/object_model.py:424 msgid "" "the variable \"{0}\" has a return_type \"{1}\", for attribute \"{2}\" but " "has not description in {3}" @@ -441,11 +452,11 @@ msgstr "" "la variable \"{0}\" a un return_type \"{1}\", pour l'attribut \"{2}\" mais " "n'a pas de description dans {3}" -#: src/rougail/convert/object_model.py:427 +#: src/rougail/convert/object_model.py:429 msgid "value is invalid" msgstr "la valeur est invalide" -#: src/rougail/convert/object_model.py:522 +#: src/rougail/convert/object_model.py:523 msgid "" "a variable \"{0}\" is needs in attribute \"{1}\" for \"{2}\" but it's a " "family" @@ -453,7 +464,7 @@ msgstr "" "une variable \"{0}\" est nécessaire pour l'attribut \"{1}\" pour \"{2}\" " "mais c'est une famille" -#: src/rougail/convert/object_model.py:547 +#: src/rougail/convert/object_model.py:545 msgid "" "variable \"{0}\" has an attribute \"{1}\" calculated with the unknown " "variable \"{2}\"" @@ -461,7 +472,7 @@ msgstr "" "la variable \"{0}\" a un attribut invalide \"{1}\" calculé avec la variable " "inconnue \"{2}\"" -#: src/rougail/convert/object_model.py:599 +#: src/rougail/convert/object_model.py:593 msgid "" "the variable \"{0}\" has an invalid \"{1}\" the variable \"{2}\" is in a sub " "dynamic option" @@ -469,14 +480,14 @@ msgstr "" "la variable \"{0}\" a un attribut invalide \"{1}\", la variable \"{2}\" est " "dans une sous option dynamique" -#: src/rougail/convert/object_model.py:608 +#: src/rougail/convert/object_model.py:602 msgid "" "the leader \"{0}\" has an invalid \"{1}\" the follower \"{2}\" is a multi" msgstr "" "la variable meneuse \"{0}\" a un attribut invalide \"{1}\", la variable " "suiveuse \"{2}\" est multiple" -#: src/rougail/convert/object_model.py:650 +#: src/rougail/convert/object_model.py:644 msgid "" "the variable \"{0}\" has an invalid attribute \"{1}\", the variable \"{2}\" " "must not be multi" @@ -484,7 +495,7 @@ msgstr "" "la variable \"{0}\" a un attribut invalide \"{1}\", la variable \"{2}\" ne " "doit pas être multiple" -#: src/rougail/convert/object_model.py:664 +#: src/rougail/convert/object_model.py:658 msgid "" "the variable \"{0}\" has an invalid attribute \"{1}\", the variable must not " "be a multi or the variable \"{2}\" must be multi" @@ -492,7 +503,7 @@ msgstr "" "la variable \"{0}\" a un attribut invalide \"{1}\", la variable ne doit pas " "être multiple ou la variable \"{2}\" doit être multiple" -#: src/rougail/convert/object_model.py:678 +#: src/rougail/convert/object_model.py:672 msgid "" "the variable \"{0}\" has an invalid attribute \"{1}\", the variable must be " "a multi or the variable \"{2}\" must not be multi" @@ -500,7 +511,7 @@ msgstr "" "la variable \"{0}\" a un attribut invalide \"{1}\", la variable doit être " "multiple ou la variable \"{2}\" ne doit pas être multiple" -#: src/rougail/convert/object_model.py:692 +#: src/rougail/convert/object_model.py:686 msgid "" "the variable \"{0}\" has an invalid attribute \"{1}\", the variable \"{2}\" " "is multi but is inside a list" @@ -508,7 +519,7 @@ msgstr "" "la variable \"{0}\" a un attribut invalide \"{1}\", la variable \"{2}\" est " "multiple mais est dans une liste" -#: src/rougail/convert/object_model.py:714 +#: src/rougail/convert/object_model.py:708 msgid "" "the variable \"{0}\" is waiting for a list as \"{1}\" but the attribute " "\"default\" is not a list (\"{2}\")" @@ -516,7 +527,7 @@ msgstr "" "la variable \"{0}\" attend une liste comme \"{1}\" mais l'attribut " "\"default\" n'est pas une liste \"{2}\"" -#: src/rougail/convert/object_model.py:718 +#: src/rougail/convert/object_model.py:712 msgid "" "the variable \"{0}\" is not waiting for a list as \"{1}\" but the attribute " "\"default\" is a list (\"{2}\")" @@ -524,7 +535,7 @@ msgstr "" "la variable \"{0}\" n'attend pas une liste comme \"{1}\" mais l'attribut " "\"default\" est une liste \"{2}\"" -#: src/rougail/convert/object_model.py:740 +#: src/rougail/convert/object_model.py:737 msgid "" "\"{0}\" attribut shall not have an \"optional\" attribute without the " "\"default\" attribute for variable \"{1}\"" @@ -532,7 +543,7 @@ msgstr "" "l'attribut \"{0}\" ne devrait pas avoir d'attribut \"optional\" sans " "l'attribut \"default\" pour la variable \"{1}\"" -#: src/rougail/convert/object_model.py:762 +#: src/rougail/convert/object_model.py:759 msgid "" "variable \"{0}\" has a default value calculated with \"{1}\" which has " "incompatible type" @@ -540,7 +551,7 @@ msgstr "" "la variable \"{0}\" a une valeur par défaut calculé a partir de \"{1}\" " "laquelle a un type incompatible" -#: src/rougail/convert/object_model.py:804 +#: src/rougail/convert/object_model.py:805 msgid "" "the variable \"{0}\" is waiting for a boolean as \"{1}\" but the attribute " "\"default\" is not a boolean (\"{2}\")" @@ -548,7 +559,7 @@ msgstr "" "la variable \"{0}\" attend un booléan comme \"{1}\" mais l'attribut " "\"default\" n'est pas une booléan (\"{2}\")" -#: src/rougail/convert/object_model.py:826 +#: src/rougail/convert/object_model.py:828 msgid "" "\"when\" is not allowed in format version 1.0 for attribute \"{0}\" for " "variable \"{1}\"" @@ -556,7 +567,7 @@ msgstr "" "\"when\" n'est pas autorisé avec le format en version 1.0 pour l'attribut " "\"{0}\" pour la variable \"{1}\"" -#: src/rougail/convert/object_model.py:831 +#: src/rougail/convert/object_model.py:833 msgid "" "the variable \"{0}\" has an invalid attribute \"{1}\", \"when\" and " "\"when_not\" cannot set together" @@ -564,7 +575,7 @@ msgstr "" "la variable \"{0}\" a un attribut invalide \"{1}\", \"when\" et \"when_not\" " "ne peuvent pas être défini ensemble" -#: src/rougail/convert/object_model.py:839 +#: src/rougail/convert/object_model.py:841 msgid "" "\"when_not\" is not allowed in format version 1.0 for attribute \"{0}\" for " "variable \"{1}\"" @@ -572,7 +583,7 @@ msgstr "" "\"when_not\" n'est pas autorisé au format 1.0 pour l'attribut \"{0}\" pour " "la variable variable \"{1}\"" -#: src/rougail/convert/object_model.py:850 +#: src/rougail/convert/object_model.py:852 msgid "" "\"when\" or \"when_not\" is mandatory for the not boolean variable \"{0}\" " "in attribute \"{1}\"" @@ -580,7 +591,7 @@ msgstr "" "\"when\" ou \"when_not\" est obligatoire pour la variable non booléenne " "\"{0}\" dans l'attribut \"{1}\"" -#: src/rougail/convert/object_model.py:898 +#: src/rougail/convert/object_model.py:899 msgid "" "cannot find variable \"{0}\" for the information \"{1}\" when calculating " "\"{2}\"" @@ -588,19 +599,19 @@ msgstr "" "ne peut trouver la variable \"{0}\" pour l'information \"{1}\" lors du " "calcul de \"{2}\"" -#: src/rougail/convert/object_model.py:903 +#: src/rougail/convert/object_model.py:904 msgid "" "identifier not allowed for the information \"{0}\" when calculating \"{1}\"" msgstr "" "identifier n'est pas autorisé pour l'information \"{0}\" lors du calcul de " "\"{1}\"" -#: src/rougail/convert/object_model.py:955 +#: src/rougail/convert/object_model.py:958 msgid "\"when\" is not allowed in format version 1.0 for attribute \"{0}\"" msgstr "\"when\" n'est pas autorisé au format 1.0 pour l'attribut \"{0}\"" -#: src/rougail/convert/object_model.py:961 -#: src/rougail/convert/object_model.py:971 +#: src/rougail/convert/object_model.py:964 +#: src/rougail/convert/object_model.py:974 msgid "" "the identifier has an invalid attribute \"{0}\", \"when\" and \"when_not\" " "cannot set together" @@ -608,7 +619,7 @@ msgstr "" "l'identifiant a un attribut invalide \"{0}\", \"when\" et \"when_not\" ne " "peuvent pas être défini ensemble" -#: src/rougail/convert/object_model.py:997 +#: src/rougail/convert/object_model.py:1001 msgid "" "the variable \"{0}\" is not a follower, so cannot have index type for \"{1}\"" msgstr "" @@ -643,8 +654,7 @@ msgstr "" msgid "internal error, {0} is not a dynamic variable" msgstr "erreur interne, \"{0}\" n'est pas une variable dynamique" -#: src/rougail/error.py:61 src/rougail/tiramisu.py:235 -#: src/rougail/user_data.py:463 src/rougail/user_data.py:466 +#: src/rougail/error.py:61 src/rougail/tiramisu.py:237 msgid "{0} in {1}" msgstr "{0} dans {1}" @@ -729,147 +739,147 @@ msgstr "Contenu de structure supplémentaire" msgid "string is not in \"__.step.structural\"" msgstr "string n'est pas dans \"__.step.structural\"" -#: src/rougail/tiramisu.py:83 +#: src/rougail/tiramisu.py:85 msgid "unknown boolean value \"{0}\"" msgstr "valeur du booléen inconnue \"{0}\"" -#: src/rougail/tiramisu.py:86 +#: src/rougail/tiramisu.py:88 msgid "IP must be in CIDR format" msgstr "l'IP doit être au format CIDR" -#: src/rougail/tiramisu.py:87 +#: src/rougail/tiramisu.py:89 msgid "private IP are allowed" msgstr "les IP privées sont autorisées" -#: src/rougail/tiramisu.py:88 +#: src/rougail/tiramisu.py:90 msgid "reserved IP are allowed" msgstr "les IP réservées sont autorisés" -#: src/rougail/tiramisu.py:91 +#: src/rougail/tiramisu.py:93 msgid "network must be in CIDR format" msgstr "le réseau doit être au format CIDR" -#: src/rougail/tiramisu.py:92 +#: src/rougail/tiramisu.py:94 msgid "private network are allowed" msgstr "les réseaux privés sont autorisés" -#: src/rougail/tiramisu.py:93 +#: src/rougail/tiramisu.py:95 msgid "reserved network are allowed" msgstr "les réseaux réservés sont autorisés" -#: src/rougail/tiramisu.py:96 +#: src/rougail/tiramisu.py:98 msgid "can be range of port" msgstr "peut être une plage de port" -#: src/rougail/tiramisu.py:97 +#: src/rougail/tiramisu.py:99 msgid "can have the protocol" msgstr "peut avoir le protocole" -#: src/rougail/tiramisu.py:98 +#: src/rougail/tiramisu.py:100 msgid "port 0 is allowed" msgstr "port 0 est autorisé" -#: src/rougail/tiramisu.py:99 +#: src/rougail/tiramisu.py:101 msgid "well-known ports (1 to 1023) are allowed" msgstr "les ports connus (1 à 1023) sont autorisés" -#: src/rougail/tiramisu.py:100 +#: src/rougail/tiramisu.py:102 msgid "registred ports (1024 to 49151) are allowed" msgstr "les ports enregistrés (1024 à 49151) sont autorisés" -#: src/rougail/tiramisu.py:101 +#: src/rougail/tiramisu.py:103 msgid "private ports (greater than 49152) are allowed" msgstr "les ports privés (supérieur à 49152) sont autorisés" -#: src/rougail/tiramisu.py:104 +#: src/rougail/tiramisu.py:106 msgid "type of domainname" msgstr "type de nom de domaine" -#: src/rougail/tiramisu.py:104 +#: src/rougail/tiramisu.py:106 msgid "type {0}" msgstr "type de {0}" -#: src/rougail/tiramisu.py:105 +#: src/rougail/tiramisu.py:107 msgid "the domain name can starts by a dot" msgstr "le nom de domaine peut démarré par un point" -#: src/rougail/tiramisu.py:106 +#: src/rougail/tiramisu.py:108 msgid "the domain name can be a hostname" msgstr "le nom de domaine peut être un nom d'hôte" -#: src/rougail/tiramisu.py:107 +#: src/rougail/tiramisu.py:109 msgid "the domain name can be an IP" msgstr "le nom de domaine peut être une IP" -#: src/rougail/tiramisu.py:108 +#: src/rougail/tiramisu.py:110 msgid "the domain name can be network in CIDR format" msgstr "le nom de domaine peut être un réseau au format CIDR" -#: src/rougail/tiramisu.py:109 +#: src/rougail/tiramisu.py:111 msgid "the domain name must exist" msgstr "le nom de domaine doit exister" -#: src/rougail/tiramisu.py:119 src/rougail/tiramisu.py:125 +#: src/rougail/tiramisu.py:121 src/rougail/tiramisu.py:127 msgid "the minimum value" msgstr "la valeur minimale" -#: src/rougail/tiramisu.py:119 src/rougail/tiramisu.py:125 +#: src/rougail/tiramisu.py:121 src/rougail/tiramisu.py:127 msgid "the minimum value is {0}" msgstr "la valeur minimale est {0}" -#: src/rougail/tiramisu.py:120 src/rougail/tiramisu.py:126 +#: src/rougail/tiramisu.py:122 src/rougail/tiramisu.py:128 msgid "the maximum value" msgstr "la valeur maximale" -#: src/rougail/tiramisu.py:120 src/rougail/tiramisu.py:126 +#: src/rougail/tiramisu.py:122 src/rougail/tiramisu.py:128 msgid "the maximum value is {0}" msgstr "la valeur maximale est {0}" -#: src/rougail/tiramisu.py:135 +#: src/rougail/tiramisu.py:137 msgid "minimum characters length for the secret" msgstr "longueur minimum de caractère pour un secret" -#: src/rougail/tiramisu.py:135 +#: src/rougail/tiramisu.py:137 msgid "minimum length for the secret is {0} characters" msgstr "longueur minimum pour un secret est de {0} caractères" -#: src/rougail/tiramisu.py:136 +#: src/rougail/tiramisu.py:138 msgid "maximum characters length for the secret" msgstr "longueur maximum de caractère pour un secret" -#: src/rougail/tiramisu.py:136 +#: src/rougail/tiramisu.py:138 msgid "maximum length for the secret is {0} characters" msgstr "longueur maximum pour un secret est de {0} caractères" -#: src/rougail/tiramisu.py:137 +#: src/rougail/tiramisu.py:139 msgid "forbidden characters" msgstr "caractères interdits" -#: src/rougail/tiramisu.py:137 +#: src/rougail/tiramisu.py:139 msgid "forbidden characters: {0}" msgstr "caractères interdits: {0}" -#: src/rougail/tiramisu.py:144 +#: src/rougail/tiramisu.py:146 msgid "this filename could be a relative path" msgstr "le nom de fichier peut être une chemin relatif" -#: src/rougail/tiramisu.py:145 +#: src/rougail/tiramisu.py:147 msgid "this file must exist" msgstr "le fichier doit exister" -#: src/rougail/tiramisu.py:146 +#: src/rougail/tiramisu.py:148 msgid "file type allowed" msgstr "type de fichier autorisé" -#: src/rougail/tiramisu.py:146 +#: src/rougail/tiramisu.py:148 msgid "file type allowed: {0}" msgstr "type de fichier autorisé: {0}" -#: src/rougail/tiramisu.py:436 +#: src/rougail/tiramisu.py:438 msgid "cannot calculate the variable \"{0}\"" msgstr "ne peut calculer la variable \"{0}\"" -#: src/rougail/tiramisu.py:437 +#: src/rougail/tiramisu.py:439 msgid "" "the attribute \"{0}\" in {1} with the parameters \"{2}\" causes the error: " "{3}" @@ -877,80 +887,89 @@ msgstr "" "l'attribut \"{0}\" dans {1} avec les paramètres \"{2}\" provoque l'erreur : " "{3}" -#: src/rougail/tiramisu.py:455 +#: src/rougail/tiramisu.py:457 msgid "cannot converting the variable \"{0}\"" msgstr "ne peut convertir la variable \"{0}\"" -#: src/rougail/tiramisu.py:456 +#: src/rougail/tiramisu.py:458 msgid "\"{0}\" is an invalid {1}" msgstr "\"{0}\" est un {1} invalide" -#: src/rougail/tiramisu.py:458 +#: src/rougail/tiramisu.py:460 msgid "the attribute \"{0}\" in {1} causes the error: {2}" msgstr "l'attribut \"{0}\" dans {1} provoque l'erreur : {2}" -#: src/rougail/user_data.py:101 -msgid "{0}" -msgstr "" +#: src/rougail/types.py:66 +msgid "type is not compatible with leadership family" +msgstr "type n'est pas compatible avec une famille leadership" -#: src/rougail/user_data.py:103 +#: src/rougail/types.py:68 +msgid "type is not compatible with dynamic family" +msgstr "type n'est pas compatible avec une famille dynamique" + +#: src/rougail/user_data.py:104 msgid "{0}, it will be ignored" msgstr "{0}, elle sera ignorée" -#: src/rougail/user_data.py:154 +#: src/rougail/user_data.py:155 msgid "" "cannot load variable path \"{0}\", the identifier \"{1}\" is not valid in {2}" msgstr "" "ne peut charger la variable \"{0}\", l'identifiant \"{1}\" n'est pas valide " "dans {2}" -#: src/rougail/user_data.py:238 +#: src/rougail/user_data.py:239 msgid "the variable contains secrets and should not be defined in {0}" msgstr "" "la variable contient des secrets et ne devrait pas être défini dans {0}" -#: src/rougail/user_data.py:277 -msgid "loaded from {0}" -msgstr "chargée depuis {0}" - -#: src/rougail/user_data.py:317 +#: src/rougail/user_data.py:318 msgid "" -"is a family so we cannot set the value \"{0}\", it has been loading from {1}" +"it's a family so we cannot set the value {0}, it has been loading from {1}" msgstr "" -"est une famille donc il n'est pas possible de définir la valeur \"{0}\", " -"elle a été chargée depuis {1}" +"c'est une famille donc il n'est pas possible de définir la valeur {0}, elle " +"a été chargée depuis {1}" -#: src/rougail/user_data.py:321 +#: src/rougail/user_data.py:322 msgid "" -"is a family so we cannot set the value \"{0}\", it will be ignored when " +"it's a family so we cannot set the value {0}, it will be ignored when " "loading from {1}" msgstr "" -"est une famille donc il n'est pas possible de définir la valeur \"{0}\", " -"elle sera ignorée lors du chargement depuis {1}" +"c'est une famille donc il n'est pas possible de définir la valeur {0}, elle " +"sera ignorée lors du chargement depuis {1}" -#: src/rougail/user_data.py:332 src/rougail/user_data.py:337 +#: src/rougail/user_data.py:332 +msgid "it's a symlink option so we cannot set the value {0}" +msgstr "" +"c'est un option symlink donc il n'est pas possible de définir la valeur {0}" + +#: src/rougail/user_data.py:334 src/rougail/user_data.py:364 +#: src/rougail/user_data.py:493 src/rougail/user_data.py:505 +#: src/rougail/user_data.py:518 +msgid "{0}, it has been loading from {1}" +msgstr "{0}, elle a été chargée depuis {1}" + +#: src/rougail/user_data.py:336 src/rougail/user_data.py:368 +#: src/rougail/user_data.py:497 src/rougail/user_data.py:509 +#: src/rougail/user_data.py:520 +msgid "{0}, it will be ignored when loading from {1}" +msgstr "{0}, elle sera ignorée lors du chargement depuis {1}" + +#: src/rougail/user_data.py:341 src/rougail/user_data.py:346 msgid "{0}, it has been loaded from {1}" msgstr "{0}, elle a été chargée depuis {1}" -#: src/rougail/user_data.py:343 -msgid "variable or family \"{0}\" does not exist, it has been loading from {1}" +#: src/rougail/user_data.py:360 +msgid "variable or family \"{0}\" does not exist so cannot load \"{1}\"" msgstr "" -"la variable ou la famille \"{0}\" n'existe pas, elle a été chargée depuis {1}" +"la variable ou la famille \"{0}\" n'existe pas donc ne peut charger \"{1}\"" -#: src/rougail/user_data.py:347 -msgid "" -"variable or family \"{0}\" does not exist, it will be ignored when loading " -"from {1}" -msgstr "" -"la variable ou la famille \"{0}\" n'existe pas, elle sera ignorée lors du " -"chargement depuis {1}" - -#: src/rougail/user_data.py:353 +#: src/rougail/user_data.py:377 msgid "\"{0}\" is the name of a dynamic family, it has been loading from {1}" msgstr "" "\"{0}\" est le nom d'une famille dynamique, elle a été chargée depuis {1}" -#: src/rougail/user_data.py:357 +#: src/rougail/user_data.py:381 msgid "" "\"{0}\" is the name of a dynamic family, it will be ignored when loading " "from {1}" @@ -958,16 +977,16 @@ msgstr "" "\"{0}\" est le nom d'une famille dynamique, il sera ignoré lors du " "chargement depuis {1}" -#: src/rougail/user_data.py:365 +#: src/rougail/user_data.py:387 msgid "{0} loaded from {1}" msgstr "{0} chargée depuis {1}" -#: src/rougail/user_data.py:396 +#: src/rougail/user_data.py:426 msgid "variable {0} at index \"{1}\" is {2}, it has been loading from {3}" msgstr "" "la variable {0} à l'index \"{1}\" est {2}, elle a été chargée depuis {3}" -#: src/rougail/user_data.py:400 +#: src/rougail/user_data.py:430 msgid "" "variable {0} at index \"{1}\" is {2}, it will be ignored when loading from " "{3}" @@ -975,29 +994,29 @@ msgstr "" "la variable {0} à l'index \"{1}\" est {2}, elle sera ignorée lors du " "chargement depuis {3}" -#: src/rougail/user_data.py:413 +#: src/rougail/user_data.py:443 msgid "family {0} is {1}, {2} at index \"{3}\", it has been loading from {4}" msgstr "" "la famille {0} est {1}, {2} à l'index \"{3}\", elle a été chargée depuis {4}" -#: src/rougail/user_data.py:417 +#: src/rougail/user_data.py:447 msgid "" "family {0} is {1}, {2} at index \"{3}\", it will be ignored when loading " "from {4}" msgstr "" "la famille {0} est {1}, {2} à l'index \"{3}\", elle a été chargée depuis {4}" -#: src/rougail/user_data.py:432 +#: src/rougail/user_data.py:462 msgid "variable has propery {0}, it has been loading from {1}" msgstr "la variable a la propriété {0}, elle a été chargée depuis {1}" -#: src/rougail/user_data.py:436 +#: src/rougail/user_data.py:466 msgid "variable has property {0}, it will be ignored when loading from {1}" msgstr "" "la variable a la propriété {0}, elle sera ignorée lors du chargement depuis " "{1}" -#: src/rougail/user_data.py:446 +#: src/rougail/user_data.py:476 msgid "" "family {0} has property {1}, so cannot access to {2}, it has been loading " "from {3}" @@ -1005,7 +1024,7 @@ msgstr "" "la famille {0} a la propriété {1}, donc ne peut accéder à {2}, elle a été " "chargée depuis {3}" -#: src/rougail/user_data.py:450 +#: src/rougail/user_data.py:480 msgid "" "family {0} has property {1}, so cannot access to {2}, it will be ignored " "when loading from {3}" @@ -1013,26 +1032,26 @@ msgstr "" "la famille {0} a la propriété {1}, donc ne peut accéder à {2}, sera ignorée " "lors du chargement depuis {3}" -#: src/rougail/user_data.py:470 -msgid "{0}, it has been loading from {1}" -msgstr "{0}, elle a été chargée depuis {1}" +#: src/rougail/user_data.py:525 +msgid "the value {0} is an invalid {1}, {2}" +msgstr "la valeur {0} est un {1} invalide, {2}" -#: src/rougail/user_data.py:472 -msgid "{0}, it will be ignored when loading from {1}" -msgstr "{0}, elle sera ignorée lors du chargement depuis {1}" - -#: src/rougail/user_data.py:477 -msgid "the value \"{0}\" is an invalid {1}, {2}" -msgstr "la valeur \"{0}\" est un {1} invalide, {2}" - -#: src/rougail/user_data.py:483 +#: src/rougail/user_data.py:531 msgid ", it has been loading from {0}" msgstr ", elle a été chargée depuis {0}" -#: src/rougail/user_data.py:485 +#: src/rougail/user_data.py:533 msgid ", it will be ignored when loading from {0}" msgstr ", elle sera ignorée lors du chargement depuis {0}" +#: src/rougail/user_data.py:566 +msgid "loaded from {0}" +msgstr "chargée depuis {0}" + +#: src/rougail/user_data.py:574 +msgid "{0} (the search key is \"{1}\")" +msgstr "{0} (la clé recherchée est \"{1}\")" + #: src/rougail/utils.py:56 msgid "" "invalid variable or family name \"{0}\" must only contains lowercase ascii " @@ -1045,26 +1064,33 @@ msgstr "" msgid "error for the variable \"{1}\" in jinja \"{0}\": {2}" msgstr "erreur pour la variable \"{1}\" dans le jinja \"{0}\": {2}" -#: src/rougail/utils.py:213 +#: src/rougail/utils.py:212 msgid "mandatory" msgstr "obligatoire" -#: src/rougail/utils.py:214 +#: src/rougail/utils.py:213 msgid "hidden" msgstr "cachée" -#: src/rougail/utils.py:215 +#: src/rougail/utils.py:214 msgid "disabled" msgstr "désactivé" -#: src/rougail/utils.py:216 +#: src/rougail/utils.py:215 msgid "unique" msgstr "unique" -#: src/rougail/utils.py:217 +#: src/rougail/utils.py:216 msgid "auto modified" msgstr "auto modifiée" +#~ msgid "" +#~ "variable or family \"{0}\" does not exist, it will be ignored when " +#~ "loading from {1}" +#~ msgstr "" +#~ "la variable ou la famille \"{0}\" n'existe pas, elle sera ignorée lors du " +#~ "chargement depuis {1}" + #~ msgid "" #~ "the value \"{0}\" is an invalid {1} for {2} at index \"{3}\", {4}, it has " #~ "been loading from {5}" diff --git a/locale/rougail.pot b/locale/rougail.pot index 2053e9fe4..6d94ac222 100644 --- a/locale/rougail.pot +++ b/locale/rougail.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2025-12-23 21:10+0100\n" +"POT-Creation-Date: 2026-01-21 08:42+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -15,47 +15,47 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" -#: src/rougail/annotator/family.py:151 +#: src/rougail/annotator/family.py:152 msgid "default variable mode \"{0}\" is not a valid mode, valid modes are {1}" msgstr "" -#: src/rougail/annotator/family.py:157 +#: src/rougail/annotator/family.py:158 msgid "default family mode \"{0}\" is not a valid mode, valid modes are {1}" msgstr "" -#: src/rougail/annotator/family.py:189 +#: src/rougail/annotator/family.py:190 msgid "mode \"{0}\" for \"{1}\" is not a valid mode, valid modes are {2}" msgstr "" -#: src/rougail/annotator/family.py:193 +#: src/rougail/annotator/family.py:194 msgid "mode \"{0}\" for \"{1}\" is not a valid mode, no modes are available" msgstr "" -#: src/rougail/annotator/family.py:257 +#: src/rougail/annotator/family.py:258 msgid "the variable \"{0}\" is mandatory so in \"{1}\" mode but family has the higher family mode \"{2}\"" msgstr "" -#: src/rougail/annotator/family.py:295 +#: src/rougail/annotator/family.py:296 msgid "the follower \"{0}\" is in \"{1}\" mode but leader have the higher mode \"{2}\"" msgstr "" -#: src/rougail/annotator/family.py:328 +#: src/rougail/annotator/family.py:329 msgid "the family \"{0}\" is in \"{1}\" mode but variables and families inside have the higher modes \"{2}\"" msgstr "" -#: src/rougail/annotator/family.py:346 +#: src/rougail/annotator/family.py:347 msgid "the variable \"{0}\" is in \"{1}\" mode but family has the higher family mode \"{2}\"" msgstr "" -#: src/rougail/annotator/property.py:161 +#: src/rougail/annotator/property.py:181 msgid "invalid tag name \"{0}\" should only contains lowercase ascii character, number or _" msgstr "" -#: src/rougail/annotator/property.py:166 +#: src/rougail/annotator/property.py:186 msgid "invalid tag name \"{0}\" should not be a name of an existing mode" msgstr "" -#: src/rougail/annotator/property.py:171 +#: src/rougail/annotator/property.py:191 msgid "invalid tag name \"{0}\" should not be the name of an available properties" msgstr "" @@ -75,55 +75,55 @@ msgstr "" msgid "the variable \"{0}\" is a \"regexp\" variable but don't have any regexp" msgstr "" -#: src/rougail/annotator/variable.py:95 +#: src/rougail/annotator/variable.py:93 msgid "only \"unix_user\" or \"secret\" variable type can have \"secret_manager\" attribute, but \"{0}\" has type \"{1}\"" msgstr "" -#: src/rougail/annotator/variable.py:102 +#: src/rougail/annotator/variable.py:100 msgid "the variable \"{0}\" has attribute \"secret_manager\" but is a multi variable" msgstr "" -#: src/rougail/annotator/variable.py:107 +#: src/rougail/annotator/variable.py:105 msgid "the variable \"{0}\" has attribute \"secret_manager\" so must not have default value" msgstr "" -#: src/rougail/annotator/variable.py:161 +#: src/rougail/annotator/variable.py:159 msgid "{0} values needed, but there are {{{{ var | length }}}}" msgstr "" -#: src/rougail/annotator/variable.py:162 +#: src/rougail/annotator/variable.py:160 msgid "needs exactly {0} values" msgstr "" -#: src/rougail/annotator/variable.py:164 +#: src/rougail/annotator/variable.py:162 msgid "a maximum of {0} values are needed, but there are {{{{ var | length }}}}" msgstr "" -#: src/rougail/annotator/variable.py:165 +#: src/rougail/annotator/variable.py:163 msgid "needs a maximum of {0} values" msgstr "" -#: src/rougail/annotator/variable.py:169 +#: src/rougail/annotator/variable.py:167 msgid "a minimum of {0} values are needed, but there are {{{{ var | length }}}}" msgstr "" -#: src/rougail/annotator/variable.py:170 +#: src/rougail/annotator/variable.py:168 msgid "needs a minimum of {0} values" msgstr "" -#: src/rougail/annotator/variable.py:247 +#: src/rougail/annotator/variable.py:246 msgid "the \"{0}\" default value is a calculation with itself" msgstr "" -#: src/rougail/annotator/variable.py:308 +#: src/rougail/annotator/variable.py:306 msgid "the variable \"{0}\" has regexp attribut but has not the \"regexp\" type" msgstr "" -#: src/rougail/annotator/variable.py:351 +#: src/rougail/annotator/variable.py:349 msgid "the variable \"{0}\" has choices attribut but has not the \"choice\" type" msgstr "" -#: src/rougail/annotator/variable.py:379 +#: src/rougail/annotator/variable.py:377 msgid "the variable \"{0}\" has an unvalid default value \"{1}\" should be in {2}" msgstr "" @@ -136,117 +136,125 @@ msgid "This value is only used if the version is not set in the structural file" msgstr "" #: src/rougail/config/__init__.py:281 -msgid "File with functions" +msgid "File with personalize types" msgstr "" #: src/rougail/config/__init__.py:282 +msgid "This file contains personalize types in Rougail format for structure files" +msgstr "" + +#: src/rougail/config/__init__.py:291 +msgid "File with functions" +msgstr "" + +#: src/rougail/config/__init__.py:292 msgid "This file contains filters and additional Jinja2 functions usable in structure files" msgstr "" -#: src/rougail/config/__init__.py:294 +#: src/rougail/config/__init__.py:303 msgid "All modes level available" msgstr "" -#: src/rougail/config/__init__.py:306 +#: src/rougail/config/__init__.py:315 msgid "Default mode for a family" msgstr "" -#: src/rougail/config/__init__.py:312 +#: src/rougail/config/__init__.py:321 msgid "the first one defined in \"modes_level\"" msgstr "" -#: src/rougail/config/__init__.py:318 src/rougail/config/__init__.py:345 +#: src/rougail/config/__init__.py:327 src/rougail/config/__init__.py:354 msgid "when no mode is defined in \"modes_level\"" msgstr "" -#: src/rougail/config/__init__.py:325 src/rougail/config/__init__.py:352 +#: src/rougail/config/__init__.py:334 src/rougail/config/__init__.py:361 msgid "this mode must be available in \"modes_level\"" msgstr "" -#: src/rougail/config/__init__.py:329 +#: src/rougail/config/__init__.py:338 msgid "Default mode for a variable" msgstr "" -#: src/rougail/config/__init__.py:339 +#: src/rougail/config/__init__.py:348 msgid "if the variable \"modes_level\" is defined, the default value is the second available element, otherwise, the first" msgstr "" -#: src/rougail/config/__init__.py:356 +#: src/rougail/config/__init__.py:365 msgid "Option name for the base option" msgstr "" -#: src/rougail/config/__init__.py:361 +#: src/rougail/config/__init__.py:370 msgid "In cache file, do not importation of Tiramisu and other dependencies" msgstr "" -#: src/rougail/config/__init__.py:366 +#: src/rougail/config/__init__.py:375 msgid "Store Tiramisu cache filename" msgstr "" -#: src/rougail/config/__init__.py:367 +#: src/rougail/config/__init__.py:376 msgid "" "This file contains the Tiramisu instructions used internally to load the variables.\n" "\n" "This file can be used for debugging" msgstr "" -#: src/rougail/config/__init__.py:377 +#: src/rougail/config/__init__.py:386 msgid "Name of internal functions that we can use as a function" msgstr "" -#: src/rougail/config/__init__.py:383 +#: src/rougail/config/__init__.py:392 msgid "Name of extra annotators" msgstr "" -#: src/rougail/config/__init__.py:389 +#: src/rougail/config/__init__.py:398 msgid "Suffix add to generated options name" msgstr "" -#: src/rougail/config/__init__.py:395 +#: src/rougail/config/__init__.py:404 msgid "Every variables in calculation are optionals" msgstr "" -#: src/rougail/config/__init__.py:399 +#: src/rougail/config/__init__.py:408 msgid "Loads redefine variables even if there don't already exists" msgstr "" -#: src/rougail/config/__init__.py:403 +#: src/rougail/config/__init__.py:412 msgid "The secret manager" msgstr "" -#: src/rougail/config/__init__.py:406 +#: src/rougail/config/__init__.py:415 msgid "The secret pattern to constructing the name of the item searched for in the secret manager" msgstr "" -#: src/rougail/config/__init__.py:407 +#: src/rougail/config/__init__.py:416 msgid "The pattern is in Jinja2 format" msgstr "" -#: src/rougail/config/__init__.py:416 +#: src/rougail/config/__init__.py:425 msgid "structural" msgstr "" -#: src/rougail/config/__init__.py:417 +#: src/rougail/config/__init__.py:426 msgid "user datas" msgstr "" -#: src/rougail/config/__init__.py:418 +#: src/rougail/config/__init__.py:427 msgid "output" msgstr "" -#: src/rougail/config/__init__.py:439 +#: src/rougail/config/__init__.py:448 msgid "Select for {0}" msgstr "" -#: src/rougail/config/__init__.py:477 +#: src/rougail/config/__init__.py:486 msgid "outputs {0} did not allow user data" msgstr "" -#: src/rougail/config/__init__.py:503 +#: src/rougail/config/__init__.py:512 msgid "Override default parameters for option type" msgstr "" -#: src/rougail/config/__init__.py:506 +#: src/rougail/config/__init__.py:515 msgid "Default parameters for option type" msgstr "" @@ -254,31 +262,31 @@ msgstr "" msgid "unknown type {0} for {1}" msgstr "" -#: src/rougail/convert/convert.py:419 +#: src/rougail/convert/convert.py:444 msgid "family \"{0}\" define multiple time" msgstr "" -#: src/rougail/convert/convert.py:673 +#: src/rougail/convert/convert.py:715 msgid "variable \"{0}\" define multiple time" msgstr "" -#: src/rougail/convert/convert.py:771 +#: src/rougail/convert/convert.py:808 src/rougail/convert/convert.py:815 msgid "params must be a dict for {0}" msgstr "" -#: src/rougail/convert/convert.py:792 +#: src/rougail/convert/convert.py:836 msgid "\"{0}\" has an invalid \"params\" for {1}: {2}" msgstr "" -#: src/rougail/convert/convert.py:806 +#: src/rougail/convert/convert.py:850 msgid "secret_manager must be a dict for {0}" msgstr "" -#: src/rougail/convert/convert.py:1135 +#: src/rougail/convert/convert.py:1190 msgid "Cannot execute annotate multiple time" msgstr "" -#: src/rougail/convert/convert.py:1142 +#: src/rougail/convert/convert.py:1197 msgid "invalid \"structural\" definition ({0}), we cannot load any structural file!" msgstr "" @@ -291,7 +299,7 @@ msgid "the variable \"{0}\" is in fact a family in attribute \"{1}\" for \"{2}\" msgstr "" #: src/rougail/convert/object_model.py:143 -#: src/rougail/convert/object_model.py:527 +#: src/rougail/convert/object_model.py:528 msgid "unknown object \"{0}\" in attribute \"{1}\" for \"{2}\"" msgstr "" @@ -312,112 +320,112 @@ msgid "the variable \"{0}\" is not a follower, so cannot have index type for par msgstr "" #: src/rougail/convert/object_model.py:263 -msgid "\"warnings\" are only available with attribute \"{self.attribute_name}\" for variable \"{self.ori_path}\"" +msgid "\"warnings\" are only available with attribute \"{self.attribute_name}\" for variable \"{self.path}\"" msgstr "" #: src/rougail/convert/object_model.py:325 msgid "the variable \"{0}\" has a depreciated return_type \"{1}\", please use \"{2}\" instead in {3}" msgstr "" -#: src/rougail/convert/object_model.py:415 -#: src/rougail/convert/object_model.py:446 +#: src/rougail/convert/object_model.py:413 +#: src/rougail/convert/object_model.py:447 msgid "variable \"{0}\" has a calculating \"{1}\" with an invalid return_type, should be boolean or string, not \"{2}\"" msgstr "" -#: src/rougail/convert/object_model.py:422 +#: src/rougail/convert/object_model.py:424 msgid "the variable \"{0}\" has a return_type \"{1}\", for attribute \"{2}\" but has not description in {3}" msgstr "" -#: src/rougail/convert/object_model.py:427 +#: src/rougail/convert/object_model.py:429 msgid "value is invalid" msgstr "" -#: src/rougail/convert/object_model.py:522 +#: src/rougail/convert/object_model.py:523 msgid "a variable \"{0}\" is needs in attribute \"{1}\" for \"{2}\" but it's a family" msgstr "" -#: src/rougail/convert/object_model.py:547 +#: src/rougail/convert/object_model.py:545 msgid "variable \"{0}\" has an attribute \"{1}\" calculated with the unknown variable \"{2}\"" msgstr "" -#: src/rougail/convert/object_model.py:599 +#: src/rougail/convert/object_model.py:593 msgid "the variable \"{0}\" has an invalid \"{1}\" the variable \"{2}\" is in a sub dynamic option" msgstr "" -#: src/rougail/convert/object_model.py:608 +#: src/rougail/convert/object_model.py:602 msgid "the leader \"{0}\" has an invalid \"{1}\" the follower \"{2}\" is a multi" msgstr "" -#: src/rougail/convert/object_model.py:650 +#: src/rougail/convert/object_model.py:644 msgid "the variable \"{0}\" has an invalid attribute \"{1}\", the variable \"{2}\" must not be multi" msgstr "" -#: src/rougail/convert/object_model.py:664 +#: src/rougail/convert/object_model.py:658 msgid "the variable \"{0}\" has an invalid attribute \"{1}\", the variable must not be a multi or the variable \"{2}\" must be multi" msgstr "" -#: src/rougail/convert/object_model.py:678 +#: src/rougail/convert/object_model.py:672 msgid "the variable \"{0}\" has an invalid attribute \"{1}\", the variable must be a multi or the variable \"{2}\" must not be multi" msgstr "" -#: src/rougail/convert/object_model.py:692 +#: src/rougail/convert/object_model.py:686 msgid "the variable \"{0}\" has an invalid attribute \"{1}\", the variable \"{2}\" is multi but is inside a list" msgstr "" -#: src/rougail/convert/object_model.py:714 +#: src/rougail/convert/object_model.py:708 msgid "the variable \"{0}\" is waiting for a list as \"{1}\" but the attribute \"default\" is not a list (\"{2}\")" msgstr "" -#: src/rougail/convert/object_model.py:718 +#: src/rougail/convert/object_model.py:712 msgid "the variable \"{0}\" is not waiting for a list as \"{1}\" but the attribute \"default\" is a list (\"{2}\")" msgstr "" -#: src/rougail/convert/object_model.py:740 +#: src/rougail/convert/object_model.py:737 msgid "\"{0}\" attribut shall not have an \"optional\" attribute without the \"default\" attribute for variable \"{1}\"" msgstr "" -#: src/rougail/convert/object_model.py:762 +#: src/rougail/convert/object_model.py:759 msgid "variable \"{0}\" has a default value calculated with \"{1}\" which has incompatible type" msgstr "" -#: src/rougail/convert/object_model.py:804 +#: src/rougail/convert/object_model.py:805 msgid "the variable \"{0}\" is waiting for a boolean as \"{1}\" but the attribute \"default\" is not a boolean (\"{2}\")" msgstr "" -#: src/rougail/convert/object_model.py:826 +#: src/rougail/convert/object_model.py:828 msgid "\"when\" is not allowed in format version 1.0 for attribute \"{0}\" for variable \"{1}\"" msgstr "" -#: src/rougail/convert/object_model.py:831 +#: src/rougail/convert/object_model.py:833 msgid "the variable \"{0}\" has an invalid attribute \"{1}\", \"when\" and \"when_not\" cannot set together" msgstr "" -#: src/rougail/convert/object_model.py:839 +#: src/rougail/convert/object_model.py:841 msgid "\"when_not\" is not allowed in format version 1.0 for attribute \"{0}\" for variable \"{1}\"" msgstr "" -#: src/rougail/convert/object_model.py:850 +#: src/rougail/convert/object_model.py:852 msgid "\"when\" or \"when_not\" is mandatory for the not boolean variable \"{0}\" in attribute \"{1}\"" msgstr "" -#: src/rougail/convert/object_model.py:898 +#: src/rougail/convert/object_model.py:899 msgid "cannot find variable \"{0}\" for the information \"{1}\" when calculating \"{2}\"" msgstr "" -#: src/rougail/convert/object_model.py:903 +#: src/rougail/convert/object_model.py:904 msgid "identifier not allowed for the information \"{0}\" when calculating \"{1}\"" msgstr "" -#: src/rougail/convert/object_model.py:955 +#: src/rougail/convert/object_model.py:958 msgid "\"when\" is not allowed in format version 1.0 for attribute \"{0}\"" msgstr "" -#: src/rougail/convert/object_model.py:961 -#: src/rougail/convert/object_model.py:971 +#: src/rougail/convert/object_model.py:964 +#: src/rougail/convert/object_model.py:974 msgid "the identifier has an invalid attribute \"{0}\", \"when\" and \"when_not\" cannot set together" msgstr "" -#: src/rougail/convert/object_model.py:997 +#: src/rougail/convert/object_model.py:1001 msgid "the variable \"{0}\" is not a follower, so cannot have index type for \"{1}\"" msgstr "" @@ -437,8 +445,7 @@ msgstr "" msgid "internal error, {0} is not a dynamic variable" msgstr "" -#: src/rougail/error.py:61 src/rougail/tiramisu.py:235 -#: src/rougail/user_data.py:463 src/rougail/user_data.py:466 +#: src/rougail/error.py:61 src/rougail/tiramisu.py:237 msgid "{0} in {1}" msgstr "" @@ -515,262 +522,278 @@ msgstr "" msgid "string is not in \"__.step.structural\"" msgstr "" -#: src/rougail/tiramisu.py:83 +#: src/rougail/tiramisu.py:85 msgid "unknown boolean value \"{0}\"" msgstr "" -#: src/rougail/tiramisu.py:86 +#: src/rougail/tiramisu.py:88 msgid "IP must be in CIDR format" msgstr "" -#: src/rougail/tiramisu.py:87 +#: src/rougail/tiramisu.py:89 msgid "private IP are allowed" msgstr "" -#: src/rougail/tiramisu.py:88 +#: src/rougail/tiramisu.py:90 msgid "reserved IP are allowed" msgstr "" -#: src/rougail/tiramisu.py:91 +#: src/rougail/tiramisu.py:93 msgid "network must be in CIDR format" msgstr "" -#: src/rougail/tiramisu.py:92 +#: src/rougail/tiramisu.py:94 msgid "private network are allowed" msgstr "" -#: src/rougail/tiramisu.py:93 +#: src/rougail/tiramisu.py:95 msgid "reserved network are allowed" msgstr "" -#: src/rougail/tiramisu.py:96 +#: src/rougail/tiramisu.py:98 msgid "can be range of port" msgstr "" -#: src/rougail/tiramisu.py:97 +#: src/rougail/tiramisu.py:99 msgid "can have the protocol" msgstr "" -#: src/rougail/tiramisu.py:98 +#: src/rougail/tiramisu.py:100 msgid "port 0 is allowed" msgstr "" -#: src/rougail/tiramisu.py:99 +#: src/rougail/tiramisu.py:101 msgid "well-known ports (1 to 1023) are allowed" msgstr "" -#: src/rougail/tiramisu.py:100 +#: src/rougail/tiramisu.py:102 msgid "registred ports (1024 to 49151) are allowed" msgstr "" -#: src/rougail/tiramisu.py:101 +#: src/rougail/tiramisu.py:103 msgid "private ports (greater than 49152) are allowed" msgstr "" -#: src/rougail/tiramisu.py:104 +#: src/rougail/tiramisu.py:106 msgid "type of domainname" msgstr "" -#: src/rougail/tiramisu.py:104 +#: src/rougail/tiramisu.py:106 msgid "type {0}" msgstr "" -#: src/rougail/tiramisu.py:105 +#: src/rougail/tiramisu.py:107 msgid "the domain name can starts by a dot" msgstr "" -#: src/rougail/tiramisu.py:106 +#: src/rougail/tiramisu.py:108 msgid "the domain name can be a hostname" msgstr "" -#: src/rougail/tiramisu.py:107 +#: src/rougail/tiramisu.py:109 msgid "the domain name can be an IP" msgstr "" -#: src/rougail/tiramisu.py:108 +#: src/rougail/tiramisu.py:110 msgid "the domain name can be network in CIDR format" msgstr "" -#: src/rougail/tiramisu.py:109 +#: src/rougail/tiramisu.py:111 msgid "the domain name must exist" msgstr "" -#: src/rougail/tiramisu.py:119 src/rougail/tiramisu.py:125 +#: src/rougail/tiramisu.py:121 src/rougail/tiramisu.py:127 msgid "the minimum value" msgstr "" -#: src/rougail/tiramisu.py:119 src/rougail/tiramisu.py:125 +#: src/rougail/tiramisu.py:121 src/rougail/tiramisu.py:127 msgid "the minimum value is {0}" msgstr "" -#: src/rougail/tiramisu.py:120 src/rougail/tiramisu.py:126 +#: src/rougail/tiramisu.py:122 src/rougail/tiramisu.py:128 msgid "the maximum value" msgstr "" -#: src/rougail/tiramisu.py:120 src/rougail/tiramisu.py:126 +#: src/rougail/tiramisu.py:122 src/rougail/tiramisu.py:128 msgid "the maximum value is {0}" msgstr "" -#: src/rougail/tiramisu.py:135 +#: src/rougail/tiramisu.py:137 msgid "minimum characters length for the secret" msgstr "" -#: src/rougail/tiramisu.py:135 +#: src/rougail/tiramisu.py:137 msgid "minimum length for the secret is {0} characters" msgstr "" -#: src/rougail/tiramisu.py:136 +#: src/rougail/tiramisu.py:138 msgid "maximum characters length for the secret" msgstr "" -#: src/rougail/tiramisu.py:136 +#: src/rougail/tiramisu.py:138 msgid "maximum length for the secret is {0} characters" msgstr "" -#: src/rougail/tiramisu.py:137 +#: src/rougail/tiramisu.py:139 msgid "forbidden characters" msgstr "" -#: src/rougail/tiramisu.py:137 +#: src/rougail/tiramisu.py:139 msgid "forbidden characters: {0}" msgstr "" -#: src/rougail/tiramisu.py:144 +#: src/rougail/tiramisu.py:146 msgid "this filename could be a relative path" msgstr "" -#: src/rougail/tiramisu.py:145 +#: src/rougail/tiramisu.py:147 msgid "this file must exist" msgstr "" -#: src/rougail/tiramisu.py:146 +#: src/rougail/tiramisu.py:148 msgid "file type allowed" msgstr "" -#: src/rougail/tiramisu.py:146 +#: src/rougail/tiramisu.py:148 msgid "file type allowed: {0}" msgstr "" -#: src/rougail/tiramisu.py:436 +#: src/rougail/tiramisu.py:438 msgid "cannot calculate the variable \"{0}\"" msgstr "" -#: src/rougail/tiramisu.py:437 +#: src/rougail/tiramisu.py:439 msgid "the attribute \"{0}\" in {1} with the parameters \"{2}\" causes the error: {3}" msgstr "" -#: src/rougail/tiramisu.py:455 +#: src/rougail/tiramisu.py:457 msgid "cannot converting the variable \"{0}\"" msgstr "" -#: src/rougail/tiramisu.py:456 +#: src/rougail/tiramisu.py:458 msgid "\"{0}\" is an invalid {1}" msgstr "" -#: src/rougail/tiramisu.py:458 +#: src/rougail/tiramisu.py:460 msgid "the attribute \"{0}\" in {1} causes the error: {2}" msgstr "" -#: src/rougail/user_data.py:103 +#: src/rougail/types.py:66 +msgid "type is not compatible with leadership family" +msgstr "" + +#: src/rougail/types.py:68 +msgid "type is not compatible with dynamic family" +msgstr "" + +#: src/rougail/user_data.py:104 msgid "{0}, it will be ignored" msgstr "" -#: src/rougail/user_data.py:154 +#: src/rougail/user_data.py:155 msgid "cannot load variable path \"{0}\", the identifier \"{1}\" is not valid in {2}" msgstr "" -#: src/rougail/user_data.py:238 +#: src/rougail/user_data.py:239 msgid "the variable contains secrets and should not be defined in {0}" msgstr "" -#: src/rougail/user_data.py:277 -msgid "loaded from {0}" +#: src/rougail/user_data.py:318 +msgid "it's a family so we cannot set the value {0}, it has been loading from {1}" msgstr "" -#: src/rougail/user_data.py:317 -msgid "is a family so we cannot set the value \"{0}\", it has been loading from {1}" +#: src/rougail/user_data.py:322 +msgid "it's a family so we cannot set the value {0}, it will be ignored when loading from {1}" msgstr "" -#: src/rougail/user_data.py:321 -msgid "is a family so we cannot set the value \"{0}\", it will be ignored when loading from {1}" +#: src/rougail/user_data.py:332 +msgid "it's a symlink option so we cannot set the value {0}" msgstr "" -#: src/rougail/user_data.py:332 src/rougail/user_data.py:337 -msgid "{0}, it has been loaded from {1}" -msgstr "" - -#: src/rougail/user_data.py:343 -msgid "variable or family \"{0}\" does not exist, it has been loading from {1}" -msgstr "" - -#: src/rougail/user_data.py:347 -msgid "variable or family \"{0}\" does not exist, it will be ignored when loading from {1}" -msgstr "" - -#: src/rougail/user_data.py:353 -msgid "\"{0}\" is the name of a dynamic family, it has been loading from {1}" -msgstr "" - -#: src/rougail/user_data.py:357 -msgid "\"{0}\" is the name of a dynamic family, it will be ignored when loading from {1}" -msgstr "" - -#: src/rougail/user_data.py:365 -msgid "{0} loaded from {1}" -msgstr "" - -#: src/rougail/user_data.py:396 -msgid "variable {0} at index \"{1}\" is {2}, it has been loading from {3}" -msgstr "" - -#: src/rougail/user_data.py:400 -msgid "variable {0} at index \"{1}\" is {2}, it will be ignored when loading from {3}" -msgstr "" - -#: src/rougail/user_data.py:413 -msgid "family {0} is {1}, {2} at index \"{3}\", it has been loading from {4}" -msgstr "" - -#: src/rougail/user_data.py:417 -msgid "family {0} is {1}, {2} at index \"{3}\", it will be ignored when loading from {4}" -msgstr "" - -#: src/rougail/user_data.py:432 -msgid "variable has propery {0}, it has been loading from {1}" -msgstr "" - -#: src/rougail/user_data.py:436 -msgid "variable has property {0}, it will be ignored when loading from {1}" -msgstr "" - -#: src/rougail/user_data.py:446 -msgid "family {0} has property {1}, so cannot access to {2}, it has been loading from {3}" -msgstr "" - -#: src/rougail/user_data.py:450 -msgid "family {0} has property {1}, so cannot access to {2}, it will be ignored when loading from {3}" -msgstr "" - -#: src/rougail/user_data.py:470 +#: src/rougail/user_data.py:334 src/rougail/user_data.py:364 +#: src/rougail/user_data.py:493 src/rougail/user_data.py:505 +#: src/rougail/user_data.py:518 msgid "{0}, it has been loading from {1}" msgstr "" -#: src/rougail/user_data.py:472 +#: src/rougail/user_data.py:336 src/rougail/user_data.py:368 +#: src/rougail/user_data.py:497 src/rougail/user_data.py:509 +#: src/rougail/user_data.py:520 msgid "{0}, it will be ignored when loading from {1}" msgstr "" -#: src/rougail/user_data.py:477 -msgid "the value \"{0}\" is an invalid {1}, {2}" +#: src/rougail/user_data.py:341 src/rougail/user_data.py:346 +msgid "{0}, it has been loaded from {1}" msgstr "" -#: src/rougail/user_data.py:483 +#: src/rougail/user_data.py:360 +msgid "variable or family \"{0}\" does not exist so cannot load \"{1}\"" +msgstr "" + +#: src/rougail/user_data.py:377 +msgid "\"{0}\" is the name of a dynamic family, it has been loading from {1}" +msgstr "" + +#: src/rougail/user_data.py:381 +msgid "\"{0}\" is the name of a dynamic family, it will be ignored when loading from {1}" +msgstr "" + +#: src/rougail/user_data.py:387 +msgid "{0} loaded from {1}" +msgstr "" + +#: src/rougail/user_data.py:426 +msgid "variable {0} at index \"{1}\" is {2}, it has been loading from {3}" +msgstr "" + +#: src/rougail/user_data.py:430 +msgid "variable {0} at index \"{1}\" is {2}, it will be ignored when loading from {3}" +msgstr "" + +#: src/rougail/user_data.py:443 +msgid "family {0} is {1}, {2} at index \"{3}\", it has been loading from {4}" +msgstr "" + +#: src/rougail/user_data.py:447 +msgid "family {0} is {1}, {2} at index \"{3}\", it will be ignored when loading from {4}" +msgstr "" + +#: src/rougail/user_data.py:462 +msgid "variable has propery {0}, it has been loading from {1}" +msgstr "" + +#: src/rougail/user_data.py:466 +msgid "variable has property {0}, it will be ignored when loading from {1}" +msgstr "" + +#: src/rougail/user_data.py:476 +msgid "family {0} has property {1}, so cannot access to {2}, it has been loading from {3}" +msgstr "" + +#: src/rougail/user_data.py:480 +msgid "family {0} has property {1}, so cannot access to {2}, it will be ignored when loading from {3}" +msgstr "" + +#: src/rougail/user_data.py:525 +msgid "the value {0} is an invalid {1}, {2}" +msgstr "" + +#: src/rougail/user_data.py:531 msgid ", it has been loading from {0}" msgstr "" -#: src/rougail/user_data.py:485 +#: src/rougail/user_data.py:533 msgid ", it will be ignored when loading from {0}" msgstr "" +#: src/rougail/user_data.py:566 +msgid "loaded from {0}" +msgstr "" + +#: src/rougail/user_data.py:574 +msgid "{0} (the search key is \"{1}\")" +msgstr "" + #: src/rougail/utils.py:56 msgid "invalid variable or family name \"{0}\" must only contains lowercase ascii character, number or _" msgstr "" @@ -779,23 +802,23 @@ msgstr "" msgid "error for the variable \"{1}\" in jinja \"{0}\": {2}" msgstr "" -#: src/rougail/utils.py:213 +#: src/rougail/utils.py:212 msgid "mandatory" msgstr "" -#: src/rougail/utils.py:214 +#: src/rougail/utils.py:213 msgid "hidden" msgstr "" -#: src/rougail/utils.py:215 +#: src/rougail/utils.py:214 msgid "disabled" msgstr "" -#: src/rougail/utils.py:216 +#: src/rougail/utils.py:215 msgid "unique" msgstr "" -#: src/rougail/utils.py:217 +#: src/rougail/utils.py:216 msgid "auto modified" msgstr "" diff --git a/src/rougail/annotator/property.py b/src/rougail/annotator/property.py index a6d87bbd2..abda2149c 100644 --- a/src/rougail/annotator/property.py +++ b/src/rougail/annotator/property.py @@ -150,7 +150,7 @@ class Annotator(Walk): self.frozen[path] = frozen if path in self.frozen: self.objectspace.properties.add(path, "frozen", self.frozen[path]) - if not variable.auto_save: + if not variable.auto_save and not variable.secret_manager: # if auto_save, save calculated value self.objectspace.properties.add(path, "force_default_on_freeze", True) if not variable.empty and self.objectspace.multis.get(variable.path, False): diff --git a/src/rougail/annotator/variable.py b/src/rougail/annotator/variable.py index 4aed75cd9..8fef48ca5 100644 --- a/src/rougail/annotator/variable.py +++ b/src/rougail/annotator/variable.py @@ -200,6 +200,8 @@ class Annotator(Walk): # pylint: disable=R0903 ) for idx in reversed(indexes_to_remove): variable.params.pop(idx) + if variable.secret_manager: + self.objectspace.properties.add(variable.path, "novalidator", True) def _convert_variable_inference( self, diff --git a/src/rougail/locale/fr/LC_MESSAGES/rougail.mo b/src/rougail/locale/fr/LC_MESSAGES/rougail.mo index d2fa5671e8023d31cca2923ac1d264787178c741..14c17adedca6412813beddd998f3e518bf976db2 100644 GIT binary patch delta 5074 zcma*pdvH|c8OQNA0mDrs5JDgXbFvWv1dv27fuMmTggc?(62utUY&Pt|W_OcK0ukau zRlsY}1+P>o7L{@lSuYg4RY0*y1v{OQ8D#X2T4-xqtd0f7+V5}AN!xMkOyA+z&-&;n?~u%NFoRoH~p zcnp_dRzG8W7{QTv7BjG0nlWXVjg{!ZYcY=eE^0oaQ_F#GaS+z@H)bfdp~l;BFusB= z{0K+m*LVZwrrYCc9L4x<e)u{L z#M4-We?+Y)myc{L#(ca5ufa{u_z@h!_-)jUKgH|tGU~i+E=qDt2`=OQri#uY+=sI< znX}g5Je-N|;6&_`X^&?(ZgD(=%7}|)^~MFL4AdfvH4)6kdr%YEhvV@hjF!;p&c@Hd znK%o#;#fR~rPzn%C__~^93RC3d<(1aOYDx**;sASeAM|(n1ee}zdMGtm_Zs;6K&b# zUqx}41Jse}X&FP7O%`eeH=t5D6RAs6hcnQRn&^wzgjY}*Xyk6n;FG9@eU8fDFlMC* zgzz?e8}&O^Zq%;cM)EU`1IMrrUcw&OgM4YlX?Q(OamE2>ybY&v{5al-DO4`WFy)SQ z$gZ08$l}f8=)*&(1?5DC*?Th_b>du9CRU;{u@2cL6T>n10;=fFA@yW>=Gl*}3%RB# zLFQt-&iG#J$@lu?uy>3pfQU3hWEs zi7K9xsEJsG6d>M(8vg}v!YbZID%yuo8G07=LOO{o+FV9ub}0MM4;Ny0?r$3Cq+kfO z*KNqX%)_YE9mAgZ38vzC%*9Jsf2v6Vw9iLz?EQtIw2l>##E}$|zY$Ewz zNM{|Lsdx(KV&5XW>T4Z0p^EbWY9hbEG(3ZxV!l8NhfcC?jTT@m-{o3FdLJT6`6k-~b*OT|e6BbmF*-1D8-KU&J)8!OfV3kD~VU zC3N8jn2Uc!l4jC)3CzZYScOlaitr*%!cv~i8eE5(*coJDQ8SUVRGnVb47X!1yn-XJ z+Z_A*0@R-Q(1Y7hE53yDb)3qTuc9)NGSA);3)2~wptfu=cEd0xp8qv;>Ns!$+c2N2 zXhJ(tsXT*R)6A*p2kr+ zcR2?RqE>JLnTsh}Xz%$($LAe?jVi)FV+;1>p-;h$s8m0I+M0KU*R{lQf zDY=9Z9Jo~Pe>(RswTt2))-z5e&kfj$x8Ygrhf}Cf?O`QqywVwW;4sFIp|<8t)OGT1 zvArKxGQNnqZVi>FVmw+y{e_&sF%O+EwJfvU9+9Sft3{2bVZ`ryAo`HMudOU`D?!UruIF#j$ z$7MJGx1fsbIaDpgF$WK$et#ARVPCIZ6Zxp~qEqQ;Z>mu%zZ*B=DdeB2CSPoqc^#=s zlTLn1(T6i|4~FsY7{GcS1zqPfvI{1Q)s4c{I0k=?x%gYWT1o$gj#k=rr7@E+3x{I0 zV+ZQ{XHY9Xf=SqiP`jU?UK4LQjr9orP*eIlne8WKB6?y<6WTj?`LoqF@V_Pe9?vv5u=^)NZdrc}`&Og6@F-cCXda9`?p} zq<@{9_x+<0%OA9=Lai&@{(#jGYHoD5hY47FIEP-EEL z;;-wRUwwPf-RSpN4SWXLjizY*kDms-?s`_^^M{>Z$FCH=k(_QtLYBuJ)WriKcfI9W zThQT(MJHs&%OKjR(acX@x(7i#N!itCH0;#dThby!UAh-(d2Q3 z@%M}Jlj4^roxjSe@OylIZ?olY^Li4Ai#VxNE+a>G$3HDO-epX^H}XSYl9SfXGkP?Ttae2~WpP3{U`PI zS@m8vv(bY3P@~%))Wzbpbz`~==0MP6alf#)mEHEan^%xUdr$6YD2$gh#FMgz2i%q? baCEoT?DhD(?99>KUQ4UBcP945iYxyDcKhw@ delta 4467 zcmZA44^)-)9mnzC6#+p+6!8x#7cQa*qFh8E5kb7pf22YRhNuYsK|)ldG?lK|FsGXf z9<8jL8zWQ6Y~FH|P24=%wv$Jf+o`QBSFTOhw%YMjE9cqXpZh$X)9H8m+}H2-+ke5_C8=}=gA0?9cE0p%b1cV9W|yd#+X`Mi-mXz%dp=7V=Ay3 z%ds2lu>U|~(r^n7!5`yvJcIM`f0%&tV}qabn?^dzIB*b$;eRj%2M)5wc{rSL8G5i0 zGq4ROVvjSvh2t0}#Ti4_%tP+g)S}MYjGWr+bH*L$Gk#;?zK78m&YKz!#*tWzx?nYq!mX(99Y!W^dax4T#)VwpWN@`DxD#jLZOla< zXVG}O;|0g)c)J1>*pK&HQ8TuXxtODvjAv0d@F7mZaLQPS1vnR5&_A2bujpiAEE}L0 zedxo-F%{oJFMft)IEHEV!L6tzc?|XaBbbEmpg#8{YH3SYaP5IE)E@W**)FEgP5r5& zDWyJ|K^>}eEyzAJPvK1b0qREoiW@OA(XK!T&S8873voDCSH+f~ZlDvF;}@vURdBcE z*n$1=OOM}}2s#neOEZnd2{^?WH#p-1Sj6!QSb$;FmB|^OV-2!uW(P7ka}evW8#R$6 zb~Il#si^Ojpej)Br=tpNM^?dDI37=;Hr4ycJ~5G_?Z?xD95RK-xy>qPyayv0zl_;< z2DK!gqGp~n#$K8RWEIUm)Klc|qN6+eJ+e>C9aPDNQVzarwxCLX7-!*4T#Q*`?KRzt zn#pBU1wL@bUpeEbH2XX$Si$=xxC}dS5!W{%OtXpu_hT)dMtv}zhj}wLIsP5L#khvs zo{h(F0p7wH=%Z{t+=J8cvSTdksZCdbI{pIcdLQEyJ^!<)lTO%*+BBC@H{$W~tB1Q# z<4Kt5xsz5uI;=8yA(|Gef+<`^-TP(r2Tzj+Epr7S5d+9{t zD;SGC$baT4FNxSU&)z)aa0ughsLit)@8EuH#P)ma3b`h;F&P(OH6Fnl49_>F0qc>u znRoK3zn=HLQ|w)uf)$K6Adjf|B~nfEF+Pk5JbOIK=4sRoyzY!|pgteT`e-RKP!p)c zN^Ez=|3r#oQYf#MZb>2achlL)0X{pa0)B|v8?GX47JfD{5qG1O>KM+%OPGjp z)9lAH2le?XR7DS>mgofP#&2N~Ci#o)=X5%{Ina!%$bM8wU&2i|k_CSP+i)3r*y`o@ zDC)%TIwmmCj8~#c+=J103rAot9w9BE8$IaHrK6ctB9k?b;2b=QWf;NqwCSpl?;6%3gL--`>g8lBbE9gTGnQpuvL%G-*U4JFQ)!l%V#-|il=c6UPGN|CJQBB#CjaS*4Bx)qc-7nR0WHc*q%eSk166!EyZ5c z4g3Ll0L*0W(uX^+2rn$<+r@Ok*s@g3%trQ+IfN_lCbC>+E@zR4P@C)%$Fges--uUH z$K8C1jcs<~5PSoFVKa2Q_1LHK9X7e7NSMHJ7D zW;z*nVJoiEamq!tO%t+x%&)N+NAjjBQjN^XoWu?2kEWgt>Yz^e52UIlmvtD2?KmEL zFbe;Ln%QlfjIlg2DLBuu8TI}%I0;Xo3-7iTr=w~fvscZS5C$rn8s`meKHc3`vWe*V z)?MpDhl!eY@R(rFe(4WdLX}%>J4qwI(17-cjcLd4lZVMd?Ve6LnmKzc*pBepi-ePB z$V22M@(LMAzTR>f_{h)6W>P>@_V1CSMD1A{^AlwCf`7yeM^!Vpd)KK$)5gGC+A5j=}k@%wI^+Yf9R-N9vn06ZFH89XtI&Sk$vO| zqLxSws6*2;yPr%UuaXzYA)=qvpAxmzFUvHBtKx z=@;zrztC7o8p(5HG-)7BL~Xi_nTGe09%r0{C1e~qP8O5L$s*E+tRUg8QWar1E*)i_qFm%rv?TII%wz=4&;A=ZxiWUFhz>% diff --git a/src/rougail/user_data.py b/src/rougail/user_data.py index ad5847f81..483b79893 100644 --- a/src/rougail/user_data.py +++ b/src/rougail/user_data.py @@ -358,7 +358,7 @@ class UserData: subconfig = self.config.option(parent_path) subconfig._set_subconfig() err_msg = _( - 'variable or family "{0}" does not exist so cannot load "{1}' + 'variable or family "{0}" does not exist so cannot load "{1}"' ).format(child_name, path) if self.unknown_user_data_error: msg = _(