diff --git a/README.md b/README.md index 8ff13e8c..4dd56ba1 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ What more are you waiting for? Make game servers a first class citizen on your p ![Image](https://cdn.pterodactyl.io/site-assets/mockup-macbook-grey.png) ## Support & Documentation -Support for using Pterodactyl can be found on our [Documentation Website](https://pterodactyl.io/project/introduction.html), [Guides Website](https://guides.pterodactyl.io), or via our [Discord Chat](https://discord.gg/QRDZvVm). +Support for using Pterodactyl can be found on our [Documentation Website](https://pterodactyl.io/project/introduction.html), [Guides Website](https://pterodactyl.io/community/about.html), or via our [Discord Chat](https://discord.gg/QRDZvVm). ### Supported Games We support a huge variety of games by utilizing Docker containers to isolate each instance, giving you the power to host your games across the world without having to bloat each physical machine with additional dependencies. diff --git a/app/Console/Commands/Environment/AppSettingsCommand.php b/app/Console/Commands/Environment/AppSettingsCommand.php index 9a10bfd0..038e206f 100644 --- a/app/Console/Commands/Environment/AppSettingsCommand.php +++ b/app/Console/Commands/Environment/AppSettingsCommand.php @@ -68,7 +68,7 @@ class AppSettingsCommand extends Command {--redis-host= : Redis host to use for connections.} {--redis-pass= : Password used to connect to redis.} {--redis-port= : Port to connect to redis over.} - {--disable-settings-ui}'; + {--settings-ui= : Enable or disable the settings UI.}'; /** * @var array @@ -138,8 +138,8 @@ class AppSettingsCommand extends Command array_key_exists($selected, self::ALLOWED_QUEUE_DRIVERS) ? $selected : null ); - if ($this->option('disable-settings-ui')) { - $this->variables['APP_ENVIRONMENT_ONLY'] = 'true'; + if (! is_null($this->option('settings-ui'))) { + $this->variables['APP_ENVIRONMENT_ONLY'] = $this->option('settings-ui') == 'true' ? 'false' : 'true'; } else { $this->variables['APP_ENVIRONMENT_ONLY'] = $this->confirm(trans('command/messages.environment.app.settings'), true) ? 'false' : 'true'; } diff --git a/app/Console/Commands/Server/BulkReinstallActionCommand.php b/app/Console/Commands/Server/BulkReinstallActionCommand.php new file mode 100644 index 00000000..ccca701a --- /dev/null +++ b/app/Console/Commands/Server/BulkReinstallActionCommand.php @@ -0,0 +1,113 @@ +. + * + * This software is licensed under the terms of the MIT license. + * https://opensource.org/licenses/MIT + */ + +namespace Pterodactyl\Console\Commands\Server; + +use Webmozart\Assert\Assert; +use Illuminate\Console\Command; +use GuzzleHttp\Exception\RequestException; +use Pterodactyl\Contracts\Repository\ServerRepositoryInterface; +use Pterodactyl\Services\Servers\ServerConfigurationStructureService; +use Pterodactyl\Contracts\Repository\Daemon\ServerRepositoryInterface as DaemonServerRepositoryInterface; + +class BulkReinstallActionCommand extends Command +{ + /** + * @var \Pterodactyl\Services\Servers\ServerConfigurationStructureService + */ + protected $configurationStructureService; + + /** + * @var \Pterodactyl\Contracts\Repository\Daemon\ServerRepositoryInterface + */ + protected $daemonRepository; + + /** + * @var string + */ + protected $description = 'Reinstall a single server, all servers on a node, or all servers on the panel.'; + + /** + * @var \Pterodactyl\Contracts\Repository\ServerRepositoryInterface + */ + protected $repository; + + /** + * @var string + */ + protected $signature = 'p:server:reinstall + {server? : The ID of the server to reinstall.} + {--node= : ID of the node to reinstall all servers on. Ignored if server is passed.}'; + + /** + * BulkReinstallActionCommand constructor. + * + * @param \Pterodactyl\Contracts\Repository\Daemon\ServerRepositoryInterface $daemonRepository + * @param \Pterodactyl\Services\Servers\ServerConfigurationStructureService $configurationStructureService + * @param \Pterodactyl\Contracts\Repository\ServerRepositoryInterface $repository + */ + public function __construct( + DaemonServerRepositoryInterface $daemonRepository, + ServerConfigurationStructureService $configurationStructureService, + ServerRepositoryInterface $repository + ) { + parent::__construct(); + + $this->configurationStructureService = $configurationStructureService; + $this->daemonRepository = $daemonRepository; + $this->repository = $repository; + } + + /** + * Handle command execution. + */ + public function handle() + { + $servers = $this->getServersToProcess(); + + if (! $this->confirm(trans('command/messages.server.reinstall.confirm'))) { + return; + } + + $bar = $this->output->createProgressBar(count($servers)); + + $servers->each(function ($server) use ($bar) { + $bar->clear(); + + try { + $this->daemonRepository->setServer($server)->reinstall(); + } catch (RequestException $exception) { + $this->output->error(trans('command/messages.server.reinstall.failed', [ + 'name' => $server->name, + 'id' => $server->id, + 'node' => $server->node->name, + 'message' => $exception->getMessage(), + ])); + } + + $bar->advance(); + $bar->display(); + }); + + $this->line(''); + } + + /** + * Return the servers to be reinstalled. + * + * @return \Illuminate\Database\Eloquent\Collection + */ + private function getServersToProcess() + { + Assert::nullOrIntegerish($this->argument('server'), 'Value passed in server argument must be null or an integer, received %s.'); + Assert::nullOrIntegerish($this->option('node'), 'Value passed in node option must be null or integer, received %s.'); + + return $this->repository->getDataForReinstall($this->argument('server'), $this->option('node')); + } +} diff --git a/app/Contracts/Repository/ServerRepositoryInterface.php b/app/Contracts/Repository/ServerRepositoryInterface.php index ba853398..6b758c3d 100644 --- a/app/Contracts/Repository/ServerRepositoryInterface.php +++ b/app/Contracts/Repository/ServerRepositoryInterface.php @@ -36,6 +36,15 @@ interface ServerRepositoryInterface extends RepositoryInterface, SearchableInter */ public function getDataForRebuild(int $server = null, int $node = null): Collection; + /** + * Return a collection of servers with their associated data for reinstall operations. + * + * @param int|null $server + * @param int|null $node + * @return \Illuminate\Support\Collection + */ + public function getDataForReinstall(int $server = null, int $node = null): Collection; + /** * Return a server model and all variables associated with the server. * diff --git a/app/Repositories/Eloquent/ServerRepository.php b/app/Repositories/Eloquent/ServerRepository.php index 820093cf..f806c0f9 100644 --- a/app/Repositories/Eloquent/ServerRepository.php +++ b/app/Repositories/Eloquent/ServerRepository.php @@ -76,6 +76,26 @@ class ServerRepository extends EloquentRepository implements ServerRepositoryInt return $instance->get($this->getColumns()); } + /** + * Return a collection of servers with their associated data for reinstall operations. + * + * @param int|null $server + * @param int|null $node + * @return \Illuminate\Support\Collection + */ + public function getDataForReinstall(int $server = null, int $node = null): Collection + { + $instance = $this->getBuilder()->with(['allocation', 'allocations', 'pack', 'egg', 'node']); + + if (! is_null($server) && is_null($node)) { + $instance = $instance->where('id', '=', $server); + } elseif (is_null($server) && ! is_null($node)) { + $instance = $instance->where('node_id', '=', $node); + } + + return $instance->get($this->getColumns()); + } + /** * Return a server model and all variables associated with the server. * diff --git a/database/seeds/eggs/minecraft/egg-forge-minecraft.json b/database/seeds/eggs/minecraft/egg-forge-minecraft.json index 2e8b43bf..6a2e5fc9 100644 --- a/database/seeds/eggs/minecraft/egg-forge-minecraft.json +++ b/database/seeds/eggs/minecraft/egg-forge-minecraft.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-02-07T07:47:35-05:00", + "exported_at": "2019-02-10T22:57:27+01:00", "name": "Forge Minecraft", "author": "support@pterodactyl.io", "description": "Minecraft Forge Server. Minecraft Forge is a modding API (Application Programming Interface), which makes it easier to create mods, and also make sure mods are compatible with each other.", @@ -17,9 +17,9 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk update\r\napk add curl\r\n\r\nif [ -z \"$MC_VERSION\" ] || [ \"$MC_VERSION\" == \"latest\" ]; then\r\n FORGE_VERSION=$(echo $(curl -sSl http:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/ | grep -A2 Latest | grep small) | grep -o -e '[1].[0-9]*.[0-9]* - [0-9]*.[0-9]*.[0-9]*.[0-9]*' | sed 's\/ \/\/g')\r\nelse\r\n FORGE_VERSION=$(echo $(curl -sl http:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/index_$MC_VERSION.html | grep -A2 Latest | grep small) | grep -o -e '[1].[0-9]*.[0-9]* - [0-9]*.[0-9]*.[0-9]*.[0-9]*' | sed 's\/ \/\/g')\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\ncurl -sS http:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\ncurl -sS http:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -o $SERVER_JARFILE\r\n\r\necho -e \"\\nInstalling forge server usint the installer jar file.\\n\"\r\njava -jar installer.jar --installServer\r\n\r\necho -e \"\\nDeleting installer jar file and cleaning up.\\n\"\r\nrm -rf installer.jar", - "container": "openjdk:8-alpine", - "entrypoint": "ash" + "script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl\r\n\r\n#Fetching version\r\nif [ -z \"$MC_VERSION\" ] || [ \"$MC_VERSION\" == \"latest\" ]; then\r\n echo \"Fetching latest\"\r\n MC_VERSION=$(curl -sl https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/index.html | grep -A 2 \"Latest\" | awk NF=NF RS= OFS=\" \" | grep -o -e '[1].[0-9]*.[0-9]* - [0-9]*.[0-9]*.[0-9]*.[0-9]*' | sed 's\/ \/\/g')\r\nelif [[ ! \"$MC_VERSION\" =~ - ]]; then\r\n echo \"Fetching latest from version $MC_VERSION\"\r\n MC_VERSION=$(curl -sl https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/index_$MC_VERSION.html | grep -A 2 \"Latest\" | awk NF=NF RS= OFS=\" \" | grep -o -e '[1].[0-9]*.[0-9]* - [0-9]*.[0-9]*.[0-9]*.[0-9]*' | sed 's\/ \/\/g')\r\nfi\r\n\r\n#Checking if forge version valid\r\nif [[ ! \"$MC_VERSION\" =~ [1].[0-9]*.[0-9]*-[0-9]*.[0-9]*.[0-9]*.[0-9]* ]]; then\r\n echo \"!!! Invalid forge version \\\"$MC_VERSION\\\" !!!\"\r\n exit\r\nfi\r\n\r\n#Go into main direction\r\ncd \/mnt\/server\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! $SERVER_JARFILE = *\\.jar ]]; then\r\n SERVER_JARFILE=\"$SERVER_JARFILE.jar\"\r\nfi\r\n\r\n#Downloading jars\r\necho -e \"Downloading forge version \\\"$MC_VERSION\\\"\"\r\ncurl -o installer.jar -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$MC_VERSION\/forge-$MC_VERSION-installer.jar\r\ncurl -o $SERVER_JARFILE -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$MC_VERSION\/forge-$MC_VERSION-universal.jar\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f .\/installer.jar ] || [ ! -f .\/$SERVER_JARFILE ]; then\r\n echo \"!!! Error by downloading forge version \\\"$MC_VERSION\\\" !!!\"\r\n exit\r\nfi\r\n\r\n#Installing server\r\necho -e \"Installing forge server.\\n\"\r\njava -jar installer.jar --installServer\r\n\r\n#Deleting installer.jar\r\necho -e \"Deleting installer.jar file.\\n\"\r\nrm -rf installer.jar", + "container": "openjdk:8", + "entrypoint": "bash" } }, "variables": [ @@ -33,8 +33,8 @@ "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" }, { - "name": "Minecraft version", - "description": "The version of minecraft that you want to run. Example (1.10.2).", + "name": "Forge version", + "description": "The version of forge that you want to run.\r\nExamples:\r\n- 1.12.2\r\n- 1.12.2-14.23.5.2810", "env_variable": "MC_VERSION", "default_value": "latest", "user_viewable": 1, diff --git a/resources/lang/en/command/messages.php b/resources/lang/en/command/messages.php index 8741fc42..71731a2d 100644 --- a/resources/lang/en/command/messages.php +++ b/resources/lang/en/command/messages.php @@ -42,6 +42,10 @@ return [ ], 'server' => [ 'rebuild_failed' => 'Rebuild request for ":name" (#:id) on node ":node" failed with error: :message', + 'reinstall' => [ + 'failed' => 'Reinstall request for ":name" (#:id) on node ":node" failed with error: :message', + 'confirm' => 'You are about to reinstall against a group of servers. Do you wish to continue?', + ], 'power' => [ 'confirm' => 'You are about to perform a :action against :count servers. Do you wish to continue?', 'action_failed' => 'Power action request for ":name" (#:id) on node ":node" failed with error: :message', diff --git a/resources/lang/fr/admin/nests.php b/resources/lang/fr/admin/nests.php new file mode 100644 index 00000000..8e82ad6b --- /dev/null +++ b/resources/lang/fr/admin/nests.php @@ -0,0 +1,33 @@ +. + * + * This software is licensed under the terms of the MIT license. + * https://opensource.org/licenses/MIT + */ + +return [ + 'notices' => [ + 'created' => 'Un nouveau nid avec le nom :name a été créé avec succès.', + 'deleted' => 'Suppression réussie du nid demandé sur le Panel.', + 'updated' => 'Mise à jour réussie des options de configuration du nid.', + ], + 'eggs' => [ + 'notices' => [ + 'imported' => 'Importation avec succès de cet oeuf et ses variables associées.', + 'updated_via_import' => 'Cet oeuf a été mis à jour en utilisant le fichier fourni.', + 'deleted' => 'Suppression réussie de l\'oeuf demandé sur le panel.', + 'updated' => 'La configuration de l\'oeuf a été mise à jour avec succès.', + 'script_updated' => 'Le script d\'installation de l\'oeuf a été mis à jour et s\'exécutera dès que les serveurs seront installés.', + 'egg_created' => 'Un nouvel oeuf a été pondu avec succès. Vous devrez redémarrer tous les démons en cours d\'exécution pour appliquer ce nouvel oeuf.', + ], + ], + 'variables' => [ + 'notices' => [ + 'variable_deleted' => 'La variable ":variable" a été supprimé et ne sera plus disponible pour les serveurs une fois reconstruit.', + 'variable_updated' => 'La variable ":variable" a été mis à jour. Vous devrez reconstruire tous les serveurs utilisant cette variable afin d\'appliquer les modifications.', + 'variable_created' => 'Une nouvelle variable a été créée et affectée à cet oeuf avec succès.', + ], + ], +]; diff --git a/resources/lang/fr/admin/node.php b/resources/lang/fr/admin/node.php new file mode 100644 index 00000000..06f57d9c --- /dev/null +++ b/resources/lang/fr/admin/node.php @@ -0,0 +1,23 @@ +. + * + * This software is licensed under the terms of the MIT license. + * https://opensource.org/licenses/MIT + */ + +return [ + 'validation' => [ + 'fqdn_not_resolvable' => 'Le nom de domaine complet ou l\'adresse IP fournie ne correspond pas à une adresse IP valide.', + 'fqdn_required_for_ssl' => 'Un nom de domaine pleinement qualifié qui résout en une adresse IP publique est nécessaire pour utiliser le SSL pour ce nœud.', + ], + 'notices' => [ + 'allocations_added' => 'Les allocations ont été ajoutées avec succès à ce nœud.', + 'node_deleted' => 'Le nœud a été supprimé avec succès du panel.', + 'location_required' => 'Vous devez avoir configuré au moins un emplacement avant de pouvoir ajouter un nœud à ce panel.', + 'node_created' => 'Nouveau nœud créé avec succès. Vous pouvez configurer automatiquement le démon sur cette machine en visitant l\'onglet \'Configuration\'. Avant de pouvoir ajouter des serveurs, vous devez d\'abord allouer au moins une adresse IP et un port. ', + 'node_updated' => 'Les informations de nœud ont été mises à jour. Si des paramètres de démon ont été modifiés, vous devrez le redémarrer pour que ces modifications prennent effet.', + 'unallocated_deleted' => 'Suppresion de tous les ports non alloués pour l\'adresse :ip.', + ], +]; diff --git a/resources/lang/fr/admin/pack.php b/resources/lang/fr/admin/pack.php new file mode 100644 index 00000000..db81cd34 --- /dev/null +++ b/resources/lang/fr/admin/pack.php @@ -0,0 +1,16 @@ +. + * + * This software is licensed under the terms of the MIT license. + * https://opensource.org/licenses/MIT + */ + +return [ + 'notices' => [ + 'pack_updated' => 'Le pack a été mis à jour avec succès.', + 'pack_deleted' => 'Suppression réussie du pack ":name" du système.', + 'pack_created' => 'Un nouveau pack a été créé avec succès sur le système et est désormais disponible pour le déploiement sur les serveurs.', + ], +]; diff --git a/resources/lang/fr/admin/server.php b/resources/lang/fr/admin/server.php new file mode 100644 index 00000000..b432de91 --- /dev/null +++ b/resources/lang/fr/admin/server.php @@ -0,0 +1,31 @@ +. + * + * This software is licensed under the terms of the MIT license. + * https://opensource.org/licenses/MIT + */ + +return [ + 'exceptions' => [ + 'no_new_default_allocation' => 'Vous tentez de supprimer l\'allocation par défaut pour ce serveur mais il n\'y a aucune allocation de secours à utiliser.', + 'marked_as_failed' => 'Ce serveur a été marqué comme ayant échoué à une installation précédente. Le statut actuel ne peut pas être basculé dans cet état.', + 'bad_variable' => 'Il y avait une erreur de validation avec :name variable.', + 'daemon_exception' => 'Il y avait une exception lors de la tentative de communication avec le démon résultant une erreur HTTP/:code comme réponse. Cette exception a été enregistrée.', + 'default_allocation_not_found' => 'L\'allocation par défaut demandée n\'a pas été trouvée dans les allocations de ce serveur.', + ], + 'alerts' => [ + 'startup_changed' => 'La configuration de démarrage de ce serveur a été mise à jour. Si le nest ou l\'egg de ce serveur a été changé, une réinstallation aura lieu maintenant.', + 'server_deleted' => 'Le serveur a été supprimé du système avec succès.', + 'server_created' => 'Le serveur a été créé avec succès sur le panneau. Veuillez autoriser le démon quelques minutes pour installer complètement ce serveur.', + 'build_updated' => 'Les détails de construction de ce serveur ont été mis à jour. Certaines modifications peuvent nécessiter un redémarrage pour prendre effet.', + 'suspension_toggled' => 'Le statut de suspension du serveur a été modifié en :status.', + 'rebuild_on_boot' => 'Ce serveur a été marqué comme nécessitant une reconstruction: Docker Container. Cela se produira au prochain démarrage du serveur.', + 'install_toggled' => 'L\'état de l\'installation de ce serveur a été basculé.', + 'server_reinstalled' => 'Ce serveur a été mis en file d\'attente pour une réinstallation.', + 'details_updated' => 'Les détails du serveur ont été mis à jour avec succès.', + 'docker_image_updated' => 'Modification réussie de l\'image Docker par défaut à utiliser pour ce serveur. Un redémarrage est nécessaire pour appliquer cette modification.', + 'node_required' => 'Vous devez avoir configuré au moins un noeud avant de pouvoir ajouter un serveur à ce panel.', + ], +]; diff --git a/resources/lang/fr/admin/user.php b/resources/lang/fr/admin/user.php new file mode 100644 index 00000000..52ebbeab --- /dev/null +++ b/resources/lang/fr/admin/user.php @@ -0,0 +1,18 @@ +. + * + * This software is licensed under the terms of the MIT license. + * https://opensource.org/licenses/MIT + */ + +return [ + 'exceptions' => [ + 'user_has_servers' => 'Impossible de supprimer un utilisateur avec des serveurs actifs connectés à son compte. Veuillez supprimer leurs serveurs avant de continuer.', + ], + 'notices' => [ + 'account_created' => 'Le compte a été créé avec succès.', + 'account_updated' => 'Le compte a été mis à jour avec succès.', + ], +]; diff --git a/resources/lang/fr/auth.php b/resources/lang/fr/auth.php index 76de5e98..089cee3a 100644 --- a/resources/lang/fr/auth.php +++ b/resources/lang/fr/auth.php @@ -1,24 +1,22 @@ 'La clé 2FA est invalide.', - '2fa_must_be_enabled' => "L'administrateur a demandé que l'authentification à 2 facteurs (2FA) soit activée pour votre compte afin d'utiliser le panel.", - '2fa_required' => 'Authentification à 2 Facteurs (2FA)', - 'authentication_required' => "L'authentification est nécessaire pour continuer.", - 'auth_error' => "Une erreur s'est produite lors de la tentative de connexion.", - 'confirmpassword' => 'Confirmez le Mot de Passe', - 'emailsent' => "L'email de réinitialisation de votre mot de passe vous a été envoyé.", - 'email_sent' => 'Un e-mail contenant les instructions pour réinitialiser votre mot de passe vous a été envoyé.', - 'failed' => 'Ce combo e-mail / mot de passe ne correspond à aucun compte enregistré.', - 'forgot_password' => "J'ai oublié mon mot de passe !", - 'not_authorized' => "Vous n'êtes pas autorisé à effectuer cette action.", - 'password_requirements' => 'Un mot de passe doit contenir au moins une majuscule, une minuscule, un chiffre et doit faire au minimum 8 caractères de long.', + 'not_authorized' => 'Vous n\'êtes pas autorisé à effectuer cette action.', + 'auth_error' => 'Une erreur s\'est produite lors de la tentative de connexion.', + 'authentication_required' => 'L\'authentification est requise pour continuer.', 'remember_me' => 'Se souvenir de moi', - 'request_reset' => 'Récupérer le compte', - 'request_reset_text' => 'Vous avez oublié votre mot de passe ? Nous vous inquiétez pas, il suffit de fournir votre e-mail dans le champ ci-dessous.', - 'resetpassword' => 'Réinitialiser mot de passe', - 'reset_password' => 'Réinitialiser le mot de passe du compte.', - 'reset_password_text' => 'Réinitialiser le mot de passer de votre compte.', - 'sendlink' => 'Envoyer le lien de réinitialisation du mot de passe.', - 'sign_in' => 'Connexion', + 'sign_in' => 'Se connecter', + 'forgot_password' => 'J\'ai oublié mon mot de passe!', + 'request_reset_text' => 'Vous avez oublié le mot de passe de votre compte? Ce n\'est pas la fin du monde, fournissez juste votre adresse email ci-dessous.', + 'reset_password_text' => 'Réinitialisez votre mot de passe de compte', + 'reset_password' => 'Réinitialiser mot de passe', + 'email_sent' => 'Un e-mail vous a été envoyé avec des instructions pour réinitialiser votre mot de passe.', + 'failed' => 'Les informations d\'identification fournies ne correspondent pas à celles que nous avons d\'enregistrées, ou le jeton 2FA fourni n\'était pas valide.', + 'throttle' => 'Trop de tentatives de connexion. Veuillez réessayer dans :seconds secondes.', + 'password_requirements' => 'Les mots de passe doivent contenir au moins un caractère majuscule, minuscule et numérique et doivent comporter au moins 8 caractères.', + 'request_reset' => 'Localiser le compte', + '2fa_required' => 'Authentification 2-Factor', + '2fa_failed' => 'Le jeton 2FA fourni était invalide.', + 'totp_failed' => 'Une erreur s\'est produite lors de la tentative de validation TOTP.', + '2fa_must_be_enabled' => 'L\'administrateur a demandé que l\'authentification 2-Factor soit activée pour votre compte afin d\'utiliser le Panel.', ]; diff --git a/resources/lang/fr/base.php b/resources/lang/fr/base.php index b6b57946..652723f8 100644 --- a/resources/lang/fr/base.php +++ b/resources/lang/fr/base.php @@ -1,348 +1,89 @@ [ - 'current_password' => 'Mot de passe actuel', - 'delete_user' => 'Supprimer Utilisateur ', - 'details_updated' => 'Les détails de votre comptes ont été modifié avec succès.', - 'email_password' => 'Email Mot de passe ', - 'exception' => 'Une erreur est survenue durant la tentative de mise à jour de votre compte.', - 'first_name' => 'Prénom', - 'header' => 'Gestion du compte', - 'header_sub' => 'Gérer les détails de votre compte.', - 'invalid_pass' => "Le mot de passe fourni n'est pas valide pour ce compte. ", - 'invalid_password' => "Le mot de passe fourni n'est pas valide pour ce compte. ", - 'last_name' => 'Nom', - 'new_email' => 'Nouvel adresse e-mail', - 'new_password' => 'Nouveau mot de passe', - 'new_password_again' => 'Répéter le nouveau mot de passe', - 'totp_apps' => 'Vous devez posséder une application fournissant une authentification à deux facteurs (2FA) pour utiliser cette option. (ex : Authy, Enpass, DUO Mobile, Google Authenticator ...)', - 'totp_checkpoint_help' => "Veuillez vérifier vos paramètres 2FA en scannant le QR code sur votre droite avec votre application d'authentification, puis entrez le code à 6 chiffre qui s'affiche dans le champ ci-dessous. Appuyez sur entrée lorsque vous avez finit.", - 'totp_disable' => 'Désactiver l’authentification à deux facteurs ', - 'totp_disable_help' => "Pour désactiver l'authentification 2FA sur ce compte, vous devez fournir un token 2FA valide. Une fois ce token validé, la protection sera désactivée sur ce compte.", - 'totp_enable' => 'Activer l’authentification à deux facteurs', - 'totp_enabled' => 'Votre compte a été activé avec la vérification 2FA. Cliquez sur le bouton de fermeture pour terminer.', - 'totp_enabled_error' => "Le jeton 2FA fourni n'a pas pu être vérifié. Veuillez réessayer.", - 'totp_enable_help' => "Il semble que l'authentification à deux facteurs ne soit pas activée. Cette méthode d'authentification ajoute une barrière supplémentaire empêchant toute connexion non autorisée sur votre compte. Si vous l'activez, vous devrez entrer un code généré sur votre téléphone ou sur un autre périphérique compatible 2FA avant de terminer votre connexion.", - 'totp_header' => 'Authentification à deux facteurs', - 'totp_qr' => 'QR Code 2FA', - 'totp_token' => 'Jeton 2FA', - 'update_email' => "Modifier l'adresse e-mail", - 'update_identitity' => 'Modifier les informations', - 'update_pass' => 'Modifier le mot de passe', - 'update_user' => "Modifier l'utilisateur", - 'username_help' => "Votre nom d'utilisateur doit être unique à votre compte et ne doit être composé que des caractères suivants : :requirements.", + 'validation_error' => 'Une erreur s\'est produite avec un ou plusieurs champs dans la demande.', + 'errors' => [ + 'return' => 'Retourner à la page précédente', + 'home' => 'Accueil', + '403' => [ + 'header' => 'Interdit', + 'desc' => 'Vous n\'êtes pas autorisé à accéder à cette ressource sur ce serveur.', + ], + '404' => [ + 'header' => 'Fichier non trouvé', + 'desc' => 'Nous n\'avons pas pu localiser la ressource demandée sur le serveur.', + ], + 'installing' => [ + 'header' => 'Installation du serveur', + 'desc' => 'Le serveur demandé achève toujours le processus d\'installation. S\'il vous plaît revenez dans quelques minutes, vous devriez recevoir un e-mail dès que ce processus est terminé.', + ], + 'suspended' => [ + 'header' => 'Serveur suspendu', + 'desc' => 'Ce serveur a été suspendu et inaccessible.', + ], + 'maintenance' => [ + 'header' => 'Noeud sous maintenance', + 'title' => 'Temporairement indisponible', + 'desc' => 'Ce nœud est en cours de maintenance, donc votre serveur n\'est temporairement pas accessible.', + ], + ], + 'index' => [ + 'header' => 'Vos serveurs', + 'header_sub' => 'Serveurs auxquels vous avez accès', + 'list' => 'Liste de serveurs', ], 'api' => [ 'index' => [ - 'create_new' => 'Créer une nouvelle clé API', - 'header' => "Accès à l'API", - 'header_sub' => "Gérer vos clés d'accès à l'API.", - 'keypair_created' => "Une paire de clés API vient d'être générée. Votre jeton secret API est :jeton . Veuillez prendre note de cette clé car elle ne sera plus affichée.", - 'list' => 'Clés API.', + 'list' => 'Vos clés', + 'header' => 'API Compte', + 'header_sub' => 'Gérez les clés d\'accès qui vous permettent d\'effectuer des actions sur le panel.', + 'create_new' => 'Créer une nouvelle clé d\'API', + 'keypair_created' => 'Une clé d\'API a été générée avec succès et est répertoriée ci-dessous.', ], 'new' => [ - 'allowed_ips' => [ - 'description' => "Entrez une liste d'IP ayant accès à l'API utilisant cette clé, chacune séparées par un saut de ligne. La notation CIDR est autorisée. Laissez vide pour autoriser n'importe quelle IP.", - 'title' => 'IPs autorisées', - ], - 'base' => [ - 'information' => [ - 'description' => 'Retourne une liste de tout les serveur auquel ce compte peux accéder.', - 'title' => 'Information de base', - ], - 'title' => 'Information de base ', - ], + 'header' => 'Nouvelle clé d\'API', + 'header_sub' => 'Créez une nouvelle clé d\'accès au compte.', + 'form_title' => 'Détails', 'descriptive_memo' => [ - 'description' => "Entrez une courte description de ce pourquoi cette clef d'API sera utilisée.", - 'title' => 'Résumé', + 'title' => 'Description', + 'description' => 'Entrez une brève description de cette clé qui sera utile à titre de référence.', ], - 'form_title' => 'Détails ', - 'header' => "Nouvelle clef d'API ", - 'header_sub' => 'Crée une nouvelle clef d’accès API ', - 'location_management' => [ - 'list' => [ - 'description' => 'Autoriser à lister touts les emplacements et leurs noeuds associés.', - 'title' => 'Liste des emplacements ', - ], - 'title' => "Gestionnaire d'emplacements ", - ], - 'node_management' => [ - 'allocations' => [ - 'description' => 'Permet de voir toutes les allocations sur le panel pour toutes les nodes.', - 'title' => 'Liste des allocations ', - ], - 'create' => [ - 'description' => 'Autoriser à crée un nouveau noeud sur le système.', - 'title' => 'Crée noeud', - ], - 'delete' => [ - 'description' => 'Autoriser à supprimer un noeud.', - 'title' => 'Supprimer Nœud ', - ], - 'list' => [ - 'description' => 'Autoriser à lister touts les noeuds actuellement sur le système. ', - 'title' => 'Liste des noeuds ', - ], - 'title' => 'Gestion du noeud ', - 'view' => [ - 'description' => "Autoriser à voir les détails à propos d'un noeud spécifique incluant des services actifs. ", - 'title' => 'Liste de noeuds simple', - ], - ], - 'server_management' => [ - 'build' => [ - 'title' => 'Mettre à jour la construction', - ], - 'command' => [ - 'description' => 'Autoriser un utilisateur à envoyer une commande spécifique au serveur.', - 'title' => 'Envoyer une commande ', - ], - 'config' => [ - 'description' => 'Autoriser à modifier la configuration serveur (nom, propriétaire et jeton d’accès).', - 'title' => 'Mettre à jour la configuration', - ], - 'create' => [ - 'description' => 'Autoriser à crée un nouveau serveur sur le système. ', - 'title' => 'Crée un serveur', - ], - 'delete' => [ - 'description' => 'Autoriser à supprimer un serveur.', - 'title' => 'Supprimer serveur', - ], - 'list' => [ - 'description' => 'Autoriser à lister tout les serveur actuellement sur le système.', - 'title' => 'Liste des serveurs ', - ], - 'power' => [ - 'description' => "Permet de contrôler d'allumer et d’éteindre le serveur.", - 'title' => 'Alimentation Serveur ', - ], - 'server' => [ - 'description' => 'Permet de voir toutes les informations sur un seul serveur, incluant ses dernières statistiques et ce qui lui est alloué.', - 'title' => 'Info Serveur ', - ], - 'suspend' => [ - 'description' => 'Autoriser à suspendre une instance serveur ', - 'title' => 'Serveur suspendu ', - ], - 'title' => 'Gestionnaire serveur ', - 'unsuspend' => [ - 'description' => 'Autoriser à dé-suspendre une instance serveur ', - 'title' => 'Serveur non suspendu ', - ], - 'view' => [ - 'description' => "Autoriser à voir les détails à propose d'un serveur spécifique incluant le daemon_token comme information de processus actuelle -", - 'title' => 'Montrer serveur simple ', - ], - ], - 'service_management' => [ - 'list' => [ - 'description' => 'Autoriser à lister tout les services configuré sur le système. ', - 'title' => 'Liste des Services ', - ], - 'title' => 'Gestionnaire de service', - 'view' => [ - 'description' => 'Autoriser à lister les détails à propos de chaque service sur le système incluant un service avec des options et des variables.', - 'title' => 'Liste des services uniques', - ], - ], - 'user_management' => [ - 'create' => [ - 'description' => 'Allouer à crée une nouvel utilisateur sur le système.', - 'title' => 'Créer utilisateur', - ], - 'delete' => [ - 'description' => 'Autoriser à supprimer un utilisateur.', - 'title' => 'Supprimer Utilisateur ', - ], - 'list' => [ - 'description' => 'Autoriser à lister tout les utilisateur actuellement sur le serveur.', - 'title' => 'Liste des utilisateurs', - ], - 'title' => "Gestion d'Utilisateur", - 'update' => [ - 'description' => "Autoriser à modifier les détails d'un utilisateur (email, mot de passe, informations TOTP).", - 'title' => "Mettre à jour l'utilisateur", - ], - 'view' => [ - 'description' => "Autoriser à voir les détails à propos d'une utilisateur spécifique incluant un service actif. ", - 'title' => 'Lister les utilisateur uniques', - ], - ], - ], - 'permissions' => [ - 'admin' => [ - 'location' => [ - 'list' => [ - 'desc' => 'Autoriser à lister touts les emplacements et ses noeuds associes.', - 'title' => 'Liste des emplacements', - ], - ], - 'location_header' => "Contrôles de l'emplacement", - 'node' => [ - 'create' => [ - 'desc' => 'Autoriser à crée un nouveau noeud sur le système.', - 'title' => 'Crée un noeud ', - ], - 'delete' => [ - 'desc' => 'Autoriser à supprimer un noeud sur le système.', - 'title' => 'Supprimer Nœud ', - ], - 'list' => [ - 'desc' => 'Autoriser à lister tout les noeuds actuellement sur le système.', - 'title' => 'Liste des noeuds ', - ], - 'view-config' => [ - 'desc' => 'Attention. Cette autorisation permet de voir le fichier de configuration du noeud utilisé par le daemon, et expose le jeton secret de ce dernier. ', - 'title' => 'Voir la configuration du noeud ', - ], - 'view' => [ - 'desc' => "Autoriser à voir les détails à propos d'un noeuds spécifique incluant un service actif.", - 'title' => 'Voir Nœud ', - ], - ], - 'node_header' => 'Contrôle du Nœud ', - 'option' => [ - 'list' => [ - 'title' => 'Liste des options', - ], - 'view' => [ - 'title' => 'Voir les options ', - ], - ], - 'option_header' => 'Options de contrôle', - 'pack' => [ - 'list' => [ - 'desc' => '', - 'title' => 'Liste des packs ', - ], - 'view' => [ - 'title' => 'Voir Pack', - ], - ], - 'pack_header' => 'Gestion du Pack', - 'server' => [ - 'create' => [ - 'desc' => 'Autoriser à crée un nouveau serveur sur le système.', - 'title' => 'Crée un Serveur ', - ], - 'delete' => [ - 'desc' => 'Autoriser à supprimer un serveur du système.', - 'title' => 'Supprimer Serveur', - ], - 'edit-build' => [ - 'desc' => 'Autoriser à éditer les paramètres de construction du serveur tel que le processeur et la mémoire. ', - 'title' => 'Editer la construction du serveur', - ], - 'edit-container' => [ - 'desc' => 'Autoriser pour les modifications du container Docker dans lequel le serveur fonctionne.', - 'title' => 'Editer le container du serveur', - ], - 'edit-details' => [ - 'desc' => 'Autoriser à éditer les détails du serveur tels que le nom, le propriétaire, et la clef secrète. ', - 'title' => 'Editer les détails du serveur ', - ], - 'edit-startup' => [ - 'desc' => 'Autorise à modifier la commande de lancement et les paramètres.', - 'title' => 'Editer les paramètres de démarrage du serveur', - ], - 'install' => [ - 'title' => "Activer le statut de l'installation", - ], - 'list' => [ - 'desc' => 'Autorise à lister tout les serveur actuellement sur le système.', - 'title' => 'Liste des serveurs ', - ], - 'rebuild' => [ - 'title' => 'Recréer un serveur', - ], - 'suspend' => [ - 'desc' => 'Autorise à suspendre ou dé-suspendre un serveur donné. ', - 'title' => 'Suspendre le serveur ', - ], - 'view' => [ - 'desc' => 'Autoriser à voir un simple serveur incluant des services et des détails.', - 'title' => 'Voir serveur ', - ], - ], - 'server_header' => 'Contrôle du serveur', - 'service' => [ - 'list' => [ - 'desc' => 'Autorise à lister tout les services configurés sur le système', - 'title' => 'Liste des services ', - ], - 'view' => [ - 'desc' => 'Autoriser à lister les détails à propos de chaque service sur le système incluant des options de service et des variables', - 'title' => 'Voir le service ', - ], - ], - 'service_header' => 'Contrôle du service', - 'user' => [ - 'create' => [ - 'desc' => 'Autorise à crée un nouvel utilisateur sur le système. ', - 'title' => 'Crée un utilisateur', - ], - 'delete' => [ - 'desc' => 'Autoriser à supprimer un utilisateur ', - 'title' => 'Supprimer utilisateur ', - ], - 'edit' => [ - 'desc' => "Autoriser les modifications des détails d'un utilisateur.", - 'title' => "Mettre à jour l'utilisateur", - ], - 'list' => [ - 'desc' => 'Autoriser à lister tout les utilisateurs actuellement sur le serveur ', - 'title' => 'Liste des utilisateur ', - ], - 'view' => [ - 'desc' => "Autoriser à voir les détails à propos d'une configuration spécifique incluant des services actifs.", - 'title' => "Voir l'utilisateurs", - ], - ], - 'user_header' => "Contrôles de l'utilisateurs ", - ], - 'user' => [ - 'server' => [ - 'command' => [ - 'desc' => "Autoriser l'envoi d'une commande à un serveur en cours d'exécution.", - 'title' => "Envoi d'une commande", - ], - 'list' => [ - 'desc' => 'Autoriser à lister tous les serveurs dont un utilisateur est propriétaire ou auquel il a accès en tant que sous-utilisateur.', - 'title' => 'Liste des serveurs ', - ], - 'power' => [ - 'desc' => "Autoriser à inverser le status d'alimentation pour le serveur.", - 'title' => 'Inverser Alimentation ', - ], - 'view' => [ - 'desc' => "Autorise l'affichage d'un utilisateur spécifique du serveur.", - 'title' => 'Voir serveur', - ], - ], - 'server_header' => "Permission serveur de l'utilisateur ", + 'allowed_ips' => [ + 'title' => 'Adresses IP autorisées', + 'description' => 'Entrez une liste délimitée par une ligne d\'adresses IP autorisées à accéder à l\'API à l\'aide de cette clé. La notation CIDR est autorisée. Laissez vide pour autoriser toute adresse IP.', ], ], ], - 'confirm' => 'Êtes vous sûr ? ', - 'errors' => [ - '403' => [ - 'desc' => "Vous n'avez pas la permission d’accéder à cette ressource sur ce serveur.", - ], - '404' => [ - 'header' => 'Fichier introuvable.', - ], + 'account' => [ + 'details_updated' => 'Vos coordonnées ont été mis à jour avec succès.', + 'invalid_password' => 'Le mot de passe fourni pour votre compte n\'était pas valide.', + 'header' => 'Votre compte', + 'header_sub' => 'Gérez les détails de votre compte', + 'update_pass' => 'Mettre à jour le mot de passe', + 'update_email' => 'Mettre a jour l\'adresse email', + 'current_password' => 'Mot de passe actuel', + 'new_password' => 'Nouveau mot de passe', + 'new_password_again' => 'Répété le nouveau mot de passe', + 'new_email' => 'Nouvelle adresse Email', + 'first_name' => 'Prénom', + 'last_name' => 'Nom', + 'update_identitity' => 'Mettre à jour l\'identité', + 'username_help' => 'Votre nom d\'utilisateur doit être unique à votre compte et ne peut contenir que les éléments suivants characters: :requirements.', + 'language' => 'Langue', ], 'security' => [ - '2fa_header' => 'Authentification à deux facteurs', - 'enable_2fa' => "Activer l'authentification à deux facteurs.", + 'session_mgmt_disabled' => 'Votre hôte n\'a pas activé la possibilité de gérer les sessions de compte via cette interface.', 'header' => 'Sécurité du compte', - 'header_sub' => "Contrôler les sessions actives et l'authentification à 2 facteurs.", + 'header_sub' => 'Contrôlez les sessions actives et l\'authentification 2-Factor.', 'sessions' => 'Sessions actives', + '2fa_header' => 'Authentification 2-Factor', + '2fa_token_help' => 'Entrez le jeton 2FA généré par votre application (Google Authenticator, Authy, etc.).', + 'disable_2fa' => 'Désactiver l\'authentification à 2-Factor', + '2fa_enabled' => 'L\'authentification à 2-Factor est activée sur ce compte et sera nécessaire pour se connecter au panel. Si vous souhaitez désactiver 2FA, entrez simplement un jeton valide ci-dessous et soumettez le formulaire.', + '2fa_disabled' => 'L\'authentification à 2-Factor est désactivée sur votre compte! Vous devez activer 2FA afin d\'ajouter un niveau de protection supplémentaire sur votre compte.', + 'enable_2fa' => 'Activer l\'authentification à 2-Factor', + '2fa_qr' => 'Configurer 2FA sur votre appareil', + '2fa_checkpoint_help' => 'Utilisez l\'application 2FA sur votre téléphone pour prendre une photo du code QR à gauche, ou entrez manuellement le code en dessous. Une fois que vous l\'avez fait, générez un jeton et entrez-le ci-dessous.', + '2fa_disable_error' => 'Le jeton 2FA fourni n\'était pas valide. La protection n\'a pas été désactivée pour ce compte.', ], - 'server_name' => 'Nom du Serveur', - 'validation_error' => 'Il y à une erreur avec un ou plusieurs champs dans la requête. ', - 'view_as_admin' => "Vous regardez cette liste de serveurs en tant qu'admin. En tant que tel, tous les serveurs présents sur le système seront affichés. Tous les serveurs où vous êtes indiqué comme étant le propriétaire sont marqués d'un point bleu à gauche de leur nom.", ]; diff --git a/resources/lang/fr/command/messages.php b/resources/lang/fr/command/messages.php new file mode 100644 index 00000000..35856aeb --- /dev/null +++ b/resources/lang/fr/command/messages.php @@ -0,0 +1,97 @@ + [ + 'warning' => 'Il semble que vous ayez déjà configuré une clé de chiffrement d\'application. Poursuivre ce processus va écraser cette clé et provoquer la corruption de données pour toutes les données cryptées existantes. NE CONTINUEZ PAS À MOINS QUE VOUS NE SAVIEZ CE QUE VOUS FAITES.', + 'confirm' => 'Je comprends les conséquences de l\'exécution de cette commande et accepte toute responsabilité pour la perte de données cryptées.', + 'final_confirm' => 'Êtes-vous sûr de vouloir continuer? La modification de la clé de chiffrement d\'application (PERTE DE DONNÉES).', + ], + 'location' => [ + 'no_location_found' => 'Impossible de trouver un enregistrement correspondant au code de fonction fourni.', + 'ask_short' => 'Code de localisation', + 'ask_long' => 'Description de localisation', + 'created' => 'Création réussie d\'une nouvel location (:name) avec l\'id :id.', + 'deleted' => 'Suppression réussie de la location demandé', + ], + 'user' => [ + 'search_users' => 'Entrez un nom d\'utilisateur, UUID, ou une adresse e-mail', + 'select_search_user' => 'ID de l\'utilisateur à supprimer (Entrer \'0\' pour rechercher)', + 'deleted' => 'UUtilisateur supprimé avec succès du Panel.', + 'confirm_delete' => 'Êtes-vous sûr de vouloir supprimer cet utilisateur du Panel?', + 'no_users_found' => 'Aucun utilisateur n\'a été trouvé avec le terme de recherche fourni.', + 'multiple_found' => 'Plusieurs comptes ont été trouvés pour l\'utilisateur fourni, impossible de supprimer un utilisateur à cause de l\'indicateur --no-interaction.', + 'ask_admin' => 'Cet utilisateur est-il un administrateur?', + 'ask_email' => 'Adresse Email', + 'ask_username' => 'Utilisateur', + 'ask_name_first' => 'Prénom', + 'ask_name_last' => 'Nom', + 'ask_password' => 'Mot de passe', + 'ask_password_tip' => 'Si vous souhaitez créer un compte avec un mot de passe aléatoire envoyé à l\'utilisateur, relancez cette commande (CTRL + C) et passez l\'indicateur `--no-password`.', + 'ask_password_help' => 'Les mots de passe doivent comporter au moins 8 caractères et contenir au moins une lettre majuscule et un nombre.', + '2fa_help_text' => [ + 'Cette commande désactivera l\'authentification à 2-Factor pour le compte d\'un utilisateur s\'il est activé. Cela ne doit être utilisé comme une commande de récupération de compte que si l\'utilisateur est verrouillé hors de son compte.', + 'Si ce n\'est pas ce que vous vouliez faire, appuyez sur CTRL + C pour quitter ce processus.', + ], + '2fa_disabled' => 'l\'authentification 2-Factor a été désactivée pour l\'adresse mail :email.', + ], + 'schedule' => [ + 'output_line' => 'Envoi du travail pour la première tâche `:schedule` (:hash).', + ], + 'maintenance' => [ + 'deleting_service_backup' => 'Suppression du fichier de sauvegarde: :file.', + ], + 'server' => [ + 'rebuild_failed' => 'Requête de Rebuild ":name" (#:id) sur le noeud ":node" échoué avec l\'erreur: :message', + 'power' => [ + 'confirm' => 'Vous êtes sur le point d\'effectuer l\'action :action sur :count serveurs. Souhaitez-vous continuer?', + 'action_failed' => 'Demande d\'action d\'alimentation pour ":name" (#:id) sur le noeud ":node" échoué avec l\'erreur: :message', + ], + ], + 'environment' => [ + 'mail' => [ + 'ask_smtp_host' => 'Hôte SMTP (e.g. smtp.google.com)', + 'ask_smtp_port' => 'Port SMTP', + 'ask_smtp_username' => 'Utilisateur SMTP', + 'ask_smtp_password' => 'Mot de passe SMTP', + 'ask_mailgun_domain' => 'Domaine Mailgun', + 'ask_mailgun_secret' => 'Secret Mailgun', + 'ask_mandrill_secret' => 'Secret Mandrill', + 'ask_postmark_username' => 'Clé API Postmark', + 'ask_driver' => 'Quel pilote devrait être utilisé pour envoyer les emails?', + 'ask_mail_from' => 'Les adresses e-mail doivent provenir de', + 'ask_mail_name' => 'Nommez que les emails doivent apparaître à partir de', + 'ask_encryption' => 'Méthode de chiffrement à utiliser', + ], + 'database' => [ + 'host_warning' => 'Il est fortement recommandé de ne pas utiliser "localhost" comme hôte de base de données car nous avons souvent rencontré des problèmes de connexion de socket. Si vous souhaitez utiliser une connexion locale, vous devez utiliser "127.0.0.1".', + 'host' => 'Hôte Base de données', + 'port' => 'Port Base de données', + 'database' => 'Nom Base de données', + 'username_warning' => 'L\'utilisation du compte "root" pour les connexions MySQL n\'est pas seulement fortement désapprouvée, elle n\'est pas non plus autorisée par cette application. Vous devez avoir créé un utilisateur MySQL pour ce logiciel.', + 'username' => 'Utilisateur Base de données', + 'password_defined' => 'Il semble que vous ayez déjà un mot de passe de connexion MySQL défini, voulez-vous le changer?', + 'password' => 'Mot de passe Base de données', + 'connection_error' => 'Impossible de se connecter au serveur MySQL en utilisant les informations d\'identification fournies. L\'erreur renvoyée ":error".', + 'creds_not_saved' => 'Vos informations d\'identification de connexion n\'ont pas été enregistrées. Vous devrez fournir des informations de connexion valides avant de continuer.', + 'try_again' => 'Essayez à nouveau?', + ], + 'app' => [ + 'settings' => 'Activer l\'éditeur de paramètres (UI) basé sur l\'interface utilisateur?', + 'author' => 'Email de l\'auteur Egg', + 'author_help' => 'Indiquez l\'adresse e-mail à partir de laquelle les Egg exportés par ce Panel doivent provenir. Cela devrait être une adresse email valide.', + 'app_url_help' => 'L\'URL de l\'application doit commencer par https:// ou http:// selon ce que vous utilisez SSL ou non. Si vous n\'incluez pas le système, vos e-mails et autres contenus seront liés au mauvais emplacement.', + 'app_url' => 'URL de l\'application', + 'timezone_help' => 'Le fuseau horaire doit correspondre à l\'un des fuseaux horaires pris en charge par PHP. Si vous n\'êtes pas sûr, s\'il vous plaît regarder ici http://php.net/manual/en/timezones.php.', + 'timezone' => 'Fuseau horaire de l\'application', + 'cache_driver' => 'Pilote de cache', + 'session_driver' => 'Pilote de session', + 'queue_driver' => 'Pilote de file d\'attente', + 'using_redis' => 'Vous avez sélectionné le pilote Redis pour une ou plusieurs options, veuillez fournir ci-dessous les informations de connexion valides. Dans la plupart des cas, vous pouvez utiliser les paramètres par défaut fournis, sauf si vous avez modifié votre configuration.', + 'redis_host' => 'Hôte Redis', + 'redis_password' => 'Mot de passe Redis', + 'redis_pass_help' => 'Par défaut, une instance de serveur Redis n\'a pas de mot de passe car elle est exécutée localement et inaccessible au monde extérieur. Si c\'est le cas, appuyez simplement sur Entrée sans entrer de valeur.', + 'redis_port' => 'Port Redis', + 'redis_pass_defined' => 'Il semble qu\'un mot de passe est déjà défini pour Redis, aimeriez-vous le changer?', + ], + ], +]; diff --git a/resources/lang/fr/exceptions.php b/resources/lang/fr/exceptions.php new file mode 100644 index 00000000..2ab43f05 --- /dev/null +++ b/resources/lang/fr/exceptions.php @@ -0,0 +1,68 @@ + 'Il y avait une exception lors de la tentative de communication avec le démon résultant un code d\'erreur: HTTP/:code . Cette exception a été enregistrée.', + 'node' => [ + 'servers_attached' => 'Un nœud ne doit avoir aucun serveur lié pour être supprimé.', + 'daemon_off_config_updated' => 'La configuration du démon a été mis à jour, cependant, une erreur s\'est produite lors de la tentative de mise à jour automatique du fichier de configuration sur le démon. Vous devrez mettre à jour manuellement le fichier de configuration (core.json) pour que le démon puisse appliquer ces modifications.', + ], + 'allocations' => [ + 'server_using' => 'Un serveur est actuellement affecté à cette allocation. Une allocation ne peut être supprimée que si aucun serveur n\'est actuellement affecté.', + 'too_many_ports' => 'L\'ajout de plus de 1000 ports dans une même plage à la fois n\'est pas pris en charge.', + 'invalid_mapping' => 'La cartographie prévue pour le port :port était invalide et n\'a pas pu être traité.', + 'cidr_out_of_range' => 'La notation CIDR n\'autorise que les masques entre /25 and /32.', + 'port_out_of_range' => 'Les ports d\'une allocation doivent être supérieurs à 1024 et inférieurs ou égaux à 65535.', + ], + 'nest' => [ + 'delete_has_servers' => 'Un nid avec des serveurs actifs connectés ne peut pas être supprimé du panel.', + 'egg' => [ + 'delete_has_servers' => 'Un Egg avec des serveurs actifs qui y sont attachés ne peuvent pas être supprimés du Panel.', + 'invalid_copy_id' => 'L\'Egg sélectionné pour copier un script de l\'un n\'existe pas ou copie un script de lui-même.', + 'must_be_child' => 'La directive "Copy Settings From" pour cet Egg doit être une option enfant pour le Nest sélectionné.', + 'has_children' => 'Cet Egg est un parent pour un ou plusieurs autres Egg. S\'il vous plaît supprimer ces Egg avant de supprimer cet Egg.', + ], + 'variables' => [ + 'env_not_unique' => 'La variable d\'environnement :name mdoit être unique à cet Egg.', + 'reserved_name' => 'La variable d\'environnement :name est protégé et ne peut pas être affecté à une variable.', + 'bad_validation_rule' => 'The validation rule ":rule" is not a valid rule for this application.', + ], + 'importer' => [ + 'json_error' => 'Une erreur s\'est produite lors de la tentative d\'analyse du fichier JSON: :error.', + 'file_error' => 'Le fichier JSON fourni n\'était pas valide.', + 'invalid_json_provided' => 'Le fichier JSON fourni n\'est pas dans un format qui peut être reconnu.', + ], + ], + 'packs' => [ + 'delete_has_servers' => 'Impossible de supprimer un pack attaché aux serveurs actifs.', + 'update_has_servers' => 'mpossible de modifier l\'ID d\'option associé lorsque les serveurs sont actuellement connectés à un pack.', + 'invalid_upload' => 'Le fichier fourni ne semble pas être valide.', + 'invalid_mime' => 'Le fichier fourni ne correspond pas au type requis :type', + 'unreadable' => 'L\'archive fournie n\'a pas pu être ouverte par le serveur.', + 'zip_extraction' => 'Une exception a été rencontrée lors de la tentative d\'extraction de l\'archive fournie sur le serveur.', + 'invalid_archive_exception' => 'L\'archive du pack fournie semble incorect, le fichier archive.tar.gz ou import.json et requis dans le répertoire de base.', + ], + 'subusers' => [ + 'editing_self' => 'La modification de votre propre compte de sous-utilisateur n\'est pas autorisée.', + 'user_is_owner' => 'Vous ne pouvez pas ajouter le propriétaire du serveur en tant que sous-utilisateur pour ce serveur.', + 'subuser_exists' => 'Un utilisateur avec cette adresse électronique est déjà affecté en tant que sous-utilisateur pour ce serveur.', + ], + 'databases' => [ + 'delete_has_databases' => 'Impossible de supprimer un serveur hôte de base de données sur lequel des bases de données actives sont liées.', + ], + 'tasks' => [ + 'chain_interval_too_long' => 'L\'intervalle maximum pour une tâche enchaînée est de 15 minutes.', + ], + 'locations' => [ + 'has_nodes' => 'Impossible de supprimer un emplacement auquel sont associés des nœuds actifs.', + ], + 'users' => [ + 'node_revocation_failed' => 'Échec de la révocation des clés Node #:node. :error', + ], + 'deployment' => [ + 'no_viable_nodes' => 'Aucun noeud répondant aux exigences spécifiées pour le déploiement automatique n\'a pu être trouvé.', + 'no_viable_allocations' => 'Aucune allocation répondant aux exigences de déploiement automatique n\'a été trouvée.', + ], + 'api' => [ + 'resource_not_found' => 'La ressource demandée n\'existe pas sur ce serveur.', + ], +]; diff --git a/resources/lang/fr/navigation.php b/resources/lang/fr/navigation.php new file mode 100644 index 00000000..c9ffcf73 --- /dev/null +++ b/resources/lang/fr/navigation.php @@ -0,0 +1,32 @@ + 'Accueil', + 'account' => [ + 'header' => 'GESTION DU COMPTE', + 'my_account' => 'Mon compte', + 'security_controls' => 'Contrôles de sécurité', + 'api_access' => 'Accès à l\'API', + 'my_servers' => 'Mes serveurs', + ], + 'server' => [ + 'header' => 'GESTION DES SERVEURS', + 'console' => 'Console', + 'console-pop' => 'Console en plein écran', + 'file_management' => 'Gestionnaire de fichiers', + 'file_browser' => 'Navigateur de fichiers', + 'create_file' => 'Créer un fichier', + 'upload_files' => 'Envoyer des fichiers', + 'subusers' => 'Sous-utilisateurs', + 'schedules' => 'Tâches planifiées', + 'configuration' => 'Configuration', + 'port_allocations' => 'Paramètres d\'allocation', + 'sftp_settings' => 'Paramètres SFTP', + 'startup_parameters' => 'Paramètres de démarrage', + 'databases' => 'Bases de données', + 'edit_file' => 'Modifier le fichier', + 'admin_header' => 'ADMINISTRATION', + 'admin' => 'Configuration du serveur', + 'server_name' => 'Nom du serveur', + ], +]; diff --git a/resources/lang/fr/pagination.php b/resources/lang/fr/pagination.php index 3a6a041b..85e0d87c 100644 --- a/resources/lang/fr/pagination.php +++ b/resources/lang/fr/pagination.php @@ -1,12 +1,17 @@ [ - 'account_controls' => 'Contrôles de compte', - 'account_security' => 'Sécurité du compte ', - 'account_settings' => 'Paramètres de Compte', - 'files' => 'Gestionnaire de Fichiers', - 'manage' => 'Gérer le Serveur', - 'overview' => "Vue d'ensemble du serveur", - ], + /* + |-------------------------------------------------------------------------- + | Pagination Language Lines + |-------------------------------------------------------------------------- + | + | The following language lines are used by the paginator library to build + | the simple pagination links. You are free to change them to anything + | you want to customize your views to better match your application. + | + */ + + 'previous' => '« Précédent', + 'next' => 'Suivant »', ]; diff --git a/resources/lang/fr/passwords.php b/resources/lang/fr/passwords.php index a54aefea..e1180584 100644 --- a/resources/lang/fr/passwords.php +++ b/resources/lang/fr/passwords.php @@ -1,7 +1,19 @@ 'Mot de passe', - 'reset' => 'Votre mot de passe à été réinitialisé! ', - 'sent' => 'Nous vous avons envoyé par e-mail votre lien de réinitialisation de mot de passe!', + /* + |-------------------------------------------------------------------------- + | Password Reset Language Lines + |-------------------------------------------------------------------------- + | + | The following language lines are the default lines which match reasons + | that are given by the password broker for a password update attempt + | has failed, such as for an invalid token or invalid new password. + | + */ + 'password' => 'Les mots de passe doivent comporter au moins six caractères et correspondre à la confirmation.', + 'reset' => 'Votre mot de passe a été réinitialisé!', + 'sent' => 'Nous avons envoyé un e-mail de réinitialisation!', + 'token' => 'Ce jeton de réinitialisation n\'est pas valide.', + 'user' => 'Aucun utilisateur trouvé avec cette adresse e-mail.', ]; diff --git a/resources/lang/fr/server.php b/resources/lang/fr/server.php index d5b2b1f0..3757b2ef 100644 --- a/resources/lang/fr/server.php +++ b/resources/lang/fr/server.php @@ -1,159 +1,334 @@ [ - 'socket_error' => 'Nous sommes incapable de nous connecter au serveur Socket.IO principal, il y a peut-être actuellement des problèmes de réseau. Le panel risque de ne pas fonctionner comme prévu.', - 'socket_status' => 'Le status du serveur a été changé par', - 'socket_status_crashed' => 'Ce serveur a été détecté comme planté.', - ], - 'config' => [ - 'allocation' => [ - 'available' => 'Allocations Disponibles', - 'header' => 'Allocations du Serveur', - 'header_sub' => 'Control des IP et des ports disponible sur ce serveur.', - 'help' => "Aide d'allocation", - ], - 'database' => [ - 'add_db' => 'Ajouter une nouvelle base de donnée.', - 'header' => 'Base de données ', - 'header_sub' => 'Toutes les bases de données disponible pour ce serveur.', - 'host' => 'Hote MySQL', - 'no_dbs' => "Il n'y a pas de bases de données listées pour ce serveur.", - 'reset_password' => 'Réinitialiser le mot de passe ', - 'your_dbs' => 'Vos Bases de Données', - ], - 'sftp' => [ - 'change_pass' => 'Changer le mot de passe SFTP', - 'conn_addr' => 'Adresse de connexion ', - 'details' => 'Détails du SFTP', - 'header' => 'Configurations SFTP', - 'header_sub' => 'Informations de compte pour la connexion SFTP.', - ], - 'startup' => [ - 'command' => 'Commande de lancement ', - 'edited' => 'les variables de lancement ont bien étés édites. Elles vont prendre effet la prochaine fois que le serveur sera lancé. ', - 'edit_params' => 'Editer les paramètres ', - 'header' => 'Lancer la configuration', - 'header_sub' => 'Contrôle des arguments du lancement du serveur.', - 'startup_regex' => 'Vérification Regex', - 'startup_var' => 'Variable de commande de lancement', - 'update' => 'Mettre à jour les paramètres de lancement', - ], - ], - 'files' => [ - 'add' => [ - 'create' => 'Crée fichier ', - 'header' => 'Nouveau fichier', - 'header_sub' => 'Crée un nouveau fichier sur votre serveur.', - 'name' => 'Nom de fichier', - ], - 'add_folder' => 'Ajouter nouveau dossier', - 'add_new' => 'Ajouter un nouveau fichier', - 'back' => 'Retourner au gestionnaire de fichiers', - 'delete' => 'Supprimer ', - 'edit' => [ - 'header' => 'Editer le fichier ', - 'header_sub' => 'Faire des modification sur le fichier depuis le web.', - 'return' => 'Retourner au gestionnaire de fichiers ', - 'save' => 'Sauvegarder le fichier', - ], - 'exceptions' => [ - 'invalid_mime' => "Ce type de fichier ne peux pas être éditer via le panneau d'edition built-in.", - 'list_directory' => "Une erreur s'est produite lors de la tentative d'obtention du contenu de ce répertoire. Veuillez réessayer.", - 'max_size' => "Ce fichier est trop grand pour être édité via l'éditeur du panneau built-in. ", - ], - 'file_name' => 'Nom de fichier', - 'header' => 'Gestionnaire de fichier', - 'header_sub' => 'Gérez tous vos fichiers directement depuis le web.', - 'last_modified' => 'Dernière modifications ', - 'loading' => 'Chargement de la structure initiale du fichier, cela peut prendre quelques secondes.', - 'mass_actions' => 'Action de masse', - 'saved' => 'Le fichier à été sauvegardé avec succès. ', - 'yaml_notice' => "Vous éditez un fichier YAML. Ces fichiers n'acceptent pas les tabulations, il faut impérativement que cela soit des espaces. Nous avons prévu le coup et avons fait en sorte qu'appuyer sur tab insérera :dropdown espaces. ", - ], 'index' => [ - 'allocation' => 'Allocation ', - 'command' => 'Entrer une commande console', - 'cpu_use' => 'Utilisation CPU', - 'server_info' => 'Informations Serveur', - 'usage' => 'Utilisation', + 'title' => 'Affichage du serveur :name', + 'header' => 'Console du serveur', + 'header_sub' => 'Contrôlez votre serveur en temps réel.', + ], + 'schedule' => [ + 'header' => 'Gestion planification', + 'header_sub' => 'Gérer toutes les planifications de ce serveur en un seul endroit.', + 'current' => 'Planification actuels', + 'new' => [ + 'header' => 'Créer une nouvel planification', + 'header_sub' => 'Créez un nouvel ensemble de tâches planifiées pour ce serveur.', + 'submit' => 'Créer une planification', + ], + 'manage' => [ + 'header' => 'Gérer la planification', + 'submit' => 'Mise à jour de la planification', + 'delete' => 'Supprimer la planification', + ], + 'task' => [ + 'time' => 'Après', + 'action' => 'Faire une action', + 'payload' => 'Commande', + 'add_more' => 'Ajouter une autre tâche', + ], + 'actions' => [ + 'command' => 'Envoyer la commande', + 'power' => 'Action d\'alimentation', + ], + 'toggle' => 'Basculer le statut', + 'run_now' => 'Déclencher planification', + 'schedule_created' => 'Création réussie d\'une nouvelle planification pour ce serveur', + 'schedule_updated' => 'La planification a été mis à jour', + 'unnamed' => 'Planification sans nom', + 'setup' => 'Configuration de la planification', + 'day_of_week' => 'Jour de la semaine', + 'day_of_month' => 'Jour du mois', + 'hour' => 'Heure du jour', + 'minute' => 'Minute d\'heure', + 'time_help' => 'Le système de planification prend en charge l\'utilisation de la syntaxe Cronjob lors de la définition du moment où les tâches doivent commencer à s\'exécuter. Utilisez les champs ci-dessus pour spécifier quand ces tâches doivent commencer à s\'exécuter ou sélectionnez des options dans les différents menus de sélection.', + 'task_help' => 'Les durées des tâches sont relatives à la tâche précédemment définie. Chaque programme ne peut pas avoir plus de 5 tâches assignées et les tâches ne peuvent pas être programmées à plus de 15 minutes d\'intervalle.', ], 'tasks' => [ - 'current' => 'Taches actuellement prévues ', + 'task_created' => 'Création réussie d\'une nouvelle tâche sur le Panel.', + 'task_updated' => 'La tâche a été mise à jour avec succès. Toutes les actions de tâche actuellement en file d\'attente seront annulées et relancées à l\'heure définie suivante.', + 'header' => 'Tâches planifiées', 'header_sub' => 'Automatisez votre serveur.', + 'current' => 'Tâches planifiées actuelles', + 'actions' => [ + 'command' => 'Envoyer la commande', + 'power' => 'Envoyer l\'option d\'alimentation', + ], + 'new_task' => 'Ajouter une nouvelle tâche', + 'toggle' => 'Basculer le statut', 'new' => [ - 'custom' => 'Valeurs custom', - 'day_of_month' => 'Jour du Mois', - 'day_of_week' => 'Jour de la Semaine', + 'header' => 'Nouvelle tâche', + 'header_sub' => 'Créez une nouvelle tâche planifiée pour ce serveur.', + 'task_name' => 'Nom de la tâche', + 'day_of_week' => 'Jour de la semaine', + 'custom' => 'Valeur personnalisée', + 'day_of_month' => 'Jour du mois', + 'hour' => 'Heure', + 'minute' => 'Minute', + 'sun' => 'Dimanche', + 'mon' => 'Lundi', 'tues' => 'Mardi', + 'wed' => 'Mercredi', + 'thurs' => 'Jeudi', + 'fri' => 'Vendredi', + 'sat' => 'Samedi', + 'submit' => 'Créer une tâche', + 'type' => 'Type de tâche', + 'chain_then' => 'Then, After', + 'chain_do' => 'Faire', + 'chain_arguments' => 'avec les arguments', + 'payload' => 'Charge utile de tâche', + 'payload_help' => 'Par exemple, si vous avez sélectionné Envoyer la commande Entrez la commande ici. Si vous avez sélectionné Envoyer l\'option d\'alimentation , placez l\'action d\'alimentation ici (par exemple restart ).', + ], + 'edit' => [ + 'header' => 'Gérer la tâche', + 'submit' => 'Mise à jour', ], ], 'users' => [ + 'header' => 'Gérer les utilisateurs', + 'header_sub' => 'Contrôlez qui peut accéder à votre serveur.', + 'configure' => 'Configurer les permissions', + 'list' => 'Comptes avec accès', + 'add' => 'Ajouter un nouveau sous-utilisateurr', + 'update' => 'Mettre à jour le sous-utilisateur', + 'user_assigned' => 'Ajout avec succès d\'un nouveau sous-utilisateur à ce serveur.', + 'user_updated' => 'Permissions mises à jour avec succès', + 'edit' => [ + 'header' => 'Modifier le sous-utilisateur', + 'header_sub' => 'Modifier l\'accès des utilisateurs au serveur.', + ], 'new' => [ - 'create_subuser' => [ - 'title' => 'Créer Sous-utilisateur', + 'header' => 'Ajouter un nouvel utilisateur', + 'header_sub' => 'Ajouter un nouvel utilisateur avec des autorisations sur ce serveur.', + 'email' => 'Adresse Email', + 'email_help' => 'Entrez l\'adresse e-mail de l\'utilisateur que vous souhaitez inviter à gérer ce serveur.', + 'power_header' => 'Gestion de l\'alimentation', + 'file_header' => 'Gestion de fichiers', + 'subuser_header' => 'Gestion des sous-utilisateurs', + 'server_header' => 'Gestion de serveur', + 'task_header' => 'Gestion planification', + 'database_header' => 'Gestion de base de données', + 'power_start' => [ + 'title' => 'Démarrer le serveur', + 'description' => 'Permet à l\'utilisateur de démarrer le serveur.', ], - 'edit_files' => [ - 'title' => 'Editer Fichiers -', + 'power_stop' => [ + 'title' => 'Arrêter le serveur', + 'description' => 'Permet à l\'utilisateur d\'arrêter le serveur.', ], - 'email' => 'Adresse Mail', - 'list_tasks' => [ - 'description' => 'Autoriser un utilisateur à lister toutes les taches (activées et désactivées) sur le serveur.', - 'title' => 'Liste des tâches', - ], - 'move_files' => [ - 'title' => 'Renommer et Déplacer Fichiers ', + 'power_restart' => [ + 'title' => 'Redémarrer le serveur', + 'description' => 'Permet à l\'utilisateur de redémarrer le serveur.', ], 'power_kill' => [ - 'description' => "Autoriser l'utilisateur à fermer le processus du serveur.", + 'title' => 'Kill le serveur', + 'description' => 'Permet à l\'utilisateur de tuer le processus serveur.', ], - 'power_start' => [ - 'description' => "Autoriser l'utilisateur à lancer le serveur.", + 'send_command' => [ + 'title' => 'Envoyer une commande de console', + 'description' => 'Permet d\'envoyer une commande depuis la console. Si l\'utilisateur n\'a pas d\'autorisations d\'arrêt ou de redémarrage, il ne peut pas envoyer la commande d\'arrêt de l\'application.', ], - 'start' => [ - 'title' => 'Lancer Serveur', + 'access_sftp' => [ + 'title' => 'SFTP autorisé', + 'description' => 'Permet à l\'utilisateur de se connecter au serveur SFTP fourni par le démon.', ], - 'stop' => [ - 'description' => "Autoriser l'utilisateur à arrêter le serveur.", - 'title' => 'Arrêter Serveur', + 'list_files' => [ + 'title' => 'Liste des fichiers', + 'description' => 'Permet à l\'utilisateur de répertorier tous les fichiers et dossiers du serveur, mais pas de voir le contenu du fichier.', + ], + 'edit_files' => [ + 'title' => 'Modifier les fichiers', + 'description' => 'Permet à l\'utilisateur d\'ouvrir un fichier pour le visionner uniquement. SFTP n\'est pas affecté par cette permission.', + ], + 'save_files' => [ + 'title' => 'Enregistrer des fichiers', + 'description' => 'Permet à l\'utilisateur d\'enregistrer le contenu du fichier modifié. SFTP n\'est pas affecté par cette permission.', + ], + 'move_files' => [ + 'title' => 'Renommer et déplacer des fichiers', + 'description' => 'Permet à l\'utilisateur de déplacer et renommer des fichiers et des dossiers sur le système de fichiers.', + ], + 'copy_files' => [ + 'title' => 'Copier des fichiers', + 'description' => 'Permet à l\'utilisateur de copier des fichiers et des dossiers sur le système de fichiers.', + ], + 'compress_files' => [ + 'title' => 'Compresser des fichiers', + 'description' => 'Permet à l\'utilisateur de créer des archives de fichiers et de dossiers sur le système.', + ], + 'decompress_files' => [ + 'title' => 'Décompresser des fichiers', + 'description' => 'Permet à l\'utilisateur de décompresser les archives .zip et .tar (.gz).', + ], + 'create_files' => [ + 'title' => 'Créer des fichiers', + 'description' => 'Permet à l\'utilisateur de créer un nouveau fichier dans le panel.', ], - 'subuser_header' => 'Gestionnaire de sous-utilisateur ', 'upload_files' => [ - 'title' => 'Envoyer Fichiers', + 'title' => 'Envoyé des fichiers', + 'description' => 'Permet à l\'utilisateur de télécharger des fichiers via le gestionnaire de fichiers.', ], - 'view_allocations' => [ - 'title' => 'Voir les emplacements ', + 'delete_files' => [ + 'title' => 'Supprimer les fichiers', + 'description' => 'Permet à l\'utilisateur de supprimer des fichiers du système.', ], - 'view_databases' => [ - 'title' => 'Voir le détail de la bases de données ', + 'download_files' => [ + 'title' => 'Télécharger des fichiers', + 'description' => 'Permet à l\'utilisateur de télécharger des fichiers. Si un utilisateur obtient cette autorisation, il peut télécharger et afficher le contenu du fichier même si cette autorisation n\'est pas affectée au panel.', ], - 'view_schedule' => [ - 'title' => 'Voir les planning', - ], - 'view_sftp' => [ - 'description' => "Autoriser l'utilisateur à voir les informations du SFTP mais pas le mot de passe.", - 'title' => 'Voir les détails du SFTP', - ], - 'view_sftp_password' => [ - 'description' => "Autoriser l'utilisateur à voir le mot de passe SFTP pour le serveur. ", - 'title' => 'Voir le mot de passe SFTP ', - ], - 'view_startup' => [ - 'description' => "Autoriser l'utilisateur à voir la commande de lancement du serveur et les variables associé. ", - 'title' => 'Voir la commande de lancement', + 'list_subusers' => [ + 'title' => 'Liste des sous-utilisateurs', + 'description' => 'Permet à l\'utilisateur d\'afficher une liste de tous les sous-utilisateurs affectés au serveur.', ], 'view_subuser' => [ - 'description' => 'Autoriser l’utilisateur à voir les permissions assignées aux sous-utilisateurs.', - 'title' => 'Voir sous-utilisateur ', + 'title' => 'Voir le sous-utilisateur', + 'description' => 'Permet à l\'utilisateur d\'afficher les autorisations affectées aux sous-utilisateurs', ], - 'view_task' => [ - 'description' => "Autoriser l’utilisateur à voir les détails d'une tache spécifique.", - 'title' => 'Voir tâche', + 'edit_subuser' => [ + 'title' => 'Modifier le sous-utilisateur', + 'description' => 'Permet à un utilisateur de modifier les autorisations affectées à d\'autres sous-utilisateurs.', + ], + 'create_subuser' => [ + 'title' => 'Créer un sous-utilisateur', + 'description' => 'Permet à l\'utilisateur de créer des sous-utilisateurs supplémentaires sur le serveur.', + ], + 'delete_subuser' => [ + 'title' => 'Supprimer un sous-utilisateur', + 'description' => 'Permet à un utilisateur de supprimer d\'autres sous-utilisateurs sur le serveur.', + ], + 'view_allocations' => [ + 'title' => 'Afficher les allocations', + 'description' => 'Permet à l\'utilisateur d\'afficher toutes les adresses IP et tous les ports affectés à un serveur.', + ], + 'edit_allocation' => [ + 'title' => 'Modifier la connexion par défaut', + 'description' => 'Permet à l\'utilisateur de modifier l\'allocation de connexion par défaut à utiliser pour un serveur.', + ], + 'view_startup' => [ + 'title' => 'Afficher la commande de démarrage', + 'description' => 'Permet à l\'utilisateur d\'afficher la commande de démarrage et les variables associées pour un serveur.', + ], + 'edit_startup' => [ + 'title' => 'Modifier la commande de démarrage', + 'description' => 'Permet à un utilisateur de modifier les variables de démarrage pour un serveur.', + ], + 'list_schedules' => [ + 'title' => 'Liste des planification', + 'description' => 'Permet à un utilisateur de répertorier toutes les planification (activés et désactivés) pour ce serveur.', + ], + 'view_schedule' => [ + 'title' => 'Voir la planification', + 'description' => 'Permet à un utilisateur d\'afficher les détails d\'une planification spécifique, y compris toutes les tâches affectées.', + ], + 'toggle_schedule' => [ + 'title' => 'Basculer planification', + 'description' => 'Permet à un utilisateur de basculer une planification pour qu\'elle soit active ou inactive.', + ], + 'queue_schedule' => [ + 'title' => 'File d\'attente planification', + 'description' => 'Permet à un utilisateur de mettre en file d\'attente un planning pour exécuter ses tâches sur le cycle de processus suivant.', + ], + 'edit_schedule' => [ + 'title' => 'Modifier la planification', + 'description' => 'Permet à un utilisateur de modifier un planning incluant toutes les tâches du planning. Cela permettra à l\'utilisateur de supprimer des tâches individuelles, mais pas de supprimer la planification elle-même.', + ], + 'create_schedule' => [ + 'title' => 'Créer une planification', + 'description' => 'Permet à un utilisateur de créer une nouvel planification.', + ], + 'delete_schedule' => [ + 'title' => 'Supprimer planification', + 'description' => 'Permet à un utilisateur de supprimer une planification du serveur.', + ], + 'view_databases' => [ + 'title' => 'Afficher les détails de bases de données', + 'description' => 'Permet à l\'utilisateur d\'afficher toutes les bases de données associées à ce serveur, y compris les noms d\'utilisateur et les mots de passe des bases de données.', + ], + 'reset_db_password' => [ + 'title' => 'Réinitialiser mot de passe bases de données', + 'description' => 'Permet à un utilisateur de réinitialiser les mots de passe pour les bases de données.', + ], + 'delete_database' => [ + 'title' => 'Supprimer les bases de données', + 'description' => 'Permet à un utilisateur de supprimer des bases de données pour ce serveur à partir du Panel.', + ], + 'create_database' => [ + 'title' => 'Créer une base de données', + 'description' => 'Permet à un utilisateur de créer des bases de données supplémentaires pour ce serveur.', ], ], - 'update' => 'Sous-utilisateur mis à jour', - 'user_assigned' => 'Un sous-utilisateur à été assigné avec succès à ce serveur. ', - 'user_updated' => 'Permission mises à jour avec success. ', + ], + 'allocations' => [ + 'mass_actions' => 'Actions de masse', + 'delete' => 'Supprimer les allocations', + ], + 'files' => [ + 'exceptions' => [ + 'invalid_mime' => 'Ce type de fichier ne peut pas être édité via l\'éditeur intégré du Panel.', + 'max_size' => 'Ce fichier est trop volumineux pour être édité via l\'éditeur intégré du Panel.', + ], + 'header' => 'Gestionnaire de fichiers', + 'header_sub' => 'Gérez tous vos fichiers directement depuis le web.', + 'loading' => 'Chargement de la structure initiale du fichier, cela peut prendre quelques secondes.', + 'path' => 'Lorsque vous configurez des chemins de fichier dans les plugins ou les paramètres de votre serveur, utilisez :path comme votre chemin de base. La taille maximale des téléchargements de fichiers Web sur ce noeud est de :size.', + 'seconds_ago' => 'Il y a quelques instants', + 'file_name' => 'Nom de fichier', + 'size' => 'Taille', + 'last_modified' => 'Dernière modification', + 'add_new' => 'Ajouter un nouveau fichier', + 'add_folder' => 'Ajouter un nouveau dossier', + 'mass_actions' => 'Actions de masse', + 'delete' => 'Supprimer les fichiers', + 'edit' => [ + 'header' => 'Modifier le fichier', + 'header_sub' => 'Apportez des modifications à un fichier sur le Web.', + 'save' => 'Enregistrer le fichier', + 'return' => 'Retourner au gestionnaire de fichiers', + ], + 'add' => [ + 'header' => 'Nouveau fichier', + 'header_sub' => 'Créez un nouveau fichier sur votre serveur.', + 'name' => 'Nom de fichier', + 'create' => 'Créer un fichier', + ], + ], + 'config' => [ + 'name' => [ + 'header' => 'Nom du serveur', + 'header_sub' => 'Changez le nom de ce serveur.', + 'details' => 'Le nom du serveur est uniquement une référence à ce serveur sur le panel et n\'affecte pas les configurations spécifiques au serveur susceptibles d\'être affichées par les utilisateurs dans les jeux.', + ], + 'startup' => [ + 'header' => 'Configuration de démarrage', + 'header_sub' => 'Contrôlez les arguments de démarrage du serveur.', + 'command' => 'Commande de démarrage', + 'edit_params' => 'Modifier les paramètres', + 'update' => 'Mettre à jour les paramètres de démarrage', + 'startup_regex' => 'Règles d\'entrée', + 'edited' => 'Les variables de démarrage ont été modifiées avec succès. Ils entreront en vigueur la prochaine fois que ce serveur sera démarré.', + ], + 'sftp' => [ + 'header' => 'Configuration SFTP', + 'header_sub' => 'Détails du compte pour les connexions SFTP.', + 'details' => 'Détails SFTP', + 'conn_addr' => 'Adresse de connexion', + 'warning' => 'Le mot de passe SFTP est le mot de passe de votre compte. Assurez-vous que votre client est configuré pour utiliser SFTP et non FTP ou FTPS pour les connexions, il y a une différence entre les protocoles.', + ], + 'database' => [ + 'header' => 'Bases de données', + 'header_sub' => 'Toutes les bases de données disponibles pour ce serveur.', + 'your_dbs' => 'Bases de données configurées', + 'host' => 'Hôte MySQL', + 'reset_password' => 'Réinitialiser le mot de passe', + 'no_dbs' => 'Aucune base de données répertoriée pour ce serveur.', + 'add_db' => 'Ajouter une nouvelle base de données', + ], + 'allocation' => [ + 'header' => 'Allocations de serveur', + 'header_sub' => 'Contrôlez les adresses IP et les ports disponibles sur ce serveur.', + 'available' => 'Allocations disponibles', + 'help' => 'Aide à l\'allocation', + 'help_text' => 'La liste à gauche comprend toutes les adresses IP et ports disponibles que votre serveur utilisera pour les connexions entrantes.', + ], ], ]; diff --git a/resources/lang/fr/strings.php b/resources/lang/fr/strings.php index c1cc7017..82301e6d 100644 --- a/resources/lang/fr/strings.php +++ b/resources/lang/fr/strings.php @@ -1,76 +1,88 @@ '2FA', - '2fa_token' => 'Jeton d’authentification ', - 'account' => 'Compte', - 'action' => 'Action', - 'admin' => 'Administrateur ', - 'admin_control' => 'Administration', - 'admin_cp' => "Panneau d'administration", - 'again' => 'Encore', - 'alias' => 'Alias', - 'api_access' => 'Accès API', - 'cancel' => 'Annuler', - 'captcha_invalid' => 'Le captcha fourni est invalide.', - 'child_tasks' => 'Taches enfant', - 'close' => 'Fermer', - 'configuration' => 'Configuration', - 'confirm_password' => 'Confirmer le mot de passe', - 'connection' => 'Connexion', - 'cpu' => 'Processeur', - 'create' => 'Créer', - 'created' => 'Crée ', - 'created_at' => 'Crée le ', - 'current_password' => 'Mot de passe actuel ', - 'danger' => 'Attention ', - 'data' => 'Donnée', - 'database' => 'Base de données ', - 'databases' => 'Base de données ', - 'days' => [ - 'fri' => 'Vendredi', - 'mon' => 'Lundi', - ], - 'disabled' => 'Désactivé', - 'email' => 'E-mail', - 'enabled' => 'Activé', - 'expires' => 'Expire ', - 'home' => 'Accueil', - 'id' => 'ID', - 'ip' => ':attribute doit être une IP valide.', - 'language' => 'Langage', - 'last_activity' => 'Dernière activité', - 'last_run' => 'Dernier lancement', - 'location' => 'Emplacement ', - 'login' => 'Se connecter', - 'logout' => 'Déconnexion', - 'memo' => 'Mémo', - 'memory' => 'Mémoire', - 'minutes' => 'Minutes ', - 'name' => 'Nom', - 'never' => 'jamais', - 'new' => 'Nouveau', - 'no' => 'Non', - 'node' => 'Node', - 'not_run_yet' => 'Pas encore lancé', + 'email' => 'Email', + 'user_identifier' => 'Nom d\'utilisateur ou email', 'password' => 'Mot de passe', - 'players' => 'Joueurs', - 'port' => 'Port', - 'primary' => 'Primaire', - 'public_key' => 'Clef publique ', - 'required' => 'Le champ :attribute est requis.', - 'revoke' => 'Révoquer', - 'root_administrator' => 'Administrateur root', - 'save' => 'Sauvegarder', - 'security' => 'Sécurité', + 'confirm_password' => 'Confirmez le mot de passe', + 'login' => 'Login', + 'home' => 'Accueil', 'servers' => 'Serveurs', - 'sign_out' => "S'enregistrer ", - 'status' => 'Status ', - 'submit' => 'Soumettre', + 'id' => 'ID', + 'name' => 'Nom', + 'node' => 'Node', + 'connection' => 'Connexion', + 'memory' => 'Mémoire', + 'cpu' => 'CPU', + 'status' => 'Status', + 'search' => 'Chercher', 'suspended' => 'Suspendu', - 'under_maintenance' => 'Sous maintenantce', - 'username' => "Nom d'utilisateur", - 'user_identifier' => "Nom d'utilisateur ou email", - 'whoops' => 'Oups ', + 'account' => 'Compte', + 'security' => 'Sécurité', + 'ip' => 'Adresse IP', + 'last_activity' => 'Dernière Activité', + 'revoke' => 'Révoquer', + '2fa_token' => 'Jeton d\'authentification', + 'submit' => 'Soumettre', + 'close' => 'Fermer', + 'settings' => 'Paramètres', + 'configuration' => 'Configuration', + 'sftp' => 'SFTP', + 'databases' => 'Bases de données', + 'memo' => 'Note', + 'created' => 'Créé', + 'expires' => 'Expires', + 'public_key' => 'Jeton', + 'api_access' => 'Accès Api', + 'never' => 'jamais', + 'sign_out' => 'Déconnexion', + 'admin_control' => 'Administration', + 'required' => 'Requis', + 'port' => 'Port', + 'username' => 'Nom d\'utilisateur', + 'database' => 'Base de donnée', + 'new' => 'Nouveau', + 'danger' => 'Danger', + 'create' => 'Créer', + 'select_all' => 'Tout sélectionner', + 'select_none' => 'Ne rien sélectionner', + 'alias' => 'Alias', + 'primary' => 'Principale', + 'make_primary' => 'Définir comme principale', + 'none' => 'Aucun', + 'cancel' => 'Annuler', + 'created_at' => 'Créé à', + 'action' => 'Action', + 'data' => 'Data', + 'queued' => 'En attente', + 'last_run' => 'Dernière exécution', + 'next_run' => 'Prochaine exécution', + 'not_run_yet' => 'Pas encore exécuté', 'yes' => 'Oui', + 'no' => 'Non', + 'delete' => 'Effacer', + '2fa' => '2FA', + 'logout' => 'Déconnexion', + 'admin_cp' => 'Panel d\'Administration', + 'optional' => 'Optionnel', + 'read_only' => 'Lecture seulement', + 'relation' => 'Relation', + 'owner' => 'Propriétaire', + 'admin' => 'Admin', + 'subuser' => 'Sous-utilisateur', + 'captcha_invalid' => 'Le captcha fourni est invalide.', + 'tasks' => 'Tasks', + 'seconds' => 'Secondes', + 'minutes' => 'Minutes', + 'under_maintenance' => 'Sous maintenance', + 'days' => [ + 'sun' => 'Dimanche', + 'mon' => 'Lundi', + 'tues' => 'Mardi', + 'wed' => 'Mercredi', + 'thurs' => 'Jeudi', + 'fri' => 'Vendrediy', + 'sat' => 'Samedi', + ], + 'last_used' => 'Dernière utilisation', ]; diff --git a/resources/lang/fr/validation.php b/resources/lang/fr/validation.php index 5c7a0c92..521176d0 100644 --- a/resources/lang/fr/validation.php +++ b/resources/lang/fr/validation.php @@ -1,66 +1,105 @@ ':attribute doit-être accepté.', 'active_url' => ":attribute n'est pas une URL valide.", 'after' => 'Le :attribute dois être une date après le :date ', - 'after_or_equal' => 'Le :attribut dois être une date supérieure ou égale au :date. ', + 'after_or_equal' => 'Le :attribut dois être une date supérieure ou égale au :date.', 'alpha' => ':attribute doit uniquement contenir des lettres.', 'alpha_dash' => ':attribute doit uniquement contenir des lettres, chiffres et tirets.', 'alpha_num' => ':attribute doit uniquement contenir des lettres et chiffres.', - 'array' => 'Le :attribute dois être une tableau.', + 'array' => 'Le :attribute dois être un tableau.', 'before' => ':attribute doit être une date avant :date.', 'before_or_equal' => 'Le :attribute dois être une date avant ou égale à :date.', 'between' => [ - 'array' => 'Le :attribute dois avoir entre :min et :max éléments. ', + 'array' => 'Le :attribute dois avoir entre :min et :max éléments.', 'file' => 'Le :attribute dois compris entre :min et :max kilobytes.', 'numeric' => ':attribute doit être entre :min et :max.', 'string' => 'Le :attribute dois être compris entre :min et :max caractères.', ], - 'boolean' => ':attribute doit être "true" (vrais) ou "false" (faux).', - 'confirmed' => ':attribute confirmation ne correspond pas.', - 'custom' => [ - 'attribute-name' => [ - 'rule-name' => 'message personnalisé ', - ], - ], + 'boolean' => 'Le champ :attribute doit être true or false.', + 'confirmed' => 'La confirmation :attribute ne correspond pas.', 'date' => "Le :attribute n'est pas une date valide.", 'date_format' => ':attribute ne correspond pas au format :format.', - 'different' => 'Le :attribute et :other doivent êtres différents. ', + 'different' => 'Le :attribute et :other doivent êtres différents.', 'digits' => 'Le :attribute dois comprendre :digits chiffres.', - 'digits_between' => 'Le :attribute dois être compris entre :min et :max chiffres.', + 'digits_between' => 'Le :attribute dois être compris entre :min et :max chiffres.', 'dimensions' => "Le :attribute as une taille d'image invalide.", - 'email' => 'E-mail', + 'distinct' => 'Le champ :attribute a une valeur dupliquée.', + 'email' => 'Le :attribute doit être une adresse E-Mail valide.', + 'exists' => 'Le :attribute est invalide.', 'file' => 'Le :attribute dois être un fichier.', - 'filled' => 'Le champ :attribute est requis', + 'filled' => 'Le champ :attribute est obligatoire.', 'image' => 'Le :attribute dois être une image.', - 'in_array' => 'Le champ :attribute ne dois pas exister dans :other.', - 'ip' => ':attribute doit être une IP valide.', + 'in' => 'Le :attribute selectionné est invalide.', + 'in_array' => 'Le champ :attribute n\'existe pas dans :other.', + 'integer' => 'Le :attribute doit être un entier.', + 'ip' => ':attribute doit être une adresse IP valide.', + 'json' => 'Le :attribute doit être une chaîne de caractère JSON valide.', 'max' => [ - 'array' => 'Le :attribute ne peuvent avoir plus de :max éléments ', - 'file' => ':attribute ne doit pas dépasser :max kilooctets.', 'numeric' => ':attribute ne doit pas être supérieur à :max.', + 'file' => ':attribute ne doit pas dépasser :max kilooctets.', 'string' => 'Le :attribute ne peut pas être supérieur à :max caractères.', + 'array' => 'Le :attribute ne peuvent avoir plus de :max éléments', ], 'mimes' => 'Le :attribute dois être un fichier de type :values.', 'mimetypes' => 'Le :attribute dois être un fichier de type :values.', 'min' => [ - 'array' => 'Le :attribute dois avoir au minimum :min éléments ', - 'file' => ":attribute doit être d'au moins :min kilooctets.", 'numeric' => ":attribute doit être d'au moins :min.", + 'file' => ":attribute doit être d'au moins :min kilooctets.", 'string' => 'Le :attribute dois avoir moins de :min caractères.', + 'array' => 'Le :attribute dois avoir au minimum :min éléments.', ], + 'not_in' => 'Le :attribute selectionné est invalide.', 'numeric' => 'Le :attribute dois être un nombre.', - 'present' => 'Le :attribute champ dois être remplis.', - 'regex' => 'Le format de ce :attribute est invalide.', + 'present' => 'Le champ :attribute dois être remplis.', + 'regex' => 'Le format de :attribute est invalide.', 'required' => 'Le champ :attribute est requis.', 'required_if' => 'Le champ :attribute est requis quand :other est à :value.', + 'required_unless' => 'Le champ :attribute est requis a part si :other est dans :values.', + 'required_with' => 'Le champ :attribute est requis quand :values est présent.', + 'required_with_all' => 'Le champ :attribute est requis quand :values est présent.', + 'required_without' => 'Le champ :attribute est requis quand :values n\'est pas présent.', 'required_without_all' => "Lorsque :values n'est/ne sont pas présent(s), le champ :attribute est requis.", 'same' => ':attribute et :other doivent correspondres.', 'size' => [ - 'array' => 'Le :attribute dois contenir :size éléments.', - 'file' => ':attribute doit faire :size kilooctets.', 'numeric' => ':attribute doit être de :size.', + 'file' => ':attribute doit faire :size kilooctets.', + 'string' => ':attribute dois contenir :size caractères.', + 'array' => 'Le :attribute dois contenir :size éléments.', ], + 'string' => 'Le :attribute doit être une chaîne de caractère.', 'timezone' => ':attribute doit être une zone valide.', + 'unique' => ':attribute a déjà été pris.', + 'uploaded' => 'Le :attribute n\'a pas réussi à télécharger.', + 'url' => 'Le formant d\':attribute est invalide.', + + /* + |-------------------------------------------------------------------------- + | Custom Validation Attributes + |-------------------------------------------------------------------------- + | + | The following language lines are used to swap attribute place-holders + | with something more reader friendly such as E-Mail Address instead + | of "email". This simply helps us make messages a little cleaner. + | + */ + + 'attributes' => [], + + // Internal validation logic for Pterodactyl + 'internal' => [ + 'variable_value' => ':env variable', + ], ]; diff --git a/resources/themes/pterodactyl/admin/eggs/variables.blade.php b/resources/themes/pterodactyl/admin/eggs/variables.blade.php index f49886ee..4a3a9341 100644 --- a/resources/themes/pterodactyl/admin/eggs/variables.blade.php +++ b/resources/themes/pterodactyl/admin/eggs/variables.blade.php @@ -81,7 +81,7 @@
-

These rules are defined using standard Laravel Framework validation rules.

+

These rules are defined using standard Laravel Framework validation rules.