Compare commits
9 Commits
redis-pref
...
fc348943c8
Author | SHA1 | Date | |
---|---|---|---|
fc348943c8 | |||
afd5349a7c | |||
562c7cb7b7 | |||
fc87b24c4e | |||
d1847289bd | |||
d5718e0a39 | |||
8cde31fc9c | |||
9420354ec0 | |||
e320d288cc |
2
.env
2
.env
@ -16,7 +16,7 @@
|
|||||||
###> symfony/framework-bundle ###
|
###> symfony/framework-bundle ###
|
||||||
APP_ENV=dev
|
APP_ENV=dev
|
||||||
APP_SECRET=406ccaa0c76a451fdcc2307ea146cbef
|
APP_SECRET=406ccaa0c76a451fdcc2307ea146cbef
|
||||||
###< symfony/framework-bundle ###
|
URL_LINK="http://localhost"
|
||||||
|
|
||||||
# configuration bdd
|
# configuration bdd
|
||||||
DSN_REMOTE_DATABASE="pgsql:host='postgres';port=5432;dbname=lasql"
|
DSN_REMOTE_DATABASE="pgsql:host='postgres';port=5432;dbname=lasql"
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
twig:
|
twig:
|
||||||
globals:
|
globals:
|
||||||
locales: "%locales%"
|
locales: "%locales%"
|
||||||
|
url_link: '%env(URL_LINK)%'
|
||||||
default_path: '%kernel.project_dir%/templates'
|
default_path: '%kernel.project_dir%/templates'
|
||||||
form_themes:
|
form_themes:
|
||||||
- 'bootstrap_5_layout.html.twig'
|
- 'bootstrap_5_layout.html.twig'
|
||||||
|
@ -11,10 +11,12 @@ services:
|
|||||||
- http_proxy=${http_proxy}
|
- http_proxy=${http_proxy}
|
||||||
- https_proxy=${https_proxy}
|
- https_proxy=${https_proxy}
|
||||||
ports:
|
ports:
|
||||||
- 8082:8080
|
- 8082:8071
|
||||||
volumes:
|
volumes:
|
||||||
- ./src:/app/src
|
- ./src:/app/src
|
||||||
- ./config:/app/config
|
- ./config:/app/config
|
||||||
|
- ./translations:/app/translations
|
||||||
|
- ./templates:/app/templates
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
- $HOME/.ssh:/root/.host-ssh:ro
|
- $HOME/.ssh:/root/.host-ssh:ro
|
||||||
tmpfs:
|
tmpfs:
|
||||||
@ -30,7 +32,6 @@ services:
|
|||||||
- "host.docker.internal:host-gateway"
|
- "host.docker.internal:host-gateway"
|
||||||
environment:
|
environment:
|
||||||
- PHP_FPM_MEMORY_LIMIT=128m
|
- PHP_FPM_MEMORY_LIMIT=128m
|
||||||
- APP_ENV=dev
|
|
||||||
- APP_LOCALES=fr,en
|
- APP_LOCALES=fr,en
|
||||||
- HYDRA_ADMIN_BASE_URL=http://hydra:4445
|
- HYDRA_ADMIN_BASE_URL=http://hydra:4445
|
||||||
- TRUSTED_PROXIES=127.0.0.1,REMOTE_ADDR,localhost
|
- TRUSTED_PROXIES=127.0.0.1,REMOTE_ADDR,localhost
|
||||||
@ -42,7 +43,7 @@ services:
|
|||||||
- DSN_REMOTE_DATABASE=pgsql:host='postgres';port=5432;dbname=lasql;
|
- DSN_REMOTE_DATABASE=pgsql:host='postgres';port=5432;dbname=lasql;
|
||||||
- HASH_ALGO_LEGACY="sha256"
|
- HASH_ALGO_LEGACY="sha256"
|
||||||
- SECURITY_PATTERN=password,salt,pepper
|
- SECURITY_PATTERN=password,salt,pepper
|
||||||
|
- CADDY_HTTP_PORT=8071
|
||||||
|
|
||||||
oidc-test:
|
oidc-test:
|
||||||
image: bornholm/oidc-test:v0.0.0-1-g936a77e
|
image: bornholm/oidc-test:v0.0.0-1-g936a77e
|
||||||
@ -82,7 +83,14 @@ services:
|
|||||||
links:
|
links:
|
||||||
- postgres
|
- postgres
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:4444/.well-known/openid-configuration"]
|
test:
|
||||||
|
[
|
||||||
|
"CMD",
|
||||||
|
"wget",
|
||||||
|
"--spider",
|
||||||
|
"-q",
|
||||||
|
"http://127.0.0.1:4444/.well-known/openid-configuration",
|
||||||
|
]
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 10
|
retries: 10
|
||||||
@ -107,9 +115,9 @@ services:
|
|||||||
- 8085:80
|
- 8085:80
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
PGADMIN_DEFAULT_EMAIL: admin@admin.com
|
PGADMIN_DEFAULT_EMAIL: admin@admin.com
|
||||||
PGADMIN_DEFAULT_PASSWORD: admin
|
PGADMIN_DEFAULT_PASSWORD: admin
|
||||||
PGADMIN_SERVER_JSON_FILE: /pgadminfile/server.json
|
PGADMIN_SERVER_JSON_FILE: /pgadminfile/server.json
|
||||||
volumes:
|
volumes:
|
||||||
- ./misc/compose/pgadmin:/pgadminfile/:ro
|
- ./misc/compose/pgadmin:/pgadminfile/:ro
|
||||||
mariadb:
|
mariadb:
|
||||||
|
@ -12,5 +12,4 @@ ARG ADDITIONAL_PACKAGES="bash=5.2.15-r0 \
|
|||||||
php81-pdo_mysql=${PHP_PKG_VERSION} \
|
php81-pdo_mysql=${PHP_PKG_VERSION} \
|
||||||
php81-bcmath=${PHP_PKG_VERSION}"
|
php81-bcmath=${PHP_PKG_VERSION}"
|
||||||
|
|
||||||
FROM reg.cadoles.com/cadoles/symfony:alpine-php-8.1-standalone-2023.11.16-stable.1541.eec311d
|
FROM reg.cadoles.com/cadoles/symfony:alpine-php-8.1-base-2024.3.29-stable.1046.c568908
|
||||||
|
|
@ -12,5 +12,5 @@ ARG ADDITIONAL_PACKAGES="bash=5.2.15-r0 \
|
|||||||
php81-pdo_mysql=${PHP_PKG_VERSION} \
|
php81-pdo_mysql=${PHP_PKG_VERSION} \
|
||||||
php81-bcmath=${PHP_PKG_VERSION}"
|
php81-bcmath=${PHP_PKG_VERSION}"
|
||||||
|
|
||||||
FROM reg.cadoles.com/cadoles/symfony:alpine-php-8.1-standalone-2023.11.16-stable.1541.eec311d
|
FROM reg.cadoles.com/cadoles/symfony:alpine-php-8.1-standalone-2024.3.29-stable.1046.c568908
|
||||||
|
USER www-data
|
8459
package-lock.json
generated
8459
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@
|
|||||||
"@symfony/webpack-encore": "^4.1.2",
|
"@symfony/webpack-encore": "^4.1.2",
|
||||||
"core-js": "^3.23.0",
|
"core-js": "^3.23.0",
|
||||||
"regenerator-runtime": "^0.13.9",
|
"regenerator-runtime": "^0.13.9",
|
||||||
"webpack": "^5.74.0",
|
"webpack": "^5.91.0",
|
||||||
"webpack-cli": "^4.10.0",
|
"webpack-cli": "^4.10.0",
|
||||||
"webpack-notifier": "^1.15.0"
|
"webpack-notifier": "^1.15.0"
|
||||||
},
|
},
|
||||||
|
77
readme.md
77
readme.md
@ -3,35 +3,61 @@
|
|||||||
Une [LoginApp](https://www.ory.sh/docs/hydra/concepts/login) pour le serveur OpenID Connect [Ory/Hydra](https://github.com/ory/hydra).
|
Une [LoginApp](https://www.ory.sh/docs/hydra/concepts/login) pour le serveur OpenID Connect [Ory/Hydra](https://github.com/ory/hydra).
|
||||||
Elle permet de se connecter à une base de donnée et de vérifier un mot de passe donné sur une mire locale puis d'aller chercher des données demandées
|
Elle permet de se connecter à une base de donnée et de vérifier un mot de passe donné sur une mire locale puis d'aller chercher des données demandées
|
||||||
|
|
||||||
|
## Image
|
||||||
|
|
||||||
|
- L'image standalone est construite en utilisant l'utilisateur `www-data` pour lancer supervisor (qui va lancer le process php-fpm et caddy, avec ce même user)
|
||||||
|
- C'est pour cela qu'on fini par "USER www-data" à la fin de `misc/images/hydra-oidc-standalone/Dockerfile`, sinon le conteneur `hydra-sql` ne tournera pas
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
### Variables d'environnement
|
### Variables d'environnement
|
||||||
|
|
||||||
|Variable|Description|Valeur par défaut|Utilisation|
|
| Variable | Description | Valeur par défaut | Utilisation |
|
||||||
|--------|-----------|-----------------|-----------|
|
| ----------------------------------- | ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ----------- |
|
||||||
|`APP_ENV`|Environnement symfony|prod|dev:prod|
|
| `APP_ENV` | Environnement symfony | prod | dev:prod |
|
||||||
|`APP_DEBUG`|Console de debug symofny|false|true:false|
|
| `APP_DEBUG` | Console de debug symofny | false | true:false |
|
||||||
|`PHP_FPM_MEMORY_LIMIT`|php-fpm memory limit|128mo||
|
| `HYDRA_ADMIN_BASE_URL` | Url d'admin Hydra ou dispatcher | http://hydra:4445 | obligatoire |
|
||||||
|`NGINX_APP_SERVER_LISTEN`|Port d'écoute de l'application|8080||
|
| `BASE_URL` | Url d'accès | http://localhost:8080 | obligatoire |
|
||||||
|`HYDRA_ADMIN_BASE_URL`|Url d'admin Hydra ou dispatcher|http://hydra:4445|obligatoire|
|
| `DSN_REMOTE_DATABASE` | DSN de la BDD | postgresql://lasql:lasql@postgres:5432/lasql?serverVersion=15&chartset=utf8 | |
|
||||||
|`BASE_URL`|Url d'accès|http://localhost:8080|obligatoire|
|
| `DB_USER` | User de connection à la BDD | lasql | obligatoire |
|
||||||
|`DSN_REMOTE_DATABASE`|DSN de la BDD|postgresql://lasql:lasql@postgres:5432/lasql?serverVersion=15&chartset=utf8||
|
| `DB_PASSWORD` | PAssword de l'utilisateur de la BDD | lasql | obligatoire |
|
||||||
|`DB_USER`|User de connection à la BDD|lasql|obligatoire|
|
| `APP_LOCALES` | Langues disponibles dans l'application | fr,en | obligatoire |
|
||||||
|`DB_PASSWORD`|PAssword de l'utilisateur de la BDD|lasql|obligatoire|
|
| `HASH_ALGO_LEGACY` | ALgorythme de Hashage par défaut | sha256 | |
|
||||||
|`APP_LOCALES`|Langues disponibles dans l'application|fr,en|obligatoire|
|
| `SECURITY_PATTERN` | Séquence à employer pour le hashage du mot de passe | password,salt,pepper | obligatoire |
|
||||||
|`HASH_ALGO_LEGACY`|ALgorythme de Hashage par défaut|sha256||
|
| `PEPPER` | Pepper utilisé pour le Hashage | | |
|
||||||
|`SECURITY_PATTERN`|Séquence à employer pour le hashage du mot de passe|password,salt,pepper|obligatoire|
|
| `REDIS_DSN` | DSN du serveur Redis | redis://redis:6379 | obligatoire |
|
||||||
|`PEPPER`|Pepper utilisé pour le Hashage|||
|
| `URL_LINK` | Url pouvant être utilisée dans les liens des templates | | |
|
||||||
|`REDIS_DSN`|DSN du serveur Redis|redis://redis:6379|obligatoire|
|
| `CADDY_HTTP_PORT` | Port d'écoute de l'application | 8080 | |
|
||||||
|
| `CADDY_HTTPS_PORT` | Port d'écoute de l'application | 8443 | |
|
||||||
|
| `CADDY_DATA_FS` | Chemin vers le répertoire utilisé pour le stockage de caddy | /tmp/caddy | |
|
||||||
|
| `CADDY_APP_ROOT_PUBLIC` | Chemin vers le répertoire utilisé pour servire les fichiers | /app/public | |
|
||||||
|
| `CADDY_PHP_INDEX` | Nom du fichier a utiliser pour servir l'application | index.php | |
|
||||||
|
| `CADDY_APP_UPSTREAM_BACKEND_SERVER` | Adresse du serveur backend FastCGI PHP vers lequel doit être diriger les requêtes PHP. | unix//tmp/php-fpm.sock | |
|
||||||
|
| `CADDY_TRUSTED_PROXIES` | Spécification des adresses IP /plage IP étant sur pour transmettre les requetes HTTP | private_ranges | |
|
||||||
|
| `CADDY_LOG_FORMAT` | Spécification du format des logs | console | |
|
||||||
|
| `CADDY_LOG_LEVEL` | Spécification du niveau de verbosité des logs | INFO | |
|
||||||
|
| `PHP_FPM_MEMORY_LIMIT` | Spécification de la mémoire limite maximale alloué au processus PHP-FPM | 128M | |
|
||||||
|
| `PHP_FPM_DISPLAY_ERRORS` | Afficahge des erreurs dans la sortie du serveur web. | off | |
|
||||||
|
| `PHP_FPM_LISTEN` | Spécification du serveur sur lequel PHP FPM écoute les connexion. | /tmp/php-fpm.sock | |
|
||||||
|
| `PHP_FPM_LOG_LEVEL` | Spécification du niveau de verbosité des logs PHP-FPM | notice | |
|
||||||
|
| `PHP_FPM_PM` | Définition du mode de gestion des processus PHP-FPM | dynamic | |
|
||||||
|
| `PHP_FPM_PM_MAX_CHILDREN` | Définition du nombre maximum de processus enfants que PHP-FPM peut générer | 5 | |
|
||||||
|
| `PHP_FPM_PM_START_SERVERS` | Définition du nombre de processus enfants que PHP-FPM va démarrer au lancement de PHP-FPM | 2 | |
|
||||||
|
| `PHP_FPM_PM_MIN_SPARE_SERVERS` | Définition du nombre minimum de processus enfants inactifs que PHP-FPM doit conserver en réserve. | 1 | |
|
||||||
|
| `PHP_FPM_PM_MAX_SPARE_SERVERS` | Définition du nombre maximum de processus enfants inactifs que PHP-FPM peut conserver en réserve. | 3 | |
|
||||||
|
| `XDG_DATA_HOME` | Définition du répertoire de base pour le stockage des données spécifiques à l'utilisateur. | /tmp/data | |
|
||||||
|
|
||||||
### Algorithmes de hashage compatibles
|
### Algorithmes de hashage compatibles
|
||||||
|
|
||||||
La login app est compatible par défaut avec toutes les méthodes de hashage de PHP et avec SSHA. Aucune configuration supplémentaire n'est nécessaire.
|
La login app est compatible par défaut avec toutes les méthodes de hashage de PHP et avec SSHA. Aucune configuration supplémentaire n'est nécessaire.
|
||||||
|
|
||||||
### Pattern de hashage
|
### Pattern de hashage
|
||||||
|
|
||||||
Définir dans la variable `SECURITY_PATTERN` le pattern utilisé avec les mots clés: password | salt | pepper séparé par des virgules pour représenter la séquence à employer pour le hashage du mot de passe.
|
Définir dans la variable `SECURITY_PATTERN` le pattern utilisé avec les mots clés: password | salt | pepper séparé par des virgules pour représenter la séquence à employer pour le hashage du mot de passe.
|
||||||
Exemple : `SECURITY_PATTERN="salt,password,pepper"`
|
Exemple : `SECURITY_PATTERN="salt,password,pepper"`
|
||||||
|
|
||||||
### Schéma de base de donnée
|
### Schéma de base de donnée
|
||||||
|
|
||||||
Permet d'adapter les requetes SQL à la base de donnée utilisée en indiquant les noms de colonnes de celle-ci.
|
Permet d'adapter les requetes SQL à la base de donnée utilisée en indiquant les noms de colonnes de celle-ci.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
@ -50,6 +76,7 @@ sql_login:
|
|||||||
## Environnement de développement
|
## Environnement de développement
|
||||||
|
|
||||||
### Tester
|
### Tester
|
||||||
|
|
||||||
Se rendre sur [http://localhost:8000/](http://localhost:8000/) et cliquer `Login` pour commencer une nouvelle connexion.
|
Se rendre sur [http://localhost:8000/](http://localhost:8000/) et cliquer `Login` pour commencer une nouvelle connexion.
|
||||||
3 utilisateurs d'exemple sont disponible pour les tests:
|
3 utilisateurs d'exemple sont disponible pour les tests:
|
||||||
| Login | Mot de passe | Algorithme |
|
| Login | Mot de passe | Algorithme |
|
||||||
@ -59,8 +86,10 @@ Se rendre sur [http://localhost:8000/](http://localhost:8000/) et cliquer `Login
|
|||||||
| test3@test.com | 123456 | SSHA |
|
| test3@test.com | 123456 | SSHA |
|
||||||
|
|
||||||
### Base de donnée
|
### Base de donnée
|
||||||
|
|
||||||
2 bases de données différentes sont disponible pour les tests.
|
2 bases de données différentes sont disponible pour les tests.
|
||||||
Pour choisir la base de donnée à utiliser, modifier les d'environnement relatives à la base de donnée.
|
Pour choisir la base de donnée à utiliser, modifier les d'environnement relatives à la base de donnée.
|
||||||
|
|
||||||
- **URL Postgres**: `postgresql://lasql:lasql@mariadb:3306/lasql?serverVersion=15&chartset=utf8`
|
- **URL Postgres**: `postgresql://lasql:lasql@mariadb:3306/lasql?serverVersion=15&chartset=utf8`
|
||||||
- **URL Mariadb**: `mysql://lasql:lasql@postgres:5432/lasql`
|
- **URL Mariadb**: `mysql://lasql:lasql@postgres:5432/lasql`
|
||||||
|
|
||||||
@ -71,11 +100,11 @@ ex : `'redis:?host[redis1:26379]&host[redis2:26379]&host[redis3:26379]&redis_sen
|
|||||||
|
|
||||||
### Liste des ports
|
### Liste des ports
|
||||||
|
|
||||||
|Nom|Description|Port(s) hôte utilisé(s)|
|
| Nom | Description | Port(s) hôte utilisé(s) |
|
||||||
|---|-----------|------------------|
|
| ----------- | -------------------------------------------------------------------------- | ----------------------- |
|
||||||
|`oidc-test`|Application factice permettant de tester l'authentification OpenID Connect|`8080`|
|
| `oidc-test` | Application factice permettant de tester l'authentification OpenID Connect | `8080` |
|
||||||
|`hydra`|Serveur Ory/Hydra|`8081`|
|
| `hydra` | Serveur Ory/Hydra | `8081` |
|
||||||
|`hydra-sql`|Login/Consent/Logout App (ce projet)|`8082`|
|
| `hydra-sql` | Login/Consent/Logout App (ce projet) | `8082` |
|
||||||
|`postgres`| Base de donnée postgres support du test et pour hydra|`5432`
|
| `postgres` | Base de donnée postgres support du test et pour hydra | `5432` |
|
||||||
|`mariadb`| Base de donnée mariadb support du test|`3306`
|
| `mariadb` | Base de donnée mariadb support du test | `3306` |
|
||||||
|`pgadmin`| pour administrer la base de donnée |`8085`
|
| `pgadmin` | pour administrer la base de donnée | `8085` |
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
form:
|
|
||||||
label:
|
|
||||||
login: login
|
|
||||||
password: Password
|
|
||||||
remember_me: Remember me
|
|
@ -1,5 +0,0 @@
|
|||||||
form:
|
|
||||||
label:
|
|
||||||
login: Login
|
|
||||||
password: Mot de passe
|
|
||||||
remember_me: Se souvenir de moi
|
|
@ -13,6 +13,10 @@
|
|||||||
<source>error.password</source>
|
<source>error.password</source>
|
||||||
<target>Incorrect password</target>
|
<target>Incorrect password</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="36t19qm" resname="error.sql_login">
|
||||||
|
<source>error.sql_login</source>
|
||||||
|
<target>Connection to database encountered a problem</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="lBole_G" resname="error.pdo">
|
<trans-unit id="lBole_G" resname="error.pdo">
|
||||||
<source>error.pdo</source>
|
<source>error.pdo</source>
|
||||||
<target>Connection to database encountered a problem</target>
|
<target>Connection to database encountered a problem</target>
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
error:
|
|
||||||
login: 'Incorrect login'
|
|
||||||
password: 'Incorrect password'
|
|
||||||
sql_login: 'Connection to database encountered a problem'
|
|
@ -13,6 +13,10 @@
|
|||||||
<source>error.password</source>
|
<source>error.password</source>
|
||||||
<target>Mot de passe incorrect</target>
|
<target>Mot de passe incorrect</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="36t19qm" resname="error.sql_login">
|
||||||
|
<source>error.sql_login</source>
|
||||||
|
<target>La connexion à la base de données a rencontré un problème</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="lBole_G" resname="error.pdo">
|
<trans-unit id="lBole_G" resname="error.pdo">
|
||||||
<source>error.pdo</source>
|
<source>error.pdo</source>
|
||||||
<target>La connexion à la base de déonnées à rencontré un problème</target>
|
<target>La connexion à la base de déonnées à rencontré un problème</target>
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
error:
|
|
||||||
login: 'Login incorrect ou inconnu'
|
|
||||||
password: 'Mot de passe incorrect'
|
|
||||||
sql_login: 'La connexion à la base de données a rencontré un problème'
|
|
@ -405,6 +405,30 @@
|
|||||||
<source>The value of the netmask should be between {{ min }} and {{ max }}.</source>
|
<source>The value of the netmask should be between {{ min }} and {{ max }}.</source>
|
||||||
<target>The value of the netmask should be between {{ min }} and {{ max }}.</target>
|
<target>The value of the netmask should be between {{ min }} and {{ max }}.</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="O5pay9e" resname="The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.">
|
||||||
|
<source>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</source>
|
||||||
|
<target>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="f_lviDt" resname="The password strength is too low. Please use a stronger password.">
|
||||||
|
<source>The password strength is too low. Please use a stronger password.</source>
|
||||||
|
<target>The password strength is too low. Please use a stronger password.</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="xfCh6.k" resname="This value contains characters that are not allowed by the current restriction-level.">
|
||||||
|
<source>This value contains characters that are not allowed by the current restriction-level.</source>
|
||||||
|
<target>This value contains characters that are not allowed by the current restriction-level.</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="x15dlan" resname="Using invisible characters is not allowed.">
|
||||||
|
<source>Using invisible characters is not allowed.</source>
|
||||||
|
<target>Using invisible characters is not allowed.</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="2NiS4YC" resname="Mixing numbers from different scripts is not allowed.">
|
||||||
|
<source>Mixing numbers from different scripts is not allowed.</source>
|
||||||
|
<target>Mixing numbers from different scripts is not allowed.</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="W8N1HuG" resname="Using hidden overlay characters is not allowed.">
|
||||||
|
<source>Using hidden overlay characters is not allowed.</source>
|
||||||
|
<target>Using hidden overlay characters is not allowed.</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id=".SEaaBa" resname="This form should not contain extra fields.">
|
<trans-unit id=".SEaaBa" resname="This form should not contain extra fields.">
|
||||||
<source>This form should not contain extra fields.</source>
|
<source>This form should not contain extra fields.</source>
|
||||||
<target>This form should not contain extra fields.</target>
|
<target>This form should not contain extra fields.</target>
|
||||||
|
@ -405,6 +405,30 @@
|
|||||||
<source>The value of the netmask should be between {{ min }} and {{ max }}.</source>
|
<source>The value of the netmask should be between {{ min }} and {{ max }}.</source>
|
||||||
<target>La valeur du masque de réseau doit être comprise entre {{ min }} et {{ max }}.</target>
|
<target>La valeur du masque de réseau doit être comprise entre {{ min }} et {{ max }}.</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="O5pay9e" resname="The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.">
|
||||||
|
<source>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</source>
|
||||||
|
<target>Le nom du fichier est trop long. Il doit contenir au maximum {{ filename_max_length }} caractère.|Le nom de fichier est trop long. Il doit contenir au maximum {{ filename_max_length }} caractères.</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="f_lviDt" resname="The password strength is too low. Please use a stronger password.">
|
||||||
|
<source>The password strength is too low. Please use a stronger password.</source>
|
||||||
|
<target>La force du mot de passe est trop faible. Veuillez utiliser un mot de passe plus fort.</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="xfCh6.k" resname="This value contains characters that are not allowed by the current restriction-level.">
|
||||||
|
<source>This value contains characters that are not allowed by the current restriction-level.</source>
|
||||||
|
<target>Cette valeur contient des caractères qui ne sont pas autorisés par le niveau de restriction actuel.</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="x15dlan" resname="Using invisible characters is not allowed.">
|
||||||
|
<source>Using invisible characters is not allowed.</source>
|
||||||
|
<target>Utiliser des caractères invisibles n'est pas autorisé.</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="2NiS4YC" resname="Mixing numbers from different scripts is not allowed.">
|
||||||
|
<source>Mixing numbers from different scripts is not allowed.</source>
|
||||||
|
<target>Mélanger des chiffres provenant de différents scripts n'est pas autorisé.</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="W8N1HuG" resname="Using hidden overlay characters is not allowed.">
|
||||||
|
<source>Using hidden overlay characters is not allowed.</source>
|
||||||
|
<target>Utiliser des caractères de superposition cachés n'est pas autorisé.</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id=".SEaaBa" resname="This form should not contain extra fields.">
|
<trans-unit id=".SEaaBa" resname="This form should not contain extra fields.">
|
||||||
<source>This form should not contain extra fields.</source>
|
<source>This form should not contain extra fields.</source>
|
||||||
<target>Ce formulaire ne doit pas contenir de champs supplémentaires.</target>
|
<target>Ce formulaire ne doit pas contenir de champs supplémentaires.</target>
|
||||||
|
@ -13,6 +13,22 @@
|
|||||||
<source>submit</source>
|
<source>submit</source>
|
||||||
<target>Submit</target>
|
<target>Submit</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="LpHwdkN" resname="view.base.title">
|
||||||
|
<source>view.base.title</source>
|
||||||
|
<target>Hydra SQL</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="DjhkdFJ" resname="view.login.title">
|
||||||
|
<source>view.login.title</source>
|
||||||
|
<target>Sign in</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="UkVIwCA" resname="view.error.title">
|
||||||
|
<source>view.error.title</source>
|
||||||
|
<target>Error</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="bmlMAb9" resname="view.error.text">
|
||||||
|
<source>view.error.text</source>
|
||||||
|
<target>Error</target>
|
||||||
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
</xliff>
|
</xliff>
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
sign_in: Please, sign in
|
|
||||||
submit: Submit
|
|
@ -13,6 +13,22 @@
|
|||||||
<source>submit</source>
|
<source>submit</source>
|
||||||
<target>Valider</target>
|
<target>Valider</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="LpHwdkN" resname="view.base.title">
|
||||||
|
<source>view.base.title</source>
|
||||||
|
<target>Hydra SQL</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="DjhkdFJ" resname="view.login.title">
|
||||||
|
<source>view.login.title</source>
|
||||||
|
<target>Identifiez-vous</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="UkVIwCA" resname="view.error.title">
|
||||||
|
<source>view.error.title</source>
|
||||||
|
<target>Erreur</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="bmlMAb9" resname="view.error.text">
|
||||||
|
<source>view.error.text</source>
|
||||||
|
<target>Erreur</target>
|
||||||
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
</xliff>
|
</xliff>
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
sign_in: Connectez-vous
|
|
||||||
submit: Valider
|
|
Reference in New Issue
Block a user