From 2d541394cc7d047a9d67d1926711a3c80b09e61c Mon Sep 17 00:00:00 2001
From: Bubka <858858+Bubka@users.noreply.github.com>
Date: Wed, 30 Sep 2020 20:48:42 +0200
Subject: [PATCH] Replace Composer package with npm package to handle js
languages strings
---
README.md | 1 -
composer.json | 1 -
composer.lock | 58 +--
config/vue-i18n-generator.php | 93 -----
package-lock.json | 36 ++
package.json | 1 +
public/js/locales.js | 1 -
resources/js/langs/i18n.js | 2 +-
resources/js/langs/locales.js | 585 ------------------------------
resources/views/landing.blade.php | 1 -
webpack.mix.js | 1 -
11 files changed, 40 insertions(+), 740 deletions(-)
delete mode 100644 config/vue-i18n-generator.php
delete mode 100644 public/js/locales.js
delete mode 100644 resources/js/langs/locales.js
diff --git a/README.md b/README.md
index 5ef15d72..b42d1411 100644
--- a/README.md
+++ b/README.md
@@ -66,7 +66,6 @@ #### Prepare some stuff
php artisan passport:install
php artisan storage:link
php artisan config:cache
-php artisan vue-i18n:generate
```
You are ready to go.
diff --git a/composer.json b/composer.json
index b63875f8..f8f5bb11 100644
--- a/composer.json
+++ b/composer.json
@@ -23,7 +23,6 @@
"beyondcode/laravel-dump-server": "^1.0",
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
- "martinlindhe/laravel-vue-i18n-generator": "^0.1.42",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^3.0",
"phpunit/phpunit": "^7.5"
diff --git a/composer.lock b/composer.lock
index bb7a48ab..96cf2b34 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "76b4fd00e8ddf636583ffb0a3dcc30bb",
+ "content-hash": "f01d597b2ba10db6dcab71530946be5a",
"packages": [
{
"name": "appstract/laravel-options",
@@ -5219,61 +5219,6 @@
],
"time": "2020-07-09T08:09:16+00:00"
},
- {
- "name": "martinlindhe/laravel-vue-i18n-generator",
- "version": "0.1.46",
- "source": {
- "type": "git",
- "url": "https://github.com/martinlindhe/laravel-vue-i18n-generator.git",
- "reference": "ddc52890f0204dff64d25e30c3473332904c6138"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/martinlindhe/laravel-vue-i18n-generator/zipball/ddc52890f0204dff64d25e30c3473332904c6138",
- "reference": "ddc52890f0204dff64d25e30c3473332904c6138",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "ext-mbstring": "*",
- "illuminate/console": "~5.1.0|~5.2.0|~5.3.0|~5.4.0|~5.5.0|~5.6.0|~5.7.0|~5.8.0|~6.0|~7.0",
- "illuminate/support": "~5.1.0|~5.2.0|~5.3.0|~5.4.0|~5.5.0|~5.6.0|~5.7.0|~5.8.0|~6.0|~7.0",
- "php": ">=5.5.0"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.7"
- },
- "type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "MartinLindhe\\VueInternationalizationGenerator\\GeneratorProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "MartinLindhe\\VueInternationalizationGenerator\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Martin Lindhe",
- "email": "martin@ubique.se"
- }
- ],
- "description": "Generates a vue-i18n compatible include file from your Laravel translations.",
- "homepage": "http://github.com/martinlindhe/laravel-vue-i18n-generator",
- "keywords": [
- "laravel",
- "vue-i18n"
- ],
- "time": "2020-03-10T18:55:52+00:00"
- },
{
"name": "mockery/mockery",
"version": "1.3.3",
@@ -6012,6 +5957,7 @@
"keywords": [
"tokenizer"
],
+ "abandoned": true,
"time": "2019-09-17T06:23:10+00:00"
},
{
diff --git a/config/vue-i18n-generator.php b/config/vue-i18n-generator.php
deleted file mode 100644
index 9ad52c0b..00000000
--- a/config/vue-i18n-generator.php
+++ /dev/null
@@ -1,93 +0,0 @@
- '/resources/lang',
-
- /*
- |--------------------------------------------------------------------------
- | Laravel translation files
- |--------------------------------------------------------------------------
- |
- | You can choose which translation files to be generated.
- | Note: leave this empty for all the translation files to be generated.
- |
- */
-
- 'langFiles' => [
- /*
- 'pagination',
- 'passwords'
- */
- ],
-
- /*
- |--------------------------------------------------------------------------
- | Excluded files & folders
- |--------------------------------------------------------------------------
- |
- | Exclude translation files, generic files or folders you don't need.
- |
- */
- 'excludes' => [
- /*
- 'validation',
- 'example.file',
- 'example-folder',
- */
- ],
-
- /*
- |--------------------------------------------------------------------------
- | Output file
- |--------------------------------------------------------------------------
- |
- | The javascript path where I will place the generated file.
- | Note: the path will be prepended to point to the App directory.
- |
- */
- 'jsPath' => '/resources/js/langs/',
- 'jsFile' => '/resources/js/langs/locales.js',
-
- /*
- |--------------------------------------------------------------------------
- | i18n library
- |--------------------------------------------------------------------------
- |
- | Specify the library you use for localization.
- | Options are vue-i18n or vuex-i18n.
- |
- */
- 'i18nLib' => 'vue-i18n',
-
- /*
- |--------------------------------------------------------------------------
- | Output messages
- |--------------------------------------------------------------------------
- |
- | Specify if the library should show "written to" messages
- | after generating json files.
- |
- */
- 'showOutputMessages' => false,
-
- /*
- |--------------------------------------------------------------------------
- | Escape character
- |--------------------------------------------------------------------------
- |
- | Allows to escape translations strings that should not be treated as a
- | variable
- |
- */
- 'escape_char' => '!',
-];
diff --git a/package-lock.json b/package-lock.json
index 4560edd2..6ce6c1a7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1076,6 +1076,18 @@
"resolved": "https://registry.npmjs.org/@fortawesome/vue-fontawesome/-/vue-fontawesome-0.1.10.tgz",
"integrity": "sha512-b2+SLF31h32LSepVcXe+BQ63yvbq5qmTCy4KfFogCYm2bn68H5sDWUnX+U7MBqnM2aeEk9M7xSoqGnu+wSdY6w=="
},
+ "@kirschbaum-development/laravel-translations-loader": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@kirschbaum-development/laravel-translations-loader/-/laravel-translations-loader-1.0.2.tgz",
+ "integrity": "sha512-85FhK4AXZJSgWyjE1wg0+qaT0kL+VYUTY/gk9TmCxPL6qYFW3BXxjQi0pPDr7D6F2X+23s7At7ogf4xK0AEUWw==",
+ "dev": true,
+ "requires": {
+ "klaw-sync": "^6.0.0",
+ "loader-utils": "^1.1.0",
+ "lodash": "^4.17.11",
+ "php-array-parser": "^1.0.1"
+ }
+ },
"@mrmlnc/readdir-enhanced": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
@@ -5360,6 +5372,15 @@
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
},
+ "klaw-sync": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
+ "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.11"
+ }
+ },
"laravel-mix": {
"version": "5.0.5",
"resolved": "https://registry.npmjs.org/laravel-mix/-/laravel-mix-5.0.5.tgz",
@@ -6550,6 +6571,21 @@
"sha.js": "^2.4.8"
}
},
+ "php-array-parser": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/php-array-parser/-/php-array-parser-1.0.1.tgz",
+ "integrity": "sha512-elnanzvSd/+U2eWD9Hp2MIab6LzWlnp9J+sTrQasDoR6VsWMDa3fDYBS8pojvu3RwPbpgDUHUxV5WGhfJ1NewQ==",
+ "dev": true,
+ "requires": {
+ "php-parser": "^2.0.3"
+ }
+ },
+ "php-parser": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/php-parser/-/php-parser-2.2.0.tgz",
+ "integrity": "sha1-ZzhPClkz2770C+qwqzHQuMWC/4g=",
+ "dev": true
+ },
"picomatch": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
diff --git a/package.json b/package.json
index 9c13ff8e..dbb64bb5 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
+ "@kirschbaum-development/laravel-translations-loader": "^1.0.2",
"cross-env": "^5.2.1",
"laravel-mix": "^5.0.5",
"lodash": "^4.17.20",
diff --git a/public/js/locales.js b/public/js/locales.js
deleted file mode 100644
index 1e2c949a..00000000
--- a/public/js/locales.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{1:function(e,t,a){e.exports=a("95I4")},"95I4":function(e,t,a){"use strict";a.r(t),t.default={en:{auth:{sign_out:"Sign out",sign_in:"Sign in",register:"Register",hello:"Hi {username} !",throttle:"Too many login attempts. Please try again in {seconds} seconds.",already_authenticated:"Already authenticated",confirm:{logout:"Are you sure you want to log out?"},forms:{name:"Name",login:"Login",email:"Email",password:"Password",confirm_password:"Confirm password",confirm_new_password:"Confirm new password",dont_have_account_yet:"Don't have your account yet?",already_register:"Already registered?",password_do_not_match:"Password do not match",forgot_your_password:"Forgot your password?",request_password_reset:"Request a password reset",reset_password:"Reset password",new_password:"New password",current_password:{label:"Current password",help:"Fill in your current password to confirm that it's you"},change_password:"Change password",send_password_reset_link:"Send password reset link",change_your_password:"Change your password",password_successfully_changed:"Password successfully changed ",edit_account:"Edit account",profile_saved:"Profile successfully updated!",welcome_to_demo_app_use_those_credentials:"Welcome to the 2FAuth demo.
You can connect using the email address demo@2fauth.app and the password demo"}},commons:{cancel:"Cancel",update:"Update",copy_to_clipboard:"Copy to clipboard",profile:"Profile",edit:"Edit",delete:"Delete",save:"Save",close:"Close",demo_do_not_post_sensitive_data:"This is a demo app, do not post any sensitive data"},errors:{resource_not_found:"Resource not found",error_occured:"An error occured:",already_one_user_registered:"There is already a registered user.",cannot_register_more_user:"You cannot register more than one user.",refresh:"refresh",please:"Please ",response:{no_valid_otp:"No valid OTP resource in this QR code"},something_wrong_with_server:"Something is wrong with your server",Unable_to_decrypt_uri:"Unable to decrypt uri",wrong_current_password:"Wrong current password, nothing has changed"},languages:{en:"English",fr:"French"},pagination:{previous:"« Previous",next:"Next »"},passwords:{password:"Passwords must be at least eight characters and match the confirmation.",reset:"Your password has been reset!",sent:"We have e-mailed your password reset link!",token:"This password reset token is invalid.",user:"We can't find a user with that e-mail address."},settings:{settings:"Settings",account:"Account",password:"Password",options:"Options",confirm:[],forms:{edit_settings:"Edit settings",setting_saved:"Settings saved",language:{label:"Language",help:"Change the language used to translate the app interface."},show_token_as_dot:{label:"Show generated tokens as dot",help:"Replace generated token caracters with *** to ensure confidentiality. Do not affect the copy/paste feature."},close_token_on_copy:{label:"Close token after copy",help:"Automatically close the popup showing the generated token after it has been copied"},use_basic_qrcode_reader:{label:"Use basic qrcode reader",help:"If you experiences issues when capturing qrCodes enables this option to switch to a more basic but more reliable qrcode reader"},display_mode:{label:"Display mode",help:"Choose whether you want accounts to be displayed as a list or as a grid"},grid:"Grid",list:"List"}},twofaccounts:{service:"Service",account:"Account",icon:"Icon",new:"New",no_account_here:"No 2FA here!",add_first_account:"Add your first account",use_full_form:"Or use the full form",add_one:"Add one",manage:"Manage",done:"Done",forms:{service:{placeholder:"example.com"},account:{placeholder:"John DOE"},new_account:"New account",edit_account:"Edit account",otp_uri:"OTP Uri",hotp_counter:"HOTP Counter",scan_qrcode:"Scan a qrcode",use_qrcode:{val:"Use a qrcode",title:"Use a QR code to fill the form magically"},unlock:{val:"Unlock",title:"Unlock it (at your own risk)"},lock:{val:"Lock",title:"Lock it"},choose_image:"Choose an image…",create:"Create",save:"Save",test:"Test"},stream:{need_grant_permission:"You need to grant camera access permission",not_readable:"Fail to load scanner. Is the camera already in use?",no_cam_on_device:"No camera on this device",secured_context_required:"Secure context required (HTTPS or localhost)",camera_not_suitable:"Installed cameras are not suitable",stream_api_not_supported:"Stream API is not supported in this browser"},confirm:{delete:"Are you sure you want to delete this account?",cancel:"The account will be lost. Are you sure?"}},validation:{accepted:"The {attribute} must be accepted.",active_url:"The {attribute} is not a valid URL.",after:"The {attribute} must be a date after {date}.",after_or_equal:"The {attribute} must be a date after or equal to {date}.",alpha:"The {attribute} may only contain letters.",alpha_dash:"The {attribute} may only contain letters, numbers, dashes and underscores.",alpha_num:"The {attribute} may only contain letters and numbers.",array:"The {attribute} must be an array.",before:"The {attribute} must be a date before {date}.",before_or_equal:"The {attribute} must be a date before or equal to {date}.",between:{numeric:"The {attribute} must be between {min} and {max}.",file:"The {attribute} must be between {min} and {max} kilobytes.",string:"The {attribute} must be between {min} and {max} characters.",array:"The {attribute} must have between {min} and {max} items."},boolean:"The {attribute} field must be true or false.",confirmed:"The {attribute} confirmation does not match.",date:"The {attribute} is not a valid date.",date_equals:"The {attribute} must be a date equal to {date}.",date_format:"The {attribute} does not match the format {format}.",different:"The {attribute} and {other} must be different.",digits:"The {attribute} must be {digits} digits.",digits_between:"The {attribute} must be between {min} and {max} digits.",dimensions:"The {attribute} has invalid image dimensions.",distinct:"The {attribute} field has a duplicate value.",email:"The {attribute} must be a valid email address.",ends_with:"The {attribute} must end with one of the following: {values}",exists:"The selected {attribute} is invalid.",file:"The {attribute} must be a file.",filled:"The {attribute} field must have a value.",gt:{numeric:"The {attribute} must be greater than {value}.",file:"The {attribute} must be greater than {value} kilobytes.",string:"The {attribute} must be greater than {value} characters.",array:"The {attribute} must have more than {value} items."},gte:{numeric:"The {attribute} must be greater than or equal {value}.",file:"The {attribute} must be greater than or equal {value} kilobytes.",string:"The {attribute} must be greater than or equal {value} characters.",array:"The {attribute} must have {value} items or more."},image:"The {attribute} must be an image.",in:"The selected {attribute} is invalid.",in_array:"The {attribute} field does not exist in {other}.",integer:"The {attribute} must be an integer.",ip:"The {attribute} must be a valid IP address.",ipv4:"The {attribute} must be a valid IPv4 address.",ipv6:"The {attribute} must be a valid IPv6 address.",json:"The {attribute} must be a valid JSON string.",lt:{numeric:"The {attribute} must be less than {value}.",file:"The {attribute} must be less than {value} kilobytes.",string:"The {attribute} must be less than {value} characters.",array:"The {attribute} must have less than {value} items."},lte:{numeric:"The {attribute} must be less than or equal {value}.",file:"The {attribute} must be less than or equal {value} kilobytes.",string:"The {attribute} must be less than or equal {value} characters.",array:"The {attribute} must not have more than {value} items."},max:{numeric:"The {attribute} may not be greater than {max}.",file:"The {attribute} may not be greater than {max} kilobytes.",string:"The {attribute} may not be greater than {max} characters.",array:"The {attribute} may not have more than {max} items."},mimes:"The {attribute} must be a file of type: {values}.",mimetypes:"The {attribute} must be a file of type: {values}.",min:{numeric:"The {attribute} must be at least {min}.",file:"The {attribute} must be at least {min} kilobytes.",string:"The {attribute} must be at least {min} characters.",array:"The {attribute} must have at least {min} items."},not_in:"The selected {attribute} is invalid.",not_regex:"The {attribute} format is invalid.",numeric:"The {attribute} must be a number.",present:"The {attribute} field must be present.",regex:"The {attribute} format is invalid.",required:"The {attribute} field is required.",required_if:"The {attribute} field is required when {other} is {value}.",required_unless:"The {attribute} field is required unless {other} is in {values}.",required_with:"The {attribute} field is required when {values} is present.",required_with_all:"The {attribute} field is required when {values} are present.",required_without:"The {attribute} field is required when {values} is not present.",required_without_all:"The {attribute} field is required when none of {values} are present.",same:"The {attribute} and {other} must match.",size:{numeric:"The {attribute} must be {size}.",file:"The {attribute} must be {size} kilobytes.",string:"The {attribute} must be {size} characters.",array:"The {attribute} must contain {size} items."},starts_with:"The {attribute} must start with one of the following: {values}",string:"The {attribute} must be a string.",timezone:"The {attribute} must be a valid zone.",unique:"The {attribute} has already been taken.",uploaded:"The {attribute} failed to upload.",url:"The {attribute} format is invalid.",uuid:"The {attribute} must be a valid UUID.",custom:{"attribute-name":{"rule-name":"custom-message"},icon:{image:"Supported format are jpeg, png, bmp, gif, svg, or webp"},qrcode:{image:"Supported format are jpeg, png, bmp, gif, svg, or webp"},uri:{starts_with:"Only valid OTP uri are supported"},email:{exists:"No account found using this email"}},attributes:[]}},fr:{auth:{sign_out:"Déconnexion",sign_in:"Se connecter",register:"Créer un compte",hello:"Hi {username} !",throttle:"Trop de tentatives de connexion. Veuillez réessayer dans {seconds} secondes.",already_authenticated:"Déjà authentifié",confirm:{logout:"Etes-vous sûrs de vouloir vous déconnecter ?"},forms:{name:"Nom",login:"Connexion",email:"Email",password:"Mot de passe",confirm_password:"Confirmez le mot de passe",confirm_new_password:"Confirmez le nouveau mot de passe",dont_have_account_yet:"Pas encore de compte ?",already_register:"Déjà enregistré ?",password_do_not_match:"Le mot de passe ne correspond pas",forgot_your_password:"Mot de passe oublié ?",request_password_reset:"Réinitialiser le mot de passe",reset_password:"Mot de passe oublié",new_password:"Nouveau mot de passe",current_password:{label:"Mot de passe actuel",help:"Indiquez votre mot de passe actuel pour confirmer qu'il s'agit bien de vous"},change_password:"Modifier le mot de passe",send_password_reset_link:"Envoyer",change_your_password:"Modifier votre mot de passe",password_successfully_changed:"Mot de passe modifié avec succès",edit_account:"Mis à jour du profil",profile_saved:"Profil mis à jour avec succès !",welcome_to_demo_app_use_those_credentials:"bienvenue sur la démo de 2FAuth.
Vous pouvez vous connecter en utilisant l'adresse email demo@2fauth.app et le mot de passe demo"}},commons:{cancel:"Annuler",update:"Mettre à jour",copy_to_clipboard:"Copier",profile:"Profil",edit:"Modifier",delete:"Supprimer",save:"Enregistrer",close:"Fermer",demo_do_not_post_sensitive_data:"Site de démonstration, ne postez aucune donnée sensible"},errors:{resource_not_found:"Ressource introuvable",error_occured:"Une erreur est survenue :",already_one_user_registered:"Un compte utilisateur existe déjà.",cannot_register_more_user:"Vous ne pouvez pas enregistrer plus d'un utilisateur.",refresh:"Actualiser",please:"",response:{no_valid_otp:"Aucune donnée OTP valide dans ce QR code"},something_wrong_with_server:"Il y a un problème avec votre serveur",Unable_to_decrypt_uri:"uri impossible à décoder",wrong_current_password:"Mot de passe actuel érroné, rien n\\a été modifié"},languages:{en:"Anglais",fr:"Français"},pagination:{previous:"« Précédent",next:"Suivant »"},passwords:{password:"Les mots de passe doivent contenir au moins huit caractères et être identiques.",reset:"Votre mot de passe a été réinitialisé !",sent:"Le lien pour réinitialiser votre mot de passe vient d'être envoyé !",token:"Ce jeton de réinitialisation n'est pas valide.",user:"Cette adresse email n'est pas celle de votre compte."},settings:{settings:"Réglages",account:"Compte",password:"Mot de passe",options:"Options",confirm:[],forms:{edit_settings:"Modifier les réglages",setting_saved:"Réglages sauvegardés",language:{label:"Langue",help:"Traduit l'application dans la langue choisie"},show_token_as_dot:{label:"Rendre illisibles les codes générés",help:"Remplace les caractères des codes générés par des ●●● pour garantir leur confidentialité. N'affecte pas la fonction de copier/coller qui reste utilisable."},close_token_on_copy:{label:"Ne plus afficher les codes copiés",help:"Ferme automatiquement le popup affichant le code généré dès que ce dernier a été copié."},use_basic_qrcode_reader:{label:"Utiliser le lecteur de qrcode basique",help:"Si vous rencontrez des problèmes lors de la lecture des qrCodes activez cette option pour utiliser un lecteur de qrcode moins évolué mais plus largement compatible"},display_mode:{label:"Mode d'affichage",help:"Change le mode d'affichage des comptes, soit sous forme de liste, soit sous forme de grille"},grid:"Grille",list:"Liste"}},twofaccounts:{service:"Service",account:"Compte",icon:"Icône",new:"Nouveau",no_account_here:"Aucun compte 2FA !",add_first_account:"Ajouter votre premier compte",use_full_form:"Ou utiliser le formulaire détaillé",add_one:"Add one",manage:"Gérer",done:"Terminé",forms:{service:{placeholder:"example.com"},account:{placeholder:"Marc Dupont"},new_account:"Nouveau compte",edit_account:"Modifier le compte",otp_uri:"OTP Uri",hotp_counter:"Compteur HOTP",scan_qrcode:"Scanner un QR code",use_qrcode:{val:"Utiliser un QR code",title:"Utiliser un QR code pour renseigner le formulaire d'un seul coup d'un seul"},unlock:{val:"Déverouiller",title:"Déverouiller le champ (à vos risques et périls)"},lock:{val:"Vérouiller",title:"Vérouiller le champ"},choose_image:"Choisir une image…",create:"Créer",save:"Enregistrer",test:"Tester"},stream:{need_grant_permission:"Vous devez autoriser l'utilisation de votre caméra",not_readable:"Le scanner ne se charge pas. La caméra est-elle déjà utilisée ?",no_cam_on_device:"Votre équipement ne dispose pas de caméra",secured_context_required:"Contexte sécurisé requis (HTTPS ou localhost)",camera_not_suitable:"Votre équipement ne dispose pas d'une caméra adaptée",stream_api_not_supported:"L'API Stream n'est pas supportée par votre navigateur"},confirm:{delete:"Etes-vous sûrs de vouloir supprimer le compte ?",cancel:"Les données seront perdues, êtes-vous sûrs ?"}},validation:{accepted:"Le champ {attribute} doit être accepté.",active_url:"Le champ {attribute} n'est pas une URL valide.",after:"Le champ {attribute} doit être une date postérieure au {date}.",after_or_equal:"Le champ {attribute} doit être une date postérieure ou égale au {date}.",alpha:"Le champ {attribute} doit contenir uniquement des lettres.",alpha_dash:"Le champ {attribute} doit contenir uniquement des lettres, des chiffres et des tirets.",alpha_num:"Le champ {attribute} doit contenir uniquement des chiffres et des lettres.",array:"Le champ {attribute} doit être un tableau.",before:"Le champ {attribute} doit être une date antérieure au {date}.",before_or_equal:"Le champ {attribute} doit être une date antérieure ou égale au {date}.",between:{numeric:"La valeur de {attribute} doit être comprise entre {min} et {max}.",file:"La taille du fichier de {attribute} doit être comprise entre {min} et {max} kilo-octets.",string:"Le texte {attribute} doit contenir entre {min} et {max} caractères.",array:"Le tableau {attribute} doit contenir entre {min} et {max} éléments."},boolean:"Le champ {attribute} doit être vrai ou faux.",confirmed:"Le champ de confirmation {attribute} ne correspond pas.",date:"Le champ {attribute} n'est pas une date valide.",date_equals:"Le champ {attribute} doit être une date égale à {date}.",date_format:"Le champ {attribute} ne correspond pas au format {format}.",different:"Les champs {attribute} et {other} doivent être différents.",digits:"Le champ {attribute} doit contenir {digits} chiffres.",digits_between:"Le champ {attribute} doit contenir entre {min} et {max} chiffres.",dimensions:"La taille de l'image {attribute} n'est pas conforme.",distinct:"Le champ {attribute} a une valeur en double.",email:"Le champ {attribute} doit être une adresse email valide.",ends_with:"Le champ {attribute} doit se terminer par une des valeurs suivantes : {values}",exists:"Le champ {attribute} sélectionné est invalide.",file:"Le champ {attribute} doit être un fichier.",filled:"Le champ {attribute} doit avoir une valeur.",gt:{numeric:"La valeur de {attribute} doit être supérieure à {value}.",file:"La taille du fichier de {attribute} doit être supérieure à {value} kilo-octets.",string:"Le texte {attribute} doit contenir plus de {value} caractères.",array:"Le tableau {attribute} doit contenir plus de {value} éléments."},gte:{numeric:"La valeur de {attribute} doit être supérieure ou égale à {value}.",file:"La taille du fichier de {attribute} doit être supérieure ou égale à {value} kilo-octets.",string:"Le texte {attribute} doit contenir au moins {value} caractères.",array:"Le tableau {attribute} doit contenir au moins {value} éléments."},image:"Le champ {attribute} doit être une image.",in:"Le champ {attribute} est invalide.",in_array:"Le champ {attribute} n'existe pas dans {other}.",integer:"Le champ {attribute} doit être un entier.",ip:"Le champ {attribute} doit être une adresse IP valide.",ipv4:"Le champ {attribute} doit être une adresse IPv4 valide.",ipv6:"Le champ {attribute} doit être une adresse IPv6 valide.",json:"Le champ {attribute} doit être un document JSON valide.",lt:{numeric:"La valeur de {attribute} doit être inférieure à {value}.",file:"La taille du fichier de {attribute} doit être inférieure à {value} kilo-octets.",string:"Le texte {attribute} doit contenir moins de {value} caractères.",array:"Le tableau {attribute} doit contenir moins de {value} éléments."},lte:{numeric:"La valeur de {attribute} doit être inférieure ou égale à {value}.",file:"La taille du fichier de {attribute} doit être inférieure ou égale à {value} kilo-octets.",string:"Le texte {attribute} doit contenir au plus {value} caractères.",array:"Le tableau {attribute} doit contenir au plus {value} éléments."},max:{numeric:"La valeur de {attribute} ne peut être supérieure à {max}.",file:"La taille du fichier de {attribute} ne peut pas dépasser {max} kilo-octets.",string:"Le texte de {attribute} ne peut contenir plus de {max} caractères.",array:"Le tableau {attribute} ne peut contenir plus de {max} éléments."},mimes:"Le champ {attribute} doit être un fichier de type : {values}.",mimetypes:"Le champ {attribute} doit être un fichier de type : {values}.",min:{numeric:"La valeur de {attribute} doit être supérieure ou égale à {min}.",file:"La taille du fichier de {attribute} doit être supérieure à {min} kilo-octets.",string:"Le texte {attribute} doit contenir au moins {min} caractères.",array:"Le tableau {attribute} doit contenir au moins {min} éléments."},not_in:"Le champ {attribute} sélectionné n'est pas valide.",not_regex:"Le format du champ {attribute} n'est pas valide.",numeric:"Le champ {attribute} doit contenir un nombre.",password:"Le mot de passe est incorrect",present:"Le champ {attribute} doit être présent.",regex:"Le format du champ {attribute} est invalide.",required:"Le champ {attribute} est obligatoire.",required_if:"Le champ {attribute} est obligatoire quand la valeur de {other} est {value}.",required_unless:"Le champ {attribute} est obligatoire sauf si {other} est {values}.",required_with:"Le champ {attribute} est obligatoire quand {values} est présent.",required_with_all:"Le champ {attribute} est obligatoire quand {values} sont présents.",required_without:"Le champ {attribute} est obligatoire quand {values} n'est pas présent.",required_without_all:"Le champ {attribute} est requis quand aucun de {values} n'est présent.",same:"Les champs {attribute} et {other} doivent être identiques.",size:{numeric:"La valeur de {attribute} doit être {size}.",file:"La taille du fichier de {attribute} doit être de {size} kilo-octets.",string:"Le texte de {attribute} doit contenir {size} caractères.",array:"Le tableau {attribute} doit contenir {size} éléments."},starts_with:"Le champ {attribute} doit commencer avec une des valeurs suivantes : {values}",string:"Le champ {attribute} doit être une chaîne de caractères.",timezone:"Le champ {attribute} doit être un fuseau horaire valide.",unique:"La valeur du champ {attribute} est déjà utilisée.",uploaded:"Le fichier du champ {attribute} n'a pu être téléversé.",url:"Le format de l'URL de {attribute} n'est pas valide.",uuid:"Le champ {attribute} doit être un UUID valide",custom:{"attribute-name":{"rule-name":"custom-message"},icon:{image:"Les formats acceptés sont jpeg, png, bmp, gif, svg, or webp"},qrcode:{image:"Les formats acceptés sont jpeg, png, bmp, gif, svg, or webp"},uri:{starts_with:"La valeur n'est pas une uri OTP valide"},email:{exists:"Aucun compte utilisateur n'utilise cette email"}},attributes:[]}}}}},[[1,0]]]);
\ No newline at end of file
diff --git a/resources/js/langs/i18n.js b/resources/js/langs/i18n.js
index b99ff4ed..c7a9277f 100644
--- a/resources/js/langs/i18n.js
+++ b/resources/js/langs/i18n.js
@@ -1,6 +1,6 @@
import Vue from 'vue'
import VueInternationalization from 'vue-i18n';
-import Locale from './locales';
+import Locale from '@kirschbaum-development/laravel-translations-loader/php!@kirschbaum-development/laravel-translations-loader';
Vue.use(VueInternationalization);
diff --git a/resources/js/langs/locales.js b/resources/js/langs/locales.js
deleted file mode 100644
index 56f7a7a0..00000000
--- a/resources/js/langs/locales.js
+++ /dev/null
@@ -1,585 +0,0 @@
-export default {
- "en": {
- "auth": {
- "sign_out": "Sign out",
- "sign_in": "Sign in",
- "register": "Register",
- "hello": "Hi {username} !",
- "throttle": "Too many login attempts. Please try again in {seconds} seconds.",
- "already_authenticated": "Already authenticated",
- "confirm": {
- "logout": "Are you sure you want to log out?"
- },
- "forms": {
- "name": "Name",
- "login": "Login",
- "email": "Email",
- "password": "Password",
- "confirm_password": "Confirm password",
- "confirm_new_password": "Confirm new password",
- "dont_have_account_yet": "Don't have your account yet?",
- "already_register": "Already registered?",
- "password_do_not_match": "Password do not match",
- "forgot_your_password": "Forgot your password?",
- "request_password_reset": "Request a password reset",
- "reset_password": "Reset password",
- "new_password": "New password",
- "current_password": {
- "label": "Current password",
- "help": "Fill in your current password to confirm that it's you"
- },
- "change_password": "Change password",
- "send_password_reset_link": "Send password reset link",
- "change_your_password": "Change your password",
- "password_successfully_changed": "Password successfully changed ",
- "edit_account": "Edit account",
- "profile_saved": "Profile successfully updated!",
- "welcome_to_demo_app_use_those_credentials": "Welcome to the 2FAuth demo.
You can connect using the email address demo@2fauth.app and the password demo"
- }
- },
- "commons": {
- "cancel": "Cancel",
- "update": "Update",
- "copy_to_clipboard": "Copy to clipboard",
- "copied_to_clipboard": "Copied to clipboard",
- "profile": "Profile",
- "edit": "Edit",
- "delete": "Delete",
- "save": "Save",
- "close": "Close",
- "demo_do_not_post_sensitive_data": "This is a demo app, do not post any sensitive data",
- "selected": "selected"
- },
- "errors": {
- "resource_not_found": "Resource not found",
- "error_occured": "An error occured:",
- "already_one_user_registered": "There is already a registered user.",
- "cannot_register_more_user": "You cannot register more than one user.",
- "refresh": "refresh",
- "please": "Please ",
- "response": {
- "no_valid_otp": "No valid OTP resource in this QR code"
- },
- "something_wrong_with_server": "Something is wrong with your server",
- "Unable_to_decrypt_uri": "Unable to decrypt uri",
- "wrong_current_password": "Wrong current password, nothing has changed"
- },
- "languages": {
- "en": "English",
- "fr": "French"
- },
- "pagination": {
- "previous": "« Previous",
- "next": "Next »"
- },
- "passwords": {
- "password": "Passwords must be at least eight characters and match the confirmation.",
- "reset": "Your password has been reset!",
- "sent": "We have e-mailed your password reset link!",
- "token": "This password reset token is invalid.",
- "user": "We can't find a user with that e-mail address."
- },
- "settings": {
- "settings": "Settings",
- "account": "Account",
- "password": "Password",
- "options": "Options",
- "confirm": [],
- "forms": {
- "edit_settings": "Edit settings",
- "setting_saved": "Settings saved",
- "language": {
- "label": "Language",
- "help": "Change the language used to translate the app interface."
- },
- "show_token_as_dot": {
- "label": "Show generated tokens as dot",
- "help": "Replace generated token caracters with *** to ensure confidentiality. Do not affect the copy/paste feature."
- },
- "close_token_on_copy": {
- "label": "Close token after copy",
- "help": "Automatically close the popup showing the generated token after it has been copied"
- },
- "use_basic_qrcode_reader": {
- "label": "Use basic qrcode reader",
- "help": "If you experiences issues when capturing qrCodes enables this option to switch to a more basic but more reliable qrcode reader"
- },
- "display_mode": {
- "label": "Display mode",
- "help": "Choose whether you want accounts to be displayed as a list or as a grid"
- },
- "grid": "Grid",
- "list": "List"
- }
- },
- "twofaccounts": {
- "service": "Service",
- "account": "Account",
- "icon": "Icon",
- "new": "New",
- "no_account_here": "No 2FA here!",
- "add_first_account": "Add your first account",
- "use_full_form": "Or use the full form",
- "add_one": "Add one",
- "manage": "Manage",
- "done": "Done",
- "forms": {
- "service": {
- "placeholder": "example.com"
- },
- "account": {
- "placeholder": "John DOE"
- },
- "new_account": "New account",
- "edit_account": "Edit account",
- "otp_uri": "OTP Uri",
- "hotp_counter": "HOTP Counter",
- "scan_qrcode": "Scan a qrcode",
- "use_qrcode": {
- "val": "Use a qrcode",
- "title": "Use a QR code to fill the form magically"
- },
- "unlock": {
- "val": "Unlock",
- "title": "Unlock it (at your own risk)"
- },
- "lock": {
- "val": "Lock",
- "title": "Lock it"
- },
- "choose_image": "Choose an image…",
- "create": "Create",
- "save": "Save",
- "test": "Test"
- },
- "stream": {
- "need_grant_permission": "You need to grant camera access permission",
- "not_readable": "Fail to load scanner. Is the camera already in use?",
- "no_cam_on_device": "No camera on this device",
- "secured_context_required": "Secure context required (HTTPS or localhost)",
- "https_required": "HTTPS required for camera streaming",
- "camera_not_suitable": "Installed cameras are not suitable",
- "stream_api_not_supported": "Stream API is not supported in this browser"
- },
- "confirm": {
- "delete": "Are you sure you want to delete this account?",
- "cancel": "The account will be lost. Are you sure?"
- }
- },
- "validation": {
- "accepted": "The {attribute} must be accepted.",
- "active_url": "The {attribute} is not a valid URL.",
- "after": "The {attribute} must be a date after {date}.",
- "after_or_equal": "The {attribute} must be a date after or equal to {date}.",
- "alpha": "The {attribute} may only contain letters.",
- "alpha_dash": "The {attribute} may only contain letters, numbers, dashes and underscores.",
- "alpha_num": "The {attribute} may only contain letters and numbers.",
- "array": "The {attribute} must be an array.",
- "before": "The {attribute} must be a date before {date}.",
- "before_or_equal": "The {attribute} must be a date before or equal to {date}.",
- "between": {
- "numeric": "The {attribute} must be between {min} and {max}.",
- "file": "The {attribute} must be between {min} and {max} kilobytes.",
- "string": "The {attribute} must be between {min} and {max} characters.",
- "array": "The {attribute} must have between {min} and {max} items."
- },
- "boolean": "The {attribute} field must be true or false.",
- "confirmed": "The {attribute} confirmation does not match.",
- "date": "The {attribute} is not a valid date.",
- "date_equals": "The {attribute} must be a date equal to {date}.",
- "date_format": "The {attribute} does not match the format {format}.",
- "different": "The {attribute} and {other} must be different.",
- "digits": "The {attribute} must be {digits} digits.",
- "digits_between": "The {attribute} must be between {min} and {max} digits.",
- "dimensions": "The {attribute} has invalid image dimensions.",
- "distinct": "The {attribute} field has a duplicate value.",
- "email": "The {attribute} must be a valid email address.",
- "ends_with": "The {attribute} must end with one of the following: {values}",
- "exists": "The selected {attribute} is invalid.",
- "file": "The {attribute} must be a file.",
- "filled": "The {attribute} field must have a value.",
- "gt": {
- "numeric": "The {attribute} must be greater than {value}.",
- "file": "The {attribute} must be greater than {value} kilobytes.",
- "string": "The {attribute} must be greater than {value} characters.",
- "array": "The {attribute} must have more than {value} items."
- },
- "gte": {
- "numeric": "The {attribute} must be greater than or equal {value}.",
- "file": "The {attribute} must be greater than or equal {value} kilobytes.",
- "string": "The {attribute} must be greater than or equal {value} characters.",
- "array": "The {attribute} must have {value} items or more."
- },
- "image": "The {attribute} must be an image.",
- "in": "The selected {attribute} is invalid.",
- "in_array": "The {attribute} field does not exist in {other}.",
- "integer": "The {attribute} must be an integer.",
- "ip": "The {attribute} must be a valid IP address.",
- "ipv4": "The {attribute} must be a valid IPv4 address.",
- "ipv6": "The {attribute} must be a valid IPv6 address.",
- "json": "The {attribute} must be a valid JSON string.",
- "lt": {
- "numeric": "The {attribute} must be less than {value}.",
- "file": "The {attribute} must be less than {value} kilobytes.",
- "string": "The {attribute} must be less than {value} characters.",
- "array": "The {attribute} must have less than {value} items."
- },
- "lte": {
- "numeric": "The {attribute} must be less than or equal {value}.",
- "file": "The {attribute} must be less than or equal {value} kilobytes.",
- "string": "The {attribute} must be less than or equal {value} characters.",
- "array": "The {attribute} must not have more than {value} items."
- },
- "max": {
- "numeric": "The {attribute} may not be greater than {max}.",
- "file": "The {attribute} may not be greater than {max} kilobytes.",
- "string": "The {attribute} may not be greater than {max} characters.",
- "array": "The {attribute} may not have more than {max} items."
- },
- "mimes": "The {attribute} must be a file of type: {values}.",
- "mimetypes": "The {attribute} must be a file of type: {values}.",
- "min": {
- "numeric": "The {attribute} must be at least {min}.",
- "file": "The {attribute} must be at least {min} kilobytes.",
- "string": "The {attribute} must be at least {min} characters.",
- "array": "The {attribute} must have at least {min} items."
- },
- "not_in": "The selected {attribute} is invalid.",
- "not_regex": "The {attribute} format is invalid.",
- "numeric": "The {attribute} must be a number.",
- "present": "The {attribute} field must be present.",
- "regex": "The {attribute} format is invalid.",
- "required": "The {attribute} field is required.",
- "required_if": "The {attribute} field is required when {other} is {value}.",
- "required_unless": "The {attribute} field is required unless {other} is in {values}.",
- "required_with": "The {attribute} field is required when {values} is present.",
- "required_with_all": "The {attribute} field is required when {values} are present.",
- "required_without": "The {attribute} field is required when {values} is not present.",
- "required_without_all": "The {attribute} field is required when none of {values} are present.",
- "same": "The {attribute} and {other} must match.",
- "size": {
- "numeric": "The {attribute} must be {size}.",
- "file": "The {attribute} must be {size} kilobytes.",
- "string": "The {attribute} must be {size} characters.",
- "array": "The {attribute} must contain {size} items."
- },
- "starts_with": "The {attribute} must start with one of the following: {values}",
- "string": "The {attribute} must be a string.",
- "timezone": "The {attribute} must be a valid zone.",
- "unique": "The {attribute} has already been taken.",
- "uploaded": "The {attribute} failed to upload.",
- "url": "The {attribute} format is invalid.",
- "uuid": "The {attribute} must be a valid UUID.",
- "custom": {
- "attribute-name": {
- "rule-name": "custom-message"
- },
- "icon": {
- "image": "Supported format are jpeg, png, bmp, gif, svg, or webp"
- },
- "qrcode": {
- "image": "Supported format are jpeg, png, bmp, gif, svg, or webp"
- },
- "uri": {
- "starts_with": "Only valid OTP uri are supported"
- },
- "email": {
- "exists": "No account found using this email"
- }
- },
- "attributes": []
- }
- },
- "fr": {
- "auth": {
- "sign_out": "Déconnexion",
- "sign_in": "Se connecter",
- "register": "Créer un compte",
- "hello": "Hi {username} !",
- "throttle": "Trop de tentatives de connexion. Veuillez réessayer dans {seconds} secondes.",
- "already_authenticated": "Déjà authentifié",
- "confirm": {
- "logout": "Etes-vous sûrs de vouloir vous déconnecter ?"
- },
- "forms": {
- "name": "Nom",
- "login": "Connexion",
- "email": "Email",
- "password": "Mot de passe",
- "confirm_password": "Confirmez le mot de passe",
- "confirm_new_password": "Confirmez le nouveau mot de passe",
- "dont_have_account_yet": "Pas encore de compte ?",
- "already_register": "Déjà enregistré ?",
- "password_do_not_match": "Le mot de passe ne correspond pas",
- "forgot_your_password": "Mot de passe oublié ?",
- "request_password_reset": "Réinitialiser le mot de passe",
- "reset_password": "Mot de passe oublié",
- "new_password": "Nouveau mot de passe",
- "current_password": {
- "label": "Mot de passe actuel",
- "help": "Indiquez votre mot de passe actuel pour confirmer qu'il s'agit bien de vous"
- },
- "change_password": "Modifier le mot de passe",
- "send_password_reset_link": "Envoyer",
- "change_your_password": "Modifier votre mot de passe",
- "password_successfully_changed": "Mot de passe modifié avec succès",
- "edit_account": "Mis à jour du profil",
- "profile_saved": "Profil mis à jour avec succès !",
- "welcome_to_demo_app_use_those_credentials": "bienvenue sur la démo de 2FAuth.
Vous pouvez vous connecter en utilisant l'adresse email demo@2fauth.app et le mot de passe demo"
- }
- },
- "commons": {
- "cancel": "Annuler",
- "update": "Mettre à jour",
- "copy_to_clipboard": "Copier",
- "copied_to_clipboard": "Copié dans le presse-papier",
- "profile": "Profil",
- "edit": "Modifier",
- "delete": "Supprimer",
- "save": "Enregistrer",
- "close": "Fermer",
- "demo_do_not_post_sensitive_data": "Site de démonstration, ne postez aucune donnée sensible",
- "selected": "selectionné(s)"
- },
- "errors": {
- "resource_not_found": "Ressource introuvable",
- "error_occured": "Une erreur est survenue :",
- "already_one_user_registered": "Un compte utilisateur existe déjà.",
- "cannot_register_more_user": "Vous ne pouvez pas enregistrer plus d'un utilisateur.",
- "refresh": "Actualiser",
- "please": "",
- "response": {
- "no_valid_otp": "Aucune donnée OTP valide dans ce QR code"
- },
- "something_wrong_with_server": "Il y a un problème avec votre serveur",
- "Unable_to_decrypt_uri": "uri impossible à décoder",
- "wrong_current_password": "Mot de passe actuel érroné, rien n\\a été modifié"
- },
- "languages": {
- "en": "Anglais",
- "fr": "Français"
- },
- "pagination": {
- "previous": "« Précédent",
- "next": "Suivant »"
- },
- "passwords": {
- "password": "Les mots de passe doivent contenir au moins huit caractères et être identiques.",
- "reset": "Votre mot de passe a été réinitialisé !",
- "sent": "Le lien pour réinitialiser votre mot de passe vient d'être envoyé !",
- "token": "Ce jeton de réinitialisation n'est pas valide.",
- "user": "Cette adresse email n'est pas celle de votre compte."
- },
- "settings": {
- "settings": "Réglages",
- "account": "Compte",
- "password": "Mot de passe",
- "options": "Options",
- "confirm": [],
- "forms": {
- "edit_settings": "Modifier les réglages",
- "setting_saved": "Réglages sauvegardés",
- "language": {
- "label": "Langue",
- "help": "Traduit l'application dans la langue choisie"
- },
- "show_token_as_dot": {
- "label": "Rendre illisibles les codes générés",
- "help": "Remplace les caractères des codes générés par des ●●● pour garantir leur confidentialité. N'affecte pas la fonction de copier/coller qui reste utilisable."
- },
- "close_token_on_copy": {
- "label": "Ne plus afficher les codes copiés",
- "help": "Ferme automatiquement le popup affichant le code généré dès que ce dernier a été copié."
- },
- "use_basic_qrcode_reader": {
- "label": "Utiliser le lecteur de qrcode basique",
- "help": "Si vous rencontrez des problèmes lors de la lecture des qrCodes activez cette option pour utiliser un lecteur de qrcode moins évolué mais plus largement compatible"
- },
- "display_mode": {
- "label": "Mode d'affichage",
- "help": "Change le mode d'affichage des comptes, soit sous forme de liste, soit sous forme de grille"
- },
- "grid": "Grille",
- "list": "Liste"
- }
- },
- "twofaccounts": {
- "service": "Service",
- "account": "Compte",
- "icon": "Icône",
- "new": "Nouveau",
- "no_account_here": "Aucun compte 2FA !",
- "add_first_account": "Ajouter votre premier compte",
- "use_full_form": "Ou utiliser le formulaire détaillé",
- "add_one": "Add one",
- "manage": "Gérer",
- "done": "Terminé",
- "forms": {
- "service": {
- "placeholder": "example.com"
- },
- "account": {
- "placeholder": "Marc Dupont"
- },
- "new_account": "Nouveau compte",
- "edit_account": "Modifier le compte",
- "otp_uri": "OTP Uri",
- "hotp_counter": "Compteur HOTP",
- "scan_qrcode": "Scanner un QR code",
- "use_qrcode": {
- "val": "Utiliser un QR code",
- "title": "Utiliser un QR code pour renseigner le formulaire d'un seul coup d'un seul"
- },
- "unlock": {
- "val": "Déverouiller",
- "title": "Déverouiller le champ (à vos risques et périls)"
- },
- "lock": {
- "val": "Vérouiller",
- "title": "Vérouiller le champ"
- },
- "choose_image": "Choisir une image…",
- "create": "Créer",
- "save": "Enregistrer",
- "test": "Tester"
- },
- "stream": {
- "need_grant_permission": "Vous devez autoriser l'utilisation de votre caméra",
- "not_readable": "Le scanner ne se charge pas. La caméra est-elle déjà utilisée ?",
- "no_cam_on_device": "Votre équipement ne dispose pas de caméra",
- "secured_context_required": "Contexte sécurisé requis (HTTPS ou localhost)",
- "https_required": "HTTPS requis pour utiliser la caméra",
- "camera_not_suitable": "Votre équipement ne dispose pas d'une caméra adaptée",
- "stream_api_not_supported": "L'API Stream n'est pas supportée par votre navigateur"
- },
- "confirm": {
- "delete": "Etes-vous sûrs de vouloir supprimer le compte ?",
- "cancel": "Les données seront perdues, êtes-vous sûrs ?"
- }
- },
- "validation": {
- "accepted": "Le champ {attribute} doit être accepté.",
- "active_url": "Le champ {attribute} n'est pas une URL valide.",
- "after": "Le champ {attribute} doit être une date postérieure au {date}.",
- "after_or_equal": "Le champ {attribute} doit être une date postérieure ou égale au {date}.",
- "alpha": "Le champ {attribute} doit contenir uniquement des lettres.",
- "alpha_dash": "Le champ {attribute} doit contenir uniquement des lettres, des chiffres et des tirets.",
- "alpha_num": "Le champ {attribute} doit contenir uniquement des chiffres et des lettres.",
- "array": "Le champ {attribute} doit être un tableau.",
- "before": "Le champ {attribute} doit être une date antérieure au {date}.",
- "before_or_equal": "Le champ {attribute} doit être une date antérieure ou égale au {date}.",
- "between": {
- "numeric": "La valeur de {attribute} doit être comprise entre {min} et {max}.",
- "file": "La taille du fichier de {attribute} doit être comprise entre {min} et {max} kilo-octets.",
- "string": "Le texte {attribute} doit contenir entre {min} et {max} caractères.",
- "array": "Le tableau {attribute} doit contenir entre {min} et {max} éléments."
- },
- "boolean": "Le champ {attribute} doit être vrai ou faux.",
- "confirmed": "Le champ de confirmation {attribute} ne correspond pas.",
- "date": "Le champ {attribute} n'est pas une date valide.",
- "date_equals": "Le champ {attribute} doit être une date égale à {date}.",
- "date_format": "Le champ {attribute} ne correspond pas au format {format}.",
- "different": "Les champs {attribute} et {other} doivent être différents.",
- "digits": "Le champ {attribute} doit contenir {digits} chiffres.",
- "digits_between": "Le champ {attribute} doit contenir entre {min} et {max} chiffres.",
- "dimensions": "La taille de l'image {attribute} n'est pas conforme.",
- "distinct": "Le champ {attribute} a une valeur en double.",
- "email": "Le champ {attribute} doit être une adresse email valide.",
- "ends_with": "Le champ {attribute} doit se terminer par une des valeurs suivantes : {values}",
- "exists": "Le champ {attribute} sélectionné est invalide.",
- "file": "Le champ {attribute} doit être un fichier.",
- "filled": "Le champ {attribute} doit avoir une valeur.",
- "gt": {
- "numeric": "La valeur de {attribute} doit être supérieure à {value}.",
- "file": "La taille du fichier de {attribute} doit être supérieure à {value} kilo-octets.",
- "string": "Le texte {attribute} doit contenir plus de {value} caractères.",
- "array": "Le tableau {attribute} doit contenir plus de {value} éléments."
- },
- "gte": {
- "numeric": "La valeur de {attribute} doit être supérieure ou égale à {value}.",
- "file": "La taille du fichier de {attribute} doit être supérieure ou égale à {value} kilo-octets.",
- "string": "Le texte {attribute} doit contenir au moins {value} caractères.",
- "array": "Le tableau {attribute} doit contenir au moins {value} éléments."
- },
- "image": "Le champ {attribute} doit être une image.",
- "in": "Le champ {attribute} est invalide.",
- "in_array": "Le champ {attribute} n'existe pas dans {other}.",
- "integer": "Le champ {attribute} doit être un entier.",
- "ip": "Le champ {attribute} doit être une adresse IP valide.",
- "ipv4": "Le champ {attribute} doit être une adresse IPv4 valide.",
- "ipv6": "Le champ {attribute} doit être une adresse IPv6 valide.",
- "json": "Le champ {attribute} doit être un document JSON valide.",
- "lt": {
- "numeric": "La valeur de {attribute} doit être inférieure à {value}.",
- "file": "La taille du fichier de {attribute} doit être inférieure à {value} kilo-octets.",
- "string": "Le texte {attribute} doit contenir moins de {value} caractères.",
- "array": "Le tableau {attribute} doit contenir moins de {value} éléments."
- },
- "lte": {
- "numeric": "La valeur de {attribute} doit être inférieure ou égale à {value}.",
- "file": "La taille du fichier de {attribute} doit être inférieure ou égale à {value} kilo-octets.",
- "string": "Le texte {attribute} doit contenir au plus {value} caractères.",
- "array": "Le tableau {attribute} doit contenir au plus {value} éléments."
- },
- "max": {
- "numeric": "La valeur de {attribute} ne peut être supérieure à {max}.",
- "file": "La taille du fichier de {attribute} ne peut pas dépasser {max} kilo-octets.",
- "string": "Le texte de {attribute} ne peut contenir plus de {max} caractères.",
- "array": "Le tableau {attribute} ne peut contenir plus de {max} éléments."
- },
- "mimes": "Le champ {attribute} doit être un fichier de type : {values}.",
- "mimetypes": "Le champ {attribute} doit être un fichier de type : {values}.",
- "min": {
- "numeric": "La valeur de {attribute} doit être supérieure ou égale à {min}.",
- "file": "La taille du fichier de {attribute} doit être supérieure à {min} kilo-octets.",
- "string": "Le texte {attribute} doit contenir au moins {min} caractères.",
- "array": "Le tableau {attribute} doit contenir au moins {min} éléments."
- },
- "not_in": "Le champ {attribute} sélectionné n'est pas valide.",
- "not_regex": "Le format du champ {attribute} n'est pas valide.",
- "numeric": "Le champ {attribute} doit contenir un nombre.",
- "password": "Le mot de passe est incorrect",
- "present": "Le champ {attribute} doit être présent.",
- "regex": "Le format du champ {attribute} est invalide.",
- "required": "Le champ {attribute} est obligatoire.",
- "required_if": "Le champ {attribute} est obligatoire quand la valeur de {other} est {value}.",
- "required_unless": "Le champ {attribute} est obligatoire sauf si {other} est {values}.",
- "required_with": "Le champ {attribute} est obligatoire quand {values} est présent.",
- "required_with_all": "Le champ {attribute} est obligatoire quand {values} sont présents.",
- "required_without": "Le champ {attribute} est obligatoire quand {values} n'est pas présent.",
- "required_without_all": "Le champ {attribute} est requis quand aucun de {values} n'est présent.",
- "same": "Les champs {attribute} et {other} doivent être identiques.",
- "size": {
- "numeric": "La valeur de {attribute} doit être {size}.",
- "file": "La taille du fichier de {attribute} doit être de {size} kilo-octets.",
- "string": "Le texte de {attribute} doit contenir {size} caractères.",
- "array": "Le tableau {attribute} doit contenir {size} éléments."
- },
- "starts_with": "Le champ {attribute} doit commencer avec une des valeurs suivantes : {values}",
- "string": "Le champ {attribute} doit être une chaîne de caractères.",
- "timezone": "Le champ {attribute} doit être un fuseau horaire valide.",
- "unique": "La valeur du champ {attribute} est déjà utilisée.",
- "uploaded": "Le fichier du champ {attribute} n'a pu être téléversé.",
- "url": "Le format de l'URL de {attribute} n'est pas valide.",
- "uuid": "Le champ {attribute} doit être un UUID valide",
- "custom": {
- "attribute-name": {
- "rule-name": "custom-message"
- },
- "icon": {
- "image": "Les formats acceptés sont jpeg, png, bmp, gif, svg, or webp"
- },
- "qrcode": {
- "image": "Les formats acceptés sont jpeg, png, bmp, gif, svg, or webp"
- },
- "uri": {
- "starts_with": "La valeur n'est pas une uri OTP valide"
- },
- "email": {
- "exists": "Aucun compte utilisateur n'utilise cette email"
- }
- },
- "attributes": []
- }
- }
-}
diff --git a/resources/views/landing.blade.php b/resources/views/landing.blade.php
index 378a851b..933dd875 100644
--- a/resources/views/landing.blade.php
+++ b/resources/views/landing.blade.php
@@ -29,6 +29,5 @@
-