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` | |
-| ****
**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` | |
+| ****
**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` | |
-| ****
**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` | |
+| ****
**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 d2fa5671e..14c17aded 100644
Binary files a/src/rougail/locale/fr/LC_MESSAGES/rougail.mo and b/src/rougail/locale/fr/LC_MESSAGES/rougail.mo differ
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 = _(