From c4d1d71deffb4be797cf092477a07a6ae58133a1 Mon Sep 17 00:00:00 2001 From: MathisG-Recia Date: Tue, 13 Apr 2021 12:39:45 +0200 Subject: [PATCH 1/7] translation_fr_cachet --- .env.example | 44 --- .travis.yml | 2 +- .../Schedule/NewScheduleNotification.php | 11 +- app/Presenters/SchedulePresenter.php | 19 +- composer.json | 2 +- composer.lock | 2 +- config/bugsnag.php | 308 ++++++++++++++++++ resources/lang/fr/cachet.php | 14 +- resources/lang/fr/dashboard.php | 35 ++ resources/lang/fr/forms.php | 85 ++++- resources/lang/fr/notifications.php | 125 +++++++ .../partials/subscription.blade.php | 5 +- .../notifications/schedule/new.blade.php | 9 +- 13 files changed, 584 insertions(+), 77 deletions(-) delete mode 100644 .env.example create mode 100644 config/bugsnag.php create mode 100644 resources/lang/fr/notifications.php diff --git a/.env.example b/.env.example deleted file mode 100644 index 0ed277fe8322..000000000000 --- a/.env.example +++ /dev/null @@ -1,44 +0,0 @@ -APP_ENV=production -APP_DEBUG=false -APP_URL=http://localhost -APP_TIMEZONE=UTC -APP_KEY= -DEBUGBAR_ENABLED=false - -DB_DRIVER=mysql -DB_HOST=localhost -DB_UNIX_SOCKET=null -DB_DATABASE=cachet -DB_USERNAME=homestead -DB_PASSWORD=secret -DB_PORT=null -DB_PREFIX=null - -CACHE_DRIVER=file -SESSION_DRIVER=file -QUEUE_DRIVER=sync - -CACHET_BEACON=true -CACHET_EMOJI=false -CACHET_AUTO_TWITTER=true - -MAIL_DRIVER=log -MAIL_HOST=null -MAIL_PORT=null -MAIL_USERNAME=null -MAIL_PASSWORD=null -MAIL_ADDRESS=null -MAIL_NAME=null -MAIL_ENCRYPTION=tls - -REDIS_HOST=null -REDIS_DATABASE=null -REDIS_PORT=null - -GITHUB_TOKEN=null - -NEXMO_KEY=null -NEXMO_SECRET=null -NEXMO_SMS_FROM=Cachet - -TRUSTED_PROXIES= diff --git a/.travis.yml b/.travis.yml index 8d0b77fd6958..fd5bdcc4fd84 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ branches: - l10n_2.4 before_install: - - cp .env.example .env + - cp .env .env install: - travis_retry composer install --no-interaction --no-suggest diff --git a/app/Notifications/Schedule/NewScheduleNotification.php b/app/Notifications/Schedule/NewScheduleNotification.php index d89d72cdd23c..ed2c7680d251 100644 --- a/app/Notifications/Schedule/NewScheduleNotification.php +++ b/app/Notifications/Schedule/NewScheduleNotification.php @@ -72,15 +72,15 @@ public function toMail($notifiable) { $manageUrl = URL::signedRoute(cachet_route_generator('subscribe.manage'), ['code' => $notifiable->verify_code]); - $content = trans('notifications.schedule.new.mail.content', [ - 'name' => $this->schedule->name, - 'date' => $this->schedule->scheduled_at_formatted, - ]); + return (new MailMessage()) ->subject(trans('notifications.schedule.new.mail.subject')) ->markdown('notifications.schedule.new', [ - 'content' => $content, + 'name' => $this->schedule->name, + 'dateNumber' => $this->schedule->scheduled_at_number, + 'date' => $this->schedule->scheduled_at_formatted, + 'message' => $this->schedule->raw_message, 'unsubscribeText' => trans('cachet.subscriber.unsubscribe'), 'unsubscribeUrl' => cachet_route('subscribe.unsubscribe', $notifiable->verify_code), 'manageSubscriptionText' => trans('cachet.subscriber.manage_subscription'), @@ -117,6 +117,7 @@ public function toSlack($notifiable) $content = trans('notifications.schedule.new.slack.content', [ 'name' => $this->schedule->name, 'date' => $this->schedule->scheduled_at_formatted, + ]); return (new SlackMessage()) diff --git a/app/Presenters/SchedulePresenter.php b/app/Presenters/SchedulePresenter.php index ddf0c04ffd1e..4adbc4214284 100644 --- a/app/Presenters/SchedulePresenter.php +++ b/app/Presenters/SchedulePresenter.php @@ -56,6 +56,15 @@ public function formatted_message() { return Markdown::convertToHtml($this->wrappedObject->message); } + /** + * Return the raw text of the message, even without Markdown. + * + * @return string + */ + public function raw_message() + { + return strip_tags($this->wrappedObject->message); + } /** * Present diff for humans date time. @@ -106,7 +115,15 @@ public function scheduled_at() { return $this->dates->make($this->wrappedObject->scheduled_at)->toDateTimeString(); } - + /** + * Present formatted date time. + * + * @return string + */ + public function scheduled_at_number() + { + return $this->dates->make($this->wrappedObject->scheduled_at)->format('[d/m/Y]'); + } /** * Present diff for humans date time. * diff --git a/composer.json b/composer.json index 483d2f430a77..baa552851619 100644 --- a/composer.json +++ b/composer.json @@ -66,7 +66,7 @@ "require-dev": { "ext-sqlite3": "*", "alt-three/testbench": "v5.0.0", - "barryvdh/laravel-debugbar": "^3.2", + "barryvdh/laravel-debugbar": "^3.4", "filp/whoops": "^2.3", "fzaninotto/faker": "^1.8", "graham-campbell/analyzer": "^2.1", diff --git a/composer.lock b/composer.lock index 24973a5d5b6e..ec221bbfc1a3 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": "cde42d4b12cfac9555ab3a9dffb18c9e", + "content-hash": "adfc34e3426c77741c85ca56e1bd1be8", "packages": [ { "name": "alt-three/bus", diff --git a/config/bugsnag.php b/config/bugsnag.php new file mode 100644 index 000000000000..d500b515dc3e --- /dev/null +++ b/config/bugsnag.php @@ -0,0 +1,308 @@ + env('BUGSNAG_API_KEY', ''), + + /* + |-------------------------------------------------------------------------- + | App Type + |-------------------------------------------------------------------------- + | + | Set the type of application executing the current code. + | + */ + + 'app_type' => env('BUGSNAG_APP_TYPE'), + + /* + |-------------------------------------------------------------------------- + | App Version + |-------------------------------------------------------------------------- + | + | Set the version of application executing the current code. + | + */ + + 'app_version' => env('BUGSNAG_APP_VERSION'), + + /* + |-------------------------------------------------------------------------- + | Batch Sending + |-------------------------------------------------------------------------- + | + | Set to true to send the errors through to Bugsnag when the PHP process + | shuts down, in order to prevent your app waiting on HTTP requests. + | + | Setting this to false will send an HTTP request straight away for each + | error. + | + */ + + 'batch_sending' => env('BUGSNAG_BATCH_SENDING'), + + /* + |-------------------------------------------------------------------------- + | Endpoint + |-------------------------------------------------------------------------- + | + | Set what server the Bugsnag notifier should send errors to. By default + | this is set to 'https://notify.bugsnag.com', but for Bugsnag Enterprise + | this should be the URL to your Bugsnag instance. + | + */ + + 'endpoint' => env('BUGSNAG_ENDPOINT'), + + /* + |-------------------------------------------------------------------------- + | Filters + |-------------------------------------------------------------------------- + | + | Use this if you want to ensure you don't send sensitive data such as + | passwords, and credit card numbers to our servers. Any keys which + | contain these strings will be filtered. + | + */ + + 'filters' => empty(env('BUGSNAG_FILTERS')) ? null : explode(',', str_replace(' ', '', env('BUGSNAG_FILTERS'))), + + /* + |-------------------------------------------------------------------------- + | Hostname + |-------------------------------------------------------------------------- + | + | You can set the hostname of your server to something specific for you to + | identify it by if needed. + | + */ + + 'hostname' => env('BUGSNAG_HOSTNAME'), + + /* + |-------------------------------------------------------------------------- + | Proxy + |-------------------------------------------------------------------------- + | + | This is where you can set the proxy settings you'd like us to use when + | communicating with Bugsnag when reporting errors. + | + */ + + 'proxy' => array_filter([ + 'http' => env('HTTP_PROXY'), + 'https' => env('HTTPS_PROXY'), + 'no' => empty(env('NO_PROXY')) ? null : explode(',', str_replace(' ', '', env('NO_PROXY'))), + ]), + + /* + |-------------------------------------------------------------------------- + | Project Root + |-------------------------------------------------------------------------- + | + | Bugsnag marks stacktrace lines as in-project if they come from files + | inside your “project root”. You can set this here. + | + | If this is not set, we will automatically try to detect it. + | + */ + + 'project_root' => env('BUGSNAG_PROJECT_ROOT'), + + /* + |-------------------------------------------------------------------------- + | Project Root Regex + |-------------------------------------------------------------------------- + | + | Bugsnag marks stacktrace lines as in-project if they come from files + | inside your “project root”. You can set this here. + | + | This option allows you to set it as a regular expression and will take + | precedence over "project_root" if both are defined. + | + */ + + 'project_root_regex' => env('BUGSNAG_PROJECT_ROOT_REGEX'), + + /* + |-------------------------------------------------------------------------- + | Strip Path + |-------------------------------------------------------------------------- + | + | The strip path is a path to be trimmed from the start of any filepaths in + | your stacktraces. + | + | If this is not set, we will automatically try to detect it. + | + */ + + 'strip_path' => env('BUGSNAG_STRIP_PATH'), + + /* + |-------------------------------------------------------------------------- + | Strip Path Regex + |-------------------------------------------------------------------------- + | + | The strip path is a path to be trimmed from the start of any filepaths in + | your stacktraces. + | + | This option allows you to set it as a regular expression and will take + | precedence over "strip_path" if both are defined. + | + */ + + 'strip_path_regex' => env('BUGSNAG_STRIP_PATH_REGEX'), + + /* + |-------------------------------------------------------------------------- + | Query + |-------------------------------------------------------------------------- + | + | Enable this if you'd like us to automatically record all queries executed + | as breadcrumbs. + | + */ + + 'query' => env('BUGSNAG_QUERY', true), + + /* + |-------------------------------------------------------------------------- + | Bindings + |-------------------------------------------------------------------------- + | + | Enable this if you'd like us to include the query bindings in our query + | breadcrumbs. + | + */ + + 'bindings' => env('BUGSNAG_QUERY_BINDINGS', false), + + /* + |-------------------------------------------------------------------------- + | Release Stage + |-------------------------------------------------------------------------- + | + | Set the release stage to use when sending notifications to Bugsnag. + | + | Leaving this unset will default to using the application environment. + | + */ + + 'release_stage' => env('BUGSNAG_RELEASE_STAGE'), + + /* + |-------------------------------------------------------------------------- + | Notify Release Stages + |-------------------------------------------------------------------------- + | + | Set which release stages should send notifications to Bugsnag. + | + */ + + 'notify_release_stages' => empty(env('BUGSNAG_NOTIFY_RELEASE_STAGES')) ? null : explode(',', str_replace(' ', '', env('BUGSNAG_NOTIFY_RELEASE_STAGES'))), + + /* + |-------------------------------------------------------------------------- + | Send Code + |-------------------------------------------------------------------------- + | + | Bugsnag automatically sends a small snippet of the code that crashed to + | help you diagnose even faster from within your dashboard. If you don’t + | want to send this snippet, then set this to false. + | + */ + + 'send_code' => env('BUGSNAG_SEND_CODE', true), + + /* + |-------------------------------------------------------------------------- + | Callbacks + |-------------------------------------------------------------------------- + | + | Enable this if you'd like us to enable our default set of notification + | callbacks. These add things like the cookie information and session + | details to the error to be sent to Bugsnag. + | + | If you'd like to add your own callbacks, you can call the + | Bugsnag::registerCallback method from the boot method of your app + | service provider. + | + */ + + 'callbacks' => env('BUGSNAG_CALLBACKS', true), + + /* + |-------------------------------------------------------------------------- + | User + |-------------------------------------------------------------------------- + | + | Enable this if you'd like us to set the current user logged in via + | Laravel's authentication system. + | + | If you'd like to add your own user resolver, you can do this by using + | callbacks via Bugsnag::registerCallback. + | + */ + + 'user' => env('BUGSNAG_USER', true), + + /* + |-------------------------------------------------------------------------- + | Logger Notify Level + |-------------------------------------------------------------------------- + | + | This sets the level at which a logged message will trigger a notification + | to Bugsnag. By default this level will be 'notice'. + | + | Must be one of the Psr\Log\LogLevel levels from the Psr specification. + | + */ + + 'logger_notify_level' => env('BUGSNAG_LOGGER_LEVEL'), + + /* + |-------------------------------------------------------------------------- + | Auto Capture Sessions + |-------------------------------------------------------------------------- + | + | Enable this to start tracking sessions and deliver them to Bugsnag. + | + */ + + 'auto_capture_sessions' => env('BUGSNAG_CAPTURE_SESSIONS', false), + + /* + |-------------------------------------------------------------------------- + | Sessions Endpoint + |-------------------------------------------------------------------------- + | + | Sets a url to send tracked sessions to. + | + */ + + 'session_endpoint' => env('BUGSNAG_SESSION_ENDPOINT'), + + /* + |-------------------------------------------------------------------------- + | Builds Endpoint + |-------------------------------------------------------------------------- + | + | Sets a url to send build reports to. + | + */ + + 'build_endpoint' => env('BUGSNAG_BUILD_ENDPOINT'), + +]; diff --git a/resources/lang/fr/cachet.php b/resources/lang/fr/cachet.php index ee6aa08fcac8..dc6ce06c2c91 100644 --- a/resources/lang/fr/cachet.php +++ b/resources/lang/fr/cachet.php @@ -65,11 +65,17 @@ // Subscriber 'subscriber' => [ - 'subscribe' => 'Abonnez-vous pour obtenir les dernières mises à jour.', - 'button' => 'S\'abonner', + 'subscribe' => 'Abonnez-vous pour obtenir les dernières mises à jour.', + 'unsubscribe' => 'Se désabonner', + 'button' => 'S\'abonner', + 'manage_subscription' => 'Gérer l\'abonnement', 'manage' => [ - 'no_subscriptions' => 'Vous êtes actuellement abonné à toutes les mises à jour.', - 'my_subscriptions' => 'Vous êtes actuellement abonné aux mises à jour suivantes.', + 'notifications' => 'Notifications', + 'notifications_for' => 'Gérer les notifications pour', + 'no_subscriptions' => 'Vous êtes actuellement abonné à toutes les mises à jour.', + 'update_subscription' => 'Mettre à jour les abonnements', + 'my_subscriptions' => 'Vous êtes actuellement abonné aux mises à jour suivantes.', + 'manage_at_link' => 'Gérer vos abonnements à :link', ], 'email' => [ 'subscribe' => 'S\'abonner aux notifications par email.', diff --git a/resources/lang/fr/dashboard.php b/resources/lang/fr/dashboard.php index b9f2a379a826..85bd874f3107 100644 --- a/resources/lang/fr/dashboard.php +++ b/resources/lang/fr/dashboard.php @@ -12,6 +12,7 @@ return [ 'dashboard' => 'Tableau de bord', + 'writeable_settings' => 'Le répertoire des paramètres Cachet n’est pas inscriptible. Assurez-vous que /bootstrap/cachet est inscriptible par le serveur web.', // Incidents 'incidents' => [ @@ -20,6 +21,25 @@ 'logged' => '{0} Aucun incident, bon travail.|Vous avez un incident signalé.|Vous avez :count incidents signalés.', 'incident-create-template' => 'Créer un modèle', 'incident-templates' => 'Modèles d\'incident', + 'updates' => [ + 'title' => 'Mises à jour des incidents pour :incident', + 'count' => '{0}Aucune mise à jour|[1]Une mise à jour|[2]Deux mises à jour|[3,*]Plusieurs mises à jour', + 'add' => [ + 'title' => 'Ajouter un incident', + 'success' => 'Incident ajouté.', + 'failure' => 'Une erreur s\'est produite en ajoutant l\'incident, veuillez réessayer.', + ], + 'edit' => [ + 'title' => 'Modifier un incident', + 'success' => 'Incident mis à jour.', + 'failure' => 'Une erreur s\'est produite en modifiant l\'incident, veuillez réessayer.', + ], + 'delete' => [ + 'success' => 'L\'incident a été supprimé et ne sera pas affiché sur votre page de statut.', + 'failure' => 'L\'incident n\'a pas pu être supprimé. Veuillez réessayer.', + ], + ], + 'reported_by' => 'Rapporté :timestamp by :user', 'add' => [ 'title' => 'Ajouter un incident', 'success' => 'Incident ajouté.', @@ -142,10 +162,12 @@ 'subscribers' => [ 'subscribers' => 'Abonnés', 'description' => 'Les abonnés recevront des notifications par e-mail lorsque des incidents sont créés ou des composants sont mis à jour.', + 'description_disabled' => 'Pour utiliser cette fonctionnalité, vous devez autoriser les personnes à s’inscrire aux notifications.', 'verified' => 'Vérifié', 'not_verified' => 'Non vérifié', 'subscriber' => ':email, abonné à :date', 'no_subscriptions' => 'Souscrire à toutes les mises à jour', + 'global' => 'Globalement abonnés', 'add' => [ 'title' => 'Ajouter un abonné', 'success' => 'L\'abonné a été ajouté !', @@ -197,6 +219,9 @@ 'analytics' => [ 'analytics' => 'Analytics', ], + 'log' => [ + 'log' => 'Log', + ], 'localization' => [ 'localization' => 'Localisation', ], @@ -205,6 +230,15 @@ 'header' => 'Entête HTML personnalisé', 'footer' => 'Pied de page HTML personnalisé', ], + 'mail' => [ + 'mail' => 'Mail', + 'test' => 'Test', + 'email' => [ + 'subject' => 'Notification test de Cachet', + 'body' => 'Ceci est une notification test.', + ], + 'signature' => 'Signature électronique HTML personnalisée', + ], 'security' => [ 'security' => 'Sécurité', 'two-factor' => 'Utilisateurs sans authentification à deux facteurs', @@ -226,6 +260,7 @@ 'backers-title' => 'Partenaires financiers et sponsors', 'backers' => 'Si vous souhaitez aider des développements futurs jetez un œil à la campagne Cachet Patreon.', 'thank-you' => 'Merci à chacun des :count contributeurs.', + 'unable-to-load'=> 'Impossible de charger les détails sur les contributeurs et les sponsors.' ], ], diff --git a/resources/lang/fr/forms.php b/resources/lang/fr/forms.php index a590a54d3b19..6f71117366dd 100644 --- a/resources/lang/fr/forms.php +++ b/resources/lang/fr/forms.php @@ -15,26 +15,33 @@ 'setup' => [ 'email' => 'Adresse e-mail', 'username' => 'Nom d\'utilisateur', - 'password' => 'Mot de passe ', + 'password' => 'Mot de passe', 'site_name' => 'Nom du site', 'site_domain' => 'Nom de domaine du site', 'site_timezone' => 'Choisissez votre fuseau horaire', 'site_locale' => 'Sélectionner votre langue', 'enable_google2fa' => 'Activer l\'authentification à deux facteurs de Google', 'cache_driver' => 'Gestionnaire de cache', + 'queue_driver' => 'pilote de file d’attente', 'session_driver' => 'Gestionnaire de session', + 'mail_driver' => 'Driver de mail', + 'mail_host' => 'Hôte de mail', + 'mail_address' => 'Mail de l\'adresse', + 'mail_username' => 'Nom d\'utilisateur mail' , + 'mail_password' => 'Mot de passe du mail', ], // Login form fields 'login' => [ 'login' => 'Nom d\'utilisateur ou e-mail', 'email' => 'Email', - 'password' => 'Mot de passe ', + 'password' => 'Mot de passe', '2fauth' => 'Code d\'authentification', 'invalid' => 'Nom d\'utilisateur ou mot de passe incorrect', 'invalid-token' => 'Jeton invalide', 'cookies' => 'Vous devez activer les cookies pour vous connecter.', 'rate-limit' => 'Limite de tentatives atteinte.', + 'remember_me' => 'Remember me', ], // Incidents form fields @@ -44,10 +51,14 @@ 'component' => 'Composant', 'message' => 'Message', 'message-help' => 'Vous pouvez également utiliser le format Markdown.', + 'occurred_at' => 'Quand cet incident s’est-il produit ?', 'scheduled_at' => 'Quand planifier la maintenance ?', 'incident_time' => 'Quand s\'est produit cet incident ?', 'notify_subscribers' => 'Notifier les abonnés ?', 'visibility' => 'Visibilité de l\'incident', + 'stick_status' => 'Coller l\'incident', + 'stickied' => 'Coller l\'incident', + 'not_stickied' => 'Ne pas coller l\'incident', 'public' => 'Visible par le public', 'logged_in_only' => 'Uniquement visible par les utilisateurs enregistrés', 'templates' => [ @@ -57,6 +68,20 @@ ], ], + 'schedules' => [ + 'name' => 'Nom', + 'status' => 'Status', + 'message' => 'Message', + 'message-help' => 'Vous pouvez également utiliser Markdown.', + 'scheduled_at' => 'Quand cette maintenance est-elle programmée ?', + 'completed_at' => 'Quand cette maintenance s’est-elle terminée ?', + 'templates' => [ + 'name' => 'Nom', + 'template' => 'Template', + 'twig' => 'Vous pouvez utiliser Twig pour créer des modèles par langues pour les modèles d\'incidents.', + ], + ], + // Components form fields 'components' => [ 'name' => 'Nom', @@ -74,6 +99,24 @@ 'visible' => 'Toujours déplier', 'collapsed' => 'Réduire le groupe par défaut', 'collapsed_incident' => 'Réduire le groupe par défaut, mais déplier s\'il y a des incidents', + 'visibility' => 'Visibilité', + 'visibility_public' => 'Visible de tous', + 'visibility_authenticated' => 'Visible uniquement pour les utilisateurs connectés', + ], + ], + + // Action form fields + 'actions' => [ + 'name' => 'Nom', + 'description' => 'Description', + 'start_at' => 'Horaire heure de début', + 'timezone' => 'Fuseau horaire', + 'schedule_frequency' => 'Fréquence de planification (en secondes)', + 'completion_latency' => 'Latence d’achèvement (en secondes)', + 'group' => 'Groupe', + 'active' => 'Active?', + 'groups' => [ + 'name' => 'Nom du groupe', ], ], @@ -91,6 +134,10 @@ 'places' => 'Nombre de chiffres après la virgule', 'default_view' => 'Vue par défaut', 'threshold' => 'Quel intervalle en minutes entre chaque point de métrique ?', + 'visibility' => 'Visibilité', + 'visibility_authenticated' => 'Visible aux utilisateurs authentifiés', + 'visibility_public' => 'Visible pour tous', + 'visibility_hidden' => 'Toujours caché', 'points' => [ 'value' => 'Valeur', @@ -101,15 +148,22 @@ 'settings' => [ /// Application setup 'app-setup' => [ - 'site-name' => 'Nom du site', - 'site-url' => 'URL du site', - 'display-graphs' => 'Afficher les graphiques sur la page de statut ?', - 'about-this-page' => 'À propos de cette page', - 'days-of-incidents' => 'Combien de jours d\'incidents à montrer ?', - 'banner' => 'Image d\'en-tête', - 'banner-help' => 'Il est recommandé de téléchargez un fichier ne dépassant pas 930px de large .', - 'subscribers' => 'Permettre aux personnes de s\'inscrire aux notifications par e-mail ?', - 'automatic_localization' => 'Traduire automatiquement votre page de statut dans la langue du visiteur ?', + 'site-name' => 'Nom du site', + 'site-url' => 'URL du site', + 'display-graphs' => 'Afficher les graphiques sur la page de statut ?', + 'about-this-page' => 'À propos de cette page', + 'days-of-incidents' => 'Combien de jours d\'incidents à montrer ?', + 'time_before_refresh' => 'Taux de rafraîchissement de la page d’état (en secondes)', + 'major_outage_rate' => 'Seuil d’arrêt majeur (en %)', + 'banner' => 'Image d\'en-tête', + 'banner-help' => 'Il est recommandé de téléchargez un fichier ne dépassant pas 930px de large .', + 'subscribers' => 'Permettre aux personnes de s\'inscrire aux notifications par e-mail ?', + 'suppress_notifications_in_maintenance' => 'Supprimer les notifications lorsque l’incident se produit pendant la période de maintenance ?', + 'skip_subscriber_verification' => 'Sauter la vérification des utilisateurs? (Soyez averti, vous pourriez être spammé)', + 'automatic_localization' => 'Traduire automatiquement votre page de statut dans la langue du visiteur ?', + 'enable_external_dependencies' => 'Activer les dépendances tierces (Google Fonts, Trackers, etc...)', + 'show_timezone' => 'Afficher le fuseau horaire de la page d’état', + 'only_disrupted_days' => 'Ne montrez que les jours contenant des incidents dans le calendrier?', ], 'analytics' => [ 'analytics_google' => 'Code de Google Analytics', @@ -126,6 +180,8 @@ 'security' => [ 'allowed-domains' => 'Domaines autorisés', 'allowed-domains-help' => 'Séparés par des virgules. Le domaine défini ci-dessus est automatiquement autorisé par défaut.', + 'always-authenticate' => 'Toujours s’authentifier', + 'always-authenticate-help' => 'Besoin d’ouvrir une session pour afficher n’importe quelle page Cachet', ], 'stylesheet' => [ 'custom-css' => 'Feuille de style personnalisée', @@ -151,7 +207,7 @@ 'user' => [ 'username' => 'Nom d\'utilisateur', 'email' => 'Email', - 'password' => 'Mot de passe ', + 'password' => 'Mot de passe', 'api-token' => 'Jeton de l\'API', 'api-token-help' => 'Régénérer votre jeton API empêchera les applications existantes d\'accéder à Cachet.', 'gravatar' => 'Change your profile picture at Gravatar.', @@ -169,6 +225,9 @@ ], ], + 'general' => [ + 'timezone' => 'Sélectionnez le fuseau horaire', + ], // Buttons 'add' => 'Ajouter', 'save' => 'Enregistrer', @@ -181,7 +240,7 @@ 'remove' => 'Enlever', 'invite' => 'Inviter', 'signup' => 'Inscription', - + 'manage_updates' => 'Gérer les mises à jour', // Other 'optional' => '* Optionnel', ]; diff --git a/resources/lang/fr/notifications.php b/resources/lang/fr/notifications.php new file mode 100644 index 000000000000..2656ad2335f7 --- /dev/null +++ b/resources/lang/fr/notifications.php @@ -0,0 +1,125 @@ + [ + 'salutation' => 'Cordialement,', + 'alternative_link' => "Si vous avez de la difficulté à cliquer sur le bouton \":actionText\" copiez et collez l’URL ci-dessous dans votre navigateur web : :actionURL", + 'copyright_notice' => 'Tout droits réservés.', + ], + 'component' => [ + 'status_update' => [ + 'mail' => [ + 'subject' => 'État des composants mis à jour', + 'greeting' => 'L\'état d’un composant a été mis à jour !', + 'content' => ':name statut changé de :old_status à :new_status.', + 'action' => 'Affichage', + 'thanks' => 'Cordialement,', + ], + 'slack' => [ + 'title' => 'État des composants mis à jour', + 'content' => ':name statut changé de :old_status à :new_status.', + ], + 'sms' => [ + 'content' => ':name statut changé de :old_status à :new_status.', + ], + ], + ], + 'incident' => [ + 'new' => [ + 'mail' => [ + 'subject' => 'Nouvel incident signalé', + 'greeting' => 'Un nouvel incident a été signalé à l\'adresse :app_name.', + 'content' => 'Incident :name a été signalé', + 'action' => 'Affichage', + 'thanks' => 'Cordialement,', + ], + 'slack' => [ + 'title' => 'Incident :name a été signalé', + 'content' => 'Un nouvel incident a été signalé à l\'adresse :app_name.', + ], + 'sms' => [ + 'content' => 'Un nouvel incident a été signalé à l\'adresse :app_name.', + ], + ], + 'update' => [ + 'mail' => [ + 'subject' => 'Incident mis à jour', + 'content' => ':name a été mis à jour', + 'title' => ':name a été mis à jour pour :new_status', + 'action' => 'Affichage', + 'thanks' => 'Cordialement,', + ], + 'slack' => [ + 'title' => ':name a été mis à jour', + 'content' => ':name a été mis à jour pour :new_status', + ], + 'sms' => [ + 'content' => 'Incident :name a été mis à jour', + ], + ], + ], + 'schedule' => [ + 'new' => [ + 'mail' => [ + 'subject' => 'Nouveau calendrier créé', + 'content' => 'Planifié
:name est prévue pour :date,

:message

', + 'title' => 'Une nouvelle maintenance planifiée a été créée. ', + 'action' => 'Affichage', + 'thanks' => 'Cordialement,', + ], + 'slack' => [ + 'title' => 'Nouveau calendrier créé', + 'content' => ':name est prévue pour :date', + ], + 'sms' => [ + 'content' => ':name est prévue pour :date', + ], + ], + ], + 'subscriber' => [ + 'verify' => [ + 'mail' => [ + 'content' => 'Cliquez pour vérifier votre abonnement à la page d\'état :app_name.', + 'title' => 'Vérifiez votre abonnement à la page d’état :app_name.', + 'action' => 'Vérifer', + ], + ], + 'manage' => [ + 'mail' => [ + 'subject' => 'Gérer vos abonnements', + 'content' => 'Cliquez pour gérer votre abonnement à la page d\'état :app_name.', + 'title' => 'Cliquez pour gérer votre abonnement à la page d\'état :app_name.', + 'action' => 'Gérer l\'abonnement', + ], + ], + ], + 'system' => [ + 'test' => [ + 'mail' => [ + 'subject' => 'Ping from Cachet!', + 'content' => 'This is a test notification from Cachet!', + 'title' => '🔔', + ], + ], + ], + 'user' => [ + 'invite' => [ + 'mail' => [ + 'subject' => 'Votre invitation est à l\'intérieur...', + 'content' => 'Vous avez été invité à rejoindre la page de statut :app_name.', + 'title' => 'Vous êtes invité à rejoindre :app_name status page.', + 'action' => 'Accepter', + ], + ], + ], +]; + diff --git a/resources/views/notifications/partials/subscription.blade.php b/resources/views/notifications/partials/subscription.blade.php index 89ec227d1efb..863e1a4e279a 100644 --- a/resources/views/notifications/partials/subscription.blade.php +++ b/resources/views/notifications/partials/subscription.blade.php @@ -1,5 +1,8 @@ {!! Config::get('setting.mail_signature') !!} +@component('mail::button', ['url' => $manageSubscriptionUrl]) + {{ $manageSubscriptionText }} +@endcomponent @component('mail::subcopy') -[{{ $unsubscribeText }}]({{ $unsubscribeUrl }}) — [{{ $manageSubscriptionText }}]({{ $manageSubscriptionUrl }}) + [{{ $unsubscribeText }}]({{ $unsubscribeUrl }}) @endcomponent diff --git a/resources/views/notifications/schedule/new.blade.php b/resources/views/notifications/schedule/new.blade.php index 912110bd125c..9858b2803476 100644 --- a/resources/views/notifications/schedule/new.blade.php +++ b/resources/views/notifications/schedule/new.blade.php @@ -1,11 +1,8 @@ @component('mail::message') -# {{ trans('notifications.schedule.new.mail.title') }} +# {{$dateNumber}}{{$name}} -{{ $content }} - -{{ trans('notifications.common.salutation') }}
-{{ Config::get('setting.app_name') }} +{{$message}} +{{$date}} @include('notifications.partials.subscription') - @endcomponent From 10fa6bf30c7b849c374a9cfb0bf02c7b8897a3d3 Mon Sep 17 00:00:00 2001 From: MathisG-Recia Date: Tue, 13 Apr 2021 14:33:39 +0200 Subject: [PATCH 2/7] Revert "translation_fr_cachet" This reverts commit c4d1d71deffb4be797cf092477a07a6ae58133a1. --- .env.example | 44 +++ .travis.yml | 2 +- .../Schedule/NewScheduleNotification.php | 11 +- app/Presenters/SchedulePresenter.php | 19 +- composer.json | 2 +- composer.lock | 2 +- config/bugsnag.php | 308 ------------------ resources/lang/fr/cachet.php | 14 +- resources/lang/fr/dashboard.php | 35 -- resources/lang/fr/forms.php | 85 +---- resources/lang/fr/notifications.php | 125 ------- .../partials/subscription.blade.php | 5 +- .../notifications/schedule/new.blade.php | 9 +- 13 files changed, 77 insertions(+), 584 deletions(-) create mode 100644 .env.example delete mode 100644 config/bugsnag.php delete mode 100644 resources/lang/fr/notifications.php diff --git a/.env.example b/.env.example new file mode 100644 index 000000000000..0ed277fe8322 --- /dev/null +++ b/.env.example @@ -0,0 +1,44 @@ +APP_ENV=production +APP_DEBUG=false +APP_URL=http://localhost +APP_TIMEZONE=UTC +APP_KEY= +DEBUGBAR_ENABLED=false + +DB_DRIVER=mysql +DB_HOST=localhost +DB_UNIX_SOCKET=null +DB_DATABASE=cachet +DB_USERNAME=homestead +DB_PASSWORD=secret +DB_PORT=null +DB_PREFIX=null + +CACHE_DRIVER=file +SESSION_DRIVER=file +QUEUE_DRIVER=sync + +CACHET_BEACON=true +CACHET_EMOJI=false +CACHET_AUTO_TWITTER=true + +MAIL_DRIVER=log +MAIL_HOST=null +MAIL_PORT=null +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ADDRESS=null +MAIL_NAME=null +MAIL_ENCRYPTION=tls + +REDIS_HOST=null +REDIS_DATABASE=null +REDIS_PORT=null + +GITHUB_TOKEN=null + +NEXMO_KEY=null +NEXMO_SECRET=null +NEXMO_SMS_FROM=Cachet + +TRUSTED_PROXIES= diff --git a/.travis.yml b/.travis.yml index fd5bdcc4fd84..8d0b77fd6958 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ branches: - l10n_2.4 before_install: - - cp .env .env + - cp .env.example .env install: - travis_retry composer install --no-interaction --no-suggest diff --git a/app/Notifications/Schedule/NewScheduleNotification.php b/app/Notifications/Schedule/NewScheduleNotification.php index ed2c7680d251..d89d72cdd23c 100644 --- a/app/Notifications/Schedule/NewScheduleNotification.php +++ b/app/Notifications/Schedule/NewScheduleNotification.php @@ -72,15 +72,15 @@ public function toMail($notifiable) { $manageUrl = URL::signedRoute(cachet_route_generator('subscribe.manage'), ['code' => $notifiable->verify_code]); - + $content = trans('notifications.schedule.new.mail.content', [ + 'name' => $this->schedule->name, + 'date' => $this->schedule->scheduled_at_formatted, + ]); return (new MailMessage()) ->subject(trans('notifications.schedule.new.mail.subject')) ->markdown('notifications.schedule.new', [ - 'name' => $this->schedule->name, - 'dateNumber' => $this->schedule->scheduled_at_number, - 'date' => $this->schedule->scheduled_at_formatted, - 'message' => $this->schedule->raw_message, + 'content' => $content, 'unsubscribeText' => trans('cachet.subscriber.unsubscribe'), 'unsubscribeUrl' => cachet_route('subscribe.unsubscribe', $notifiable->verify_code), 'manageSubscriptionText' => trans('cachet.subscriber.manage_subscription'), @@ -117,7 +117,6 @@ public function toSlack($notifiable) $content = trans('notifications.schedule.new.slack.content', [ 'name' => $this->schedule->name, 'date' => $this->schedule->scheduled_at_formatted, - ]); return (new SlackMessage()) diff --git a/app/Presenters/SchedulePresenter.php b/app/Presenters/SchedulePresenter.php index 4adbc4214284..ddf0c04ffd1e 100644 --- a/app/Presenters/SchedulePresenter.php +++ b/app/Presenters/SchedulePresenter.php @@ -56,15 +56,6 @@ public function formatted_message() { return Markdown::convertToHtml($this->wrappedObject->message); } - /** - * Return the raw text of the message, even without Markdown. - * - * @return string - */ - public function raw_message() - { - return strip_tags($this->wrappedObject->message); - } /** * Present diff for humans date time. @@ -115,15 +106,7 @@ public function scheduled_at() { return $this->dates->make($this->wrappedObject->scheduled_at)->toDateTimeString(); } - /** - * Present formatted date time. - * - * @return string - */ - public function scheduled_at_number() - { - return $this->dates->make($this->wrappedObject->scheduled_at)->format('[d/m/Y]'); - } + /** * Present diff for humans date time. * diff --git a/composer.json b/composer.json index baa552851619..483d2f430a77 100644 --- a/composer.json +++ b/composer.json @@ -66,7 +66,7 @@ "require-dev": { "ext-sqlite3": "*", "alt-three/testbench": "v5.0.0", - "barryvdh/laravel-debugbar": "^3.4", + "barryvdh/laravel-debugbar": "^3.2", "filp/whoops": "^2.3", "fzaninotto/faker": "^1.8", "graham-campbell/analyzer": "^2.1", diff --git a/composer.lock b/composer.lock index ec221bbfc1a3..24973a5d5b6e 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": "adfc34e3426c77741c85ca56e1bd1be8", + "content-hash": "cde42d4b12cfac9555ab3a9dffb18c9e", "packages": [ { "name": "alt-three/bus", diff --git a/config/bugsnag.php b/config/bugsnag.php deleted file mode 100644 index d500b515dc3e..000000000000 --- a/config/bugsnag.php +++ /dev/null @@ -1,308 +0,0 @@ - env('BUGSNAG_API_KEY', ''), - - /* - |-------------------------------------------------------------------------- - | App Type - |-------------------------------------------------------------------------- - | - | Set the type of application executing the current code. - | - */ - - 'app_type' => env('BUGSNAG_APP_TYPE'), - - /* - |-------------------------------------------------------------------------- - | App Version - |-------------------------------------------------------------------------- - | - | Set the version of application executing the current code. - | - */ - - 'app_version' => env('BUGSNAG_APP_VERSION'), - - /* - |-------------------------------------------------------------------------- - | Batch Sending - |-------------------------------------------------------------------------- - | - | Set to true to send the errors through to Bugsnag when the PHP process - | shuts down, in order to prevent your app waiting on HTTP requests. - | - | Setting this to false will send an HTTP request straight away for each - | error. - | - */ - - 'batch_sending' => env('BUGSNAG_BATCH_SENDING'), - - /* - |-------------------------------------------------------------------------- - | Endpoint - |-------------------------------------------------------------------------- - | - | Set what server the Bugsnag notifier should send errors to. By default - | this is set to 'https://notify.bugsnag.com', but for Bugsnag Enterprise - | this should be the URL to your Bugsnag instance. - | - */ - - 'endpoint' => env('BUGSNAG_ENDPOINT'), - - /* - |-------------------------------------------------------------------------- - | Filters - |-------------------------------------------------------------------------- - | - | Use this if you want to ensure you don't send sensitive data such as - | passwords, and credit card numbers to our servers. Any keys which - | contain these strings will be filtered. - | - */ - - 'filters' => empty(env('BUGSNAG_FILTERS')) ? null : explode(',', str_replace(' ', '', env('BUGSNAG_FILTERS'))), - - /* - |-------------------------------------------------------------------------- - | Hostname - |-------------------------------------------------------------------------- - | - | You can set the hostname of your server to something specific for you to - | identify it by if needed. - | - */ - - 'hostname' => env('BUGSNAG_HOSTNAME'), - - /* - |-------------------------------------------------------------------------- - | Proxy - |-------------------------------------------------------------------------- - | - | This is where you can set the proxy settings you'd like us to use when - | communicating with Bugsnag when reporting errors. - | - */ - - 'proxy' => array_filter([ - 'http' => env('HTTP_PROXY'), - 'https' => env('HTTPS_PROXY'), - 'no' => empty(env('NO_PROXY')) ? null : explode(',', str_replace(' ', '', env('NO_PROXY'))), - ]), - - /* - |-------------------------------------------------------------------------- - | Project Root - |-------------------------------------------------------------------------- - | - | Bugsnag marks stacktrace lines as in-project if they come from files - | inside your “project root”. You can set this here. - | - | If this is not set, we will automatically try to detect it. - | - */ - - 'project_root' => env('BUGSNAG_PROJECT_ROOT'), - - /* - |-------------------------------------------------------------------------- - | Project Root Regex - |-------------------------------------------------------------------------- - | - | Bugsnag marks stacktrace lines as in-project if they come from files - | inside your “project root”. You can set this here. - | - | This option allows you to set it as a regular expression and will take - | precedence over "project_root" if both are defined. - | - */ - - 'project_root_regex' => env('BUGSNAG_PROJECT_ROOT_REGEX'), - - /* - |-------------------------------------------------------------------------- - | Strip Path - |-------------------------------------------------------------------------- - | - | The strip path is a path to be trimmed from the start of any filepaths in - | your stacktraces. - | - | If this is not set, we will automatically try to detect it. - | - */ - - 'strip_path' => env('BUGSNAG_STRIP_PATH'), - - /* - |-------------------------------------------------------------------------- - | Strip Path Regex - |-------------------------------------------------------------------------- - | - | The strip path is a path to be trimmed from the start of any filepaths in - | your stacktraces. - | - | This option allows you to set it as a regular expression and will take - | precedence over "strip_path" if both are defined. - | - */ - - 'strip_path_regex' => env('BUGSNAG_STRIP_PATH_REGEX'), - - /* - |-------------------------------------------------------------------------- - | Query - |-------------------------------------------------------------------------- - | - | Enable this if you'd like us to automatically record all queries executed - | as breadcrumbs. - | - */ - - 'query' => env('BUGSNAG_QUERY', true), - - /* - |-------------------------------------------------------------------------- - | Bindings - |-------------------------------------------------------------------------- - | - | Enable this if you'd like us to include the query bindings in our query - | breadcrumbs. - | - */ - - 'bindings' => env('BUGSNAG_QUERY_BINDINGS', false), - - /* - |-------------------------------------------------------------------------- - | Release Stage - |-------------------------------------------------------------------------- - | - | Set the release stage to use when sending notifications to Bugsnag. - | - | Leaving this unset will default to using the application environment. - | - */ - - 'release_stage' => env('BUGSNAG_RELEASE_STAGE'), - - /* - |-------------------------------------------------------------------------- - | Notify Release Stages - |-------------------------------------------------------------------------- - | - | Set which release stages should send notifications to Bugsnag. - | - */ - - 'notify_release_stages' => empty(env('BUGSNAG_NOTIFY_RELEASE_STAGES')) ? null : explode(',', str_replace(' ', '', env('BUGSNAG_NOTIFY_RELEASE_STAGES'))), - - /* - |-------------------------------------------------------------------------- - | Send Code - |-------------------------------------------------------------------------- - | - | Bugsnag automatically sends a small snippet of the code that crashed to - | help you diagnose even faster from within your dashboard. If you don’t - | want to send this snippet, then set this to false. - | - */ - - 'send_code' => env('BUGSNAG_SEND_CODE', true), - - /* - |-------------------------------------------------------------------------- - | Callbacks - |-------------------------------------------------------------------------- - | - | Enable this if you'd like us to enable our default set of notification - | callbacks. These add things like the cookie information and session - | details to the error to be sent to Bugsnag. - | - | If you'd like to add your own callbacks, you can call the - | Bugsnag::registerCallback method from the boot method of your app - | service provider. - | - */ - - 'callbacks' => env('BUGSNAG_CALLBACKS', true), - - /* - |-------------------------------------------------------------------------- - | User - |-------------------------------------------------------------------------- - | - | Enable this if you'd like us to set the current user logged in via - | Laravel's authentication system. - | - | If you'd like to add your own user resolver, you can do this by using - | callbacks via Bugsnag::registerCallback. - | - */ - - 'user' => env('BUGSNAG_USER', true), - - /* - |-------------------------------------------------------------------------- - | Logger Notify Level - |-------------------------------------------------------------------------- - | - | This sets the level at which a logged message will trigger a notification - | to Bugsnag. By default this level will be 'notice'. - | - | Must be one of the Psr\Log\LogLevel levels from the Psr specification. - | - */ - - 'logger_notify_level' => env('BUGSNAG_LOGGER_LEVEL'), - - /* - |-------------------------------------------------------------------------- - | Auto Capture Sessions - |-------------------------------------------------------------------------- - | - | Enable this to start tracking sessions and deliver them to Bugsnag. - | - */ - - 'auto_capture_sessions' => env('BUGSNAG_CAPTURE_SESSIONS', false), - - /* - |-------------------------------------------------------------------------- - | Sessions Endpoint - |-------------------------------------------------------------------------- - | - | Sets a url to send tracked sessions to. - | - */ - - 'session_endpoint' => env('BUGSNAG_SESSION_ENDPOINT'), - - /* - |-------------------------------------------------------------------------- - | Builds Endpoint - |-------------------------------------------------------------------------- - | - | Sets a url to send build reports to. - | - */ - - 'build_endpoint' => env('BUGSNAG_BUILD_ENDPOINT'), - -]; diff --git a/resources/lang/fr/cachet.php b/resources/lang/fr/cachet.php index dc6ce06c2c91..ee6aa08fcac8 100644 --- a/resources/lang/fr/cachet.php +++ b/resources/lang/fr/cachet.php @@ -65,17 +65,11 @@ // Subscriber 'subscriber' => [ - 'subscribe' => 'Abonnez-vous pour obtenir les dernières mises à jour.', - 'unsubscribe' => 'Se désabonner', - 'button' => 'S\'abonner', - 'manage_subscription' => 'Gérer l\'abonnement', + 'subscribe' => 'Abonnez-vous pour obtenir les dernières mises à jour.', + 'button' => 'S\'abonner', 'manage' => [ - 'notifications' => 'Notifications', - 'notifications_for' => 'Gérer les notifications pour', - 'no_subscriptions' => 'Vous êtes actuellement abonné à toutes les mises à jour.', - 'update_subscription' => 'Mettre à jour les abonnements', - 'my_subscriptions' => 'Vous êtes actuellement abonné aux mises à jour suivantes.', - 'manage_at_link' => 'Gérer vos abonnements à :link', + 'no_subscriptions' => 'Vous êtes actuellement abonné à toutes les mises à jour.', + 'my_subscriptions' => 'Vous êtes actuellement abonné aux mises à jour suivantes.', ], 'email' => [ 'subscribe' => 'S\'abonner aux notifications par email.', diff --git a/resources/lang/fr/dashboard.php b/resources/lang/fr/dashboard.php index 85bd874f3107..b9f2a379a826 100644 --- a/resources/lang/fr/dashboard.php +++ b/resources/lang/fr/dashboard.php @@ -12,7 +12,6 @@ return [ 'dashboard' => 'Tableau de bord', - 'writeable_settings' => 'Le répertoire des paramètres Cachet n’est pas inscriptible. Assurez-vous que /bootstrap/cachet est inscriptible par le serveur web.', // Incidents 'incidents' => [ @@ -21,25 +20,6 @@ 'logged' => '{0} Aucun incident, bon travail.|Vous avez un incident signalé.|Vous avez :count incidents signalés.', 'incident-create-template' => 'Créer un modèle', 'incident-templates' => 'Modèles d\'incident', - 'updates' => [ - 'title' => 'Mises à jour des incidents pour :incident', - 'count' => '{0}Aucune mise à jour|[1]Une mise à jour|[2]Deux mises à jour|[3,*]Plusieurs mises à jour', - 'add' => [ - 'title' => 'Ajouter un incident', - 'success' => 'Incident ajouté.', - 'failure' => 'Une erreur s\'est produite en ajoutant l\'incident, veuillez réessayer.', - ], - 'edit' => [ - 'title' => 'Modifier un incident', - 'success' => 'Incident mis à jour.', - 'failure' => 'Une erreur s\'est produite en modifiant l\'incident, veuillez réessayer.', - ], - 'delete' => [ - 'success' => 'L\'incident a été supprimé et ne sera pas affiché sur votre page de statut.', - 'failure' => 'L\'incident n\'a pas pu être supprimé. Veuillez réessayer.', - ], - ], - 'reported_by' => 'Rapporté :timestamp by :user', 'add' => [ 'title' => 'Ajouter un incident', 'success' => 'Incident ajouté.', @@ -162,12 +142,10 @@ 'subscribers' => [ 'subscribers' => 'Abonnés', 'description' => 'Les abonnés recevront des notifications par e-mail lorsque des incidents sont créés ou des composants sont mis à jour.', - 'description_disabled' => 'Pour utiliser cette fonctionnalité, vous devez autoriser les personnes à s’inscrire aux notifications.', 'verified' => 'Vérifié', 'not_verified' => 'Non vérifié', 'subscriber' => ':email, abonné à :date', 'no_subscriptions' => 'Souscrire à toutes les mises à jour', - 'global' => 'Globalement abonnés', 'add' => [ 'title' => 'Ajouter un abonné', 'success' => 'L\'abonné a été ajouté !', @@ -219,9 +197,6 @@ 'analytics' => [ 'analytics' => 'Analytics', ], - 'log' => [ - 'log' => 'Log', - ], 'localization' => [ 'localization' => 'Localisation', ], @@ -230,15 +205,6 @@ 'header' => 'Entête HTML personnalisé', 'footer' => 'Pied de page HTML personnalisé', ], - 'mail' => [ - 'mail' => 'Mail', - 'test' => 'Test', - 'email' => [ - 'subject' => 'Notification test de Cachet', - 'body' => 'Ceci est une notification test.', - ], - 'signature' => 'Signature électronique HTML personnalisée', - ], 'security' => [ 'security' => 'Sécurité', 'two-factor' => 'Utilisateurs sans authentification à deux facteurs', @@ -260,7 +226,6 @@ 'backers-title' => 'Partenaires financiers et sponsors', 'backers' => 'Si vous souhaitez aider des développements futurs jetez un œil à la campagne Cachet Patreon.', 'thank-you' => 'Merci à chacun des :count contributeurs.', - 'unable-to-load'=> 'Impossible de charger les détails sur les contributeurs et les sponsors.' ], ], diff --git a/resources/lang/fr/forms.php b/resources/lang/fr/forms.php index 6f71117366dd..a590a54d3b19 100644 --- a/resources/lang/fr/forms.php +++ b/resources/lang/fr/forms.php @@ -15,33 +15,26 @@ 'setup' => [ 'email' => 'Adresse e-mail', 'username' => 'Nom d\'utilisateur', - 'password' => 'Mot de passe', + 'password' => 'Mot de passe ', 'site_name' => 'Nom du site', 'site_domain' => 'Nom de domaine du site', 'site_timezone' => 'Choisissez votre fuseau horaire', 'site_locale' => 'Sélectionner votre langue', 'enable_google2fa' => 'Activer l\'authentification à deux facteurs de Google', 'cache_driver' => 'Gestionnaire de cache', - 'queue_driver' => 'pilote de file d’attente', 'session_driver' => 'Gestionnaire de session', - 'mail_driver' => 'Driver de mail', - 'mail_host' => 'Hôte de mail', - 'mail_address' => 'Mail de l\'adresse', - 'mail_username' => 'Nom d\'utilisateur mail' , - 'mail_password' => 'Mot de passe du mail', ], // Login form fields 'login' => [ 'login' => 'Nom d\'utilisateur ou e-mail', 'email' => 'Email', - 'password' => 'Mot de passe', + 'password' => 'Mot de passe ', '2fauth' => 'Code d\'authentification', 'invalid' => 'Nom d\'utilisateur ou mot de passe incorrect', 'invalid-token' => 'Jeton invalide', 'cookies' => 'Vous devez activer les cookies pour vous connecter.', 'rate-limit' => 'Limite de tentatives atteinte.', - 'remember_me' => 'Remember me', ], // Incidents form fields @@ -51,14 +44,10 @@ 'component' => 'Composant', 'message' => 'Message', 'message-help' => 'Vous pouvez également utiliser le format Markdown.', - 'occurred_at' => 'Quand cet incident s’est-il produit ?', 'scheduled_at' => 'Quand planifier la maintenance ?', 'incident_time' => 'Quand s\'est produit cet incident ?', 'notify_subscribers' => 'Notifier les abonnés ?', 'visibility' => 'Visibilité de l\'incident', - 'stick_status' => 'Coller l\'incident', - 'stickied' => 'Coller l\'incident', - 'not_stickied' => 'Ne pas coller l\'incident', 'public' => 'Visible par le public', 'logged_in_only' => 'Uniquement visible par les utilisateurs enregistrés', 'templates' => [ @@ -68,20 +57,6 @@ ], ], - 'schedules' => [ - 'name' => 'Nom', - 'status' => 'Status', - 'message' => 'Message', - 'message-help' => 'Vous pouvez également utiliser Markdown.', - 'scheduled_at' => 'Quand cette maintenance est-elle programmée ?', - 'completed_at' => 'Quand cette maintenance s’est-elle terminée ?', - 'templates' => [ - 'name' => 'Nom', - 'template' => 'Template', - 'twig' => 'Vous pouvez utiliser Twig pour créer des modèles par langues pour les modèles d\'incidents.', - ], - ], - // Components form fields 'components' => [ 'name' => 'Nom', @@ -99,24 +74,6 @@ 'visible' => 'Toujours déplier', 'collapsed' => 'Réduire le groupe par défaut', 'collapsed_incident' => 'Réduire le groupe par défaut, mais déplier s\'il y a des incidents', - 'visibility' => 'Visibilité', - 'visibility_public' => 'Visible de tous', - 'visibility_authenticated' => 'Visible uniquement pour les utilisateurs connectés', - ], - ], - - // Action form fields - 'actions' => [ - 'name' => 'Nom', - 'description' => 'Description', - 'start_at' => 'Horaire heure de début', - 'timezone' => 'Fuseau horaire', - 'schedule_frequency' => 'Fréquence de planification (en secondes)', - 'completion_latency' => 'Latence d’achèvement (en secondes)', - 'group' => 'Groupe', - 'active' => 'Active?', - 'groups' => [ - 'name' => 'Nom du groupe', ], ], @@ -134,10 +91,6 @@ 'places' => 'Nombre de chiffres après la virgule', 'default_view' => 'Vue par défaut', 'threshold' => 'Quel intervalle en minutes entre chaque point de métrique ?', - 'visibility' => 'Visibilité', - 'visibility_authenticated' => 'Visible aux utilisateurs authentifiés', - 'visibility_public' => 'Visible pour tous', - 'visibility_hidden' => 'Toujours caché', 'points' => [ 'value' => 'Valeur', @@ -148,22 +101,15 @@ 'settings' => [ /// Application setup 'app-setup' => [ - 'site-name' => 'Nom du site', - 'site-url' => 'URL du site', - 'display-graphs' => 'Afficher les graphiques sur la page de statut ?', - 'about-this-page' => 'À propos de cette page', - 'days-of-incidents' => 'Combien de jours d\'incidents à montrer ?', - 'time_before_refresh' => 'Taux de rafraîchissement de la page d’état (en secondes)', - 'major_outage_rate' => 'Seuil d’arrêt majeur (en %)', - 'banner' => 'Image d\'en-tête', - 'banner-help' => 'Il est recommandé de téléchargez un fichier ne dépassant pas 930px de large .', - 'subscribers' => 'Permettre aux personnes de s\'inscrire aux notifications par e-mail ?', - 'suppress_notifications_in_maintenance' => 'Supprimer les notifications lorsque l’incident se produit pendant la période de maintenance ?', - 'skip_subscriber_verification' => 'Sauter la vérification des utilisateurs? (Soyez averti, vous pourriez être spammé)', - 'automatic_localization' => 'Traduire automatiquement votre page de statut dans la langue du visiteur ?', - 'enable_external_dependencies' => 'Activer les dépendances tierces (Google Fonts, Trackers, etc...)', - 'show_timezone' => 'Afficher le fuseau horaire de la page d’état', - 'only_disrupted_days' => 'Ne montrez que les jours contenant des incidents dans le calendrier?', + 'site-name' => 'Nom du site', + 'site-url' => 'URL du site', + 'display-graphs' => 'Afficher les graphiques sur la page de statut ?', + 'about-this-page' => 'À propos de cette page', + 'days-of-incidents' => 'Combien de jours d\'incidents à montrer ?', + 'banner' => 'Image d\'en-tête', + 'banner-help' => 'Il est recommandé de téléchargez un fichier ne dépassant pas 930px de large .', + 'subscribers' => 'Permettre aux personnes de s\'inscrire aux notifications par e-mail ?', + 'automatic_localization' => 'Traduire automatiquement votre page de statut dans la langue du visiteur ?', ], 'analytics' => [ 'analytics_google' => 'Code de Google Analytics', @@ -180,8 +126,6 @@ 'security' => [ 'allowed-domains' => 'Domaines autorisés', 'allowed-domains-help' => 'Séparés par des virgules. Le domaine défini ci-dessus est automatiquement autorisé par défaut.', - 'always-authenticate' => 'Toujours s’authentifier', - 'always-authenticate-help' => 'Besoin d’ouvrir une session pour afficher n’importe quelle page Cachet', ], 'stylesheet' => [ 'custom-css' => 'Feuille de style personnalisée', @@ -207,7 +151,7 @@ 'user' => [ 'username' => 'Nom d\'utilisateur', 'email' => 'Email', - 'password' => 'Mot de passe', + 'password' => 'Mot de passe ', 'api-token' => 'Jeton de l\'API', 'api-token-help' => 'Régénérer votre jeton API empêchera les applications existantes d\'accéder à Cachet.', 'gravatar' => 'Change your profile picture at Gravatar.', @@ -225,9 +169,6 @@ ], ], - 'general' => [ - 'timezone' => 'Sélectionnez le fuseau horaire', - ], // Buttons 'add' => 'Ajouter', 'save' => 'Enregistrer', @@ -240,7 +181,7 @@ 'remove' => 'Enlever', 'invite' => 'Inviter', 'signup' => 'Inscription', - 'manage_updates' => 'Gérer les mises à jour', + // Other 'optional' => '* Optionnel', ]; diff --git a/resources/lang/fr/notifications.php b/resources/lang/fr/notifications.php deleted file mode 100644 index 2656ad2335f7..000000000000 --- a/resources/lang/fr/notifications.php +++ /dev/null @@ -1,125 +0,0 @@ - [ - 'salutation' => 'Cordialement,', - 'alternative_link' => "Si vous avez de la difficulté à cliquer sur le bouton \":actionText\" copiez et collez l’URL ci-dessous dans votre navigateur web : :actionURL", - 'copyright_notice' => 'Tout droits réservés.', - ], - 'component' => [ - 'status_update' => [ - 'mail' => [ - 'subject' => 'État des composants mis à jour', - 'greeting' => 'L\'état d’un composant a été mis à jour !', - 'content' => ':name statut changé de :old_status à :new_status.', - 'action' => 'Affichage', - 'thanks' => 'Cordialement,', - ], - 'slack' => [ - 'title' => 'État des composants mis à jour', - 'content' => ':name statut changé de :old_status à :new_status.', - ], - 'sms' => [ - 'content' => ':name statut changé de :old_status à :new_status.', - ], - ], - ], - 'incident' => [ - 'new' => [ - 'mail' => [ - 'subject' => 'Nouvel incident signalé', - 'greeting' => 'Un nouvel incident a été signalé à l\'adresse :app_name.', - 'content' => 'Incident :name a été signalé', - 'action' => 'Affichage', - 'thanks' => 'Cordialement,', - ], - 'slack' => [ - 'title' => 'Incident :name a été signalé', - 'content' => 'Un nouvel incident a été signalé à l\'adresse :app_name.', - ], - 'sms' => [ - 'content' => 'Un nouvel incident a été signalé à l\'adresse :app_name.', - ], - ], - 'update' => [ - 'mail' => [ - 'subject' => 'Incident mis à jour', - 'content' => ':name a été mis à jour', - 'title' => ':name a été mis à jour pour :new_status', - 'action' => 'Affichage', - 'thanks' => 'Cordialement,', - ], - 'slack' => [ - 'title' => ':name a été mis à jour', - 'content' => ':name a été mis à jour pour :new_status', - ], - 'sms' => [ - 'content' => 'Incident :name a été mis à jour', - ], - ], - ], - 'schedule' => [ - 'new' => [ - 'mail' => [ - 'subject' => 'Nouveau calendrier créé', - 'content' => 'Planifié
:name est prévue pour :date,

:message

', - 'title' => 'Une nouvelle maintenance planifiée a été créée. ', - 'action' => 'Affichage', - 'thanks' => 'Cordialement,', - ], - 'slack' => [ - 'title' => 'Nouveau calendrier créé', - 'content' => ':name est prévue pour :date', - ], - 'sms' => [ - 'content' => ':name est prévue pour :date', - ], - ], - ], - 'subscriber' => [ - 'verify' => [ - 'mail' => [ - 'content' => 'Cliquez pour vérifier votre abonnement à la page d\'état :app_name.', - 'title' => 'Vérifiez votre abonnement à la page d’état :app_name.', - 'action' => 'Vérifer', - ], - ], - 'manage' => [ - 'mail' => [ - 'subject' => 'Gérer vos abonnements', - 'content' => 'Cliquez pour gérer votre abonnement à la page d\'état :app_name.', - 'title' => 'Cliquez pour gérer votre abonnement à la page d\'état :app_name.', - 'action' => 'Gérer l\'abonnement', - ], - ], - ], - 'system' => [ - 'test' => [ - 'mail' => [ - 'subject' => 'Ping from Cachet!', - 'content' => 'This is a test notification from Cachet!', - 'title' => '🔔', - ], - ], - ], - 'user' => [ - 'invite' => [ - 'mail' => [ - 'subject' => 'Votre invitation est à l\'intérieur...', - 'content' => 'Vous avez été invité à rejoindre la page de statut :app_name.', - 'title' => 'Vous êtes invité à rejoindre :app_name status page.', - 'action' => 'Accepter', - ], - ], - ], -]; - diff --git a/resources/views/notifications/partials/subscription.blade.php b/resources/views/notifications/partials/subscription.blade.php index 863e1a4e279a..89ec227d1efb 100644 --- a/resources/views/notifications/partials/subscription.blade.php +++ b/resources/views/notifications/partials/subscription.blade.php @@ -1,8 +1,5 @@ {!! Config::get('setting.mail_signature') !!} -@component('mail::button', ['url' => $manageSubscriptionUrl]) - {{ $manageSubscriptionText }} -@endcomponent @component('mail::subcopy') - [{{ $unsubscribeText }}]({{ $unsubscribeUrl }}) +[{{ $unsubscribeText }}]({{ $unsubscribeUrl }}) — [{{ $manageSubscriptionText }}]({{ $manageSubscriptionUrl }}) @endcomponent diff --git a/resources/views/notifications/schedule/new.blade.php b/resources/views/notifications/schedule/new.blade.php index 9858b2803476..912110bd125c 100644 --- a/resources/views/notifications/schedule/new.blade.php +++ b/resources/views/notifications/schedule/new.blade.php @@ -1,8 +1,11 @@ @component('mail::message') -# {{$dateNumber}}{{$name}} +# {{ trans('notifications.schedule.new.mail.title') }} -{{$message}} +{{ $content }} + +{{ trans('notifications.common.salutation') }}
+{{ Config::get('setting.app_name') }} -{{$date}} @include('notifications.partials.subscription') + @endcomponent From c4bcdcd452478f5e3a03b5b8061e0621edd3ae11 Mon Sep 17 00:00:00 2001 From: MathisG-Recia Date: Tue, 13 Apr 2021 14:52:10 +0200 Subject: [PATCH 3/7] Modification_mail --- .../Schedule/NewScheduleNotification.php | 10 +++++----- app/Presenters/SchedulePresenter.php | 20 ++++++++++++++++++- .../partials/subscription.blade.php | 6 ++++-- .../notifications/schedule/new.blade.php | 8 +++----- 4 files changed, 31 insertions(+), 13 deletions(-) diff --git a/app/Notifications/Schedule/NewScheduleNotification.php b/app/Notifications/Schedule/NewScheduleNotification.php index d89d72cdd23c..a57040b0f781 100644 --- a/app/Notifications/Schedule/NewScheduleNotification.php +++ b/app/Notifications/Schedule/NewScheduleNotification.php @@ -72,15 +72,15 @@ public function toMail($notifiable) { $manageUrl = URL::signedRoute(cachet_route_generator('subscribe.manage'), ['code' => $notifiable->verify_code]); - $content = trans('notifications.schedule.new.mail.content', [ - 'name' => $this->schedule->name, - 'date' => $this->schedule->scheduled_at_formatted, - ]); + return (new MailMessage()) ->subject(trans('notifications.schedule.new.mail.subject')) ->markdown('notifications.schedule.new', [ - 'content' => $content, + 'name' => $this->schedule->name, + 'dateNumber' => $this->schedule->scheduled_at_number, + 'date' => $this->schedule->scheduled_at_formatted, + 'message' => $this->schedule->raw_message, 'unsubscribeText' => trans('cachet.subscriber.unsubscribe'), 'unsubscribeUrl' => cachet_route('subscribe.unsubscribe', $notifiable->verify_code), 'manageSubscriptionText' => trans('cachet.subscriber.manage_subscription'), diff --git a/app/Presenters/SchedulePresenter.php b/app/Presenters/SchedulePresenter.php index ddf0c04ffd1e..1138a8b2ca12 100644 --- a/app/Presenters/SchedulePresenter.php +++ b/app/Presenters/SchedulePresenter.php @@ -56,7 +56,15 @@ public function formatted_message() { return Markdown::convertToHtml($this->wrappedObject->message); } - + /** + * Return the raw text of the message, even without Markdown. + * + * @return string + */ + public function raw_message() + { + return strip_tags($this->wrappedObject->message); + } /** * Present diff for humans date time. * @@ -132,6 +140,16 @@ public function scheduled_at_formatted() * * @return string */ + public function scheduled_at_number() + { + return $this->dates->make($this->wrappedObject->scheduled_at)->format('[d/m/Y]'); + } + /** + * Present formatted date time. + * + * @return string + */ + public function scheduled_at_iso() { return $this->dates->make($this->wrappedObject->scheduled_at)->toISO8601String(); diff --git a/resources/views/notifications/partials/subscription.blade.php b/resources/views/notifications/partials/subscription.blade.php index 89ec227d1efb..f628677899a7 100644 --- a/resources/views/notifications/partials/subscription.blade.php +++ b/resources/views/notifications/partials/subscription.blade.php @@ -1,5 +1,7 @@ {!! Config::get('setting.mail_signature') !!} - +@component('mail::button', ['url' => $manageSubscriptionUrl]) + {{ $manageSubscriptionText }} +@endcomponent @component('mail::subcopy') -[{{ $unsubscribeText }}]({{ $unsubscribeUrl }}) — [{{ $manageSubscriptionText }}]({{ $manageSubscriptionUrl }}) + [{{ $unsubscribeText }}]({{ $unsubscribeUrl }}) @endcomponent diff --git a/resources/views/notifications/schedule/new.blade.php b/resources/views/notifications/schedule/new.blade.php index 912110bd125c..0fc37bba5464 100644 --- a/resources/views/notifications/schedule/new.blade.php +++ b/resources/views/notifications/schedule/new.blade.php @@ -1,11 +1,9 @@ @component('mail::message') -# {{ trans('notifications.schedule.new.mail.title') }} +# {{$dateNumber}}{{$name}} -{{ $content }} - -{{ trans('notifications.common.salutation') }}
-{{ Config::get('setting.app_name') }} +{{$message}} +{{$date}} @include('notifications.partials.subscription') @endcomponent From 25f48ca3b6f4cc7375f46772aac806aac4c2f142 Mon Sep 17 00:00:00 2001 From: MathisG-Recia Date: Tue, 13 Apr 2021 14:52:35 +0200 Subject: [PATCH 4/7] Add_french_notif_translation --- resources/lang/fr/notifications.php | 125 ++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 resources/lang/fr/notifications.php diff --git a/resources/lang/fr/notifications.php b/resources/lang/fr/notifications.php new file mode 100644 index 000000000000..72cc480bd495 --- /dev/null +++ b/resources/lang/fr/notifications.php @@ -0,0 +1,125 @@ +@@ -0,0 +1,125 @@ + [ + 'salutation' => 'Cordialement,', + 'alternative_link' => "Si vous avez de la difficulté à cliquer sur le bouton \":actionText\" copiez et collez l’URL ci-dessous dans votre navigateur web : :actionURL", + 'copyright_notice' => 'Tout droits réservés.', + ], + 'component' => [ + 'status_update' => [ + 'mail' => [ + 'subject' => 'État des composants mis à jour', + 'greeting' => 'L\'état d’un composant a été mis à jour !', + 'content' => ':name statut changé de :old_status à :new_status.', + 'action' => 'Affichage', + 'thanks' => 'Cordialement,', + ], + 'slack' => [ + 'title' => 'État des composants mis à jour', + 'content' => ':name statut changé de :old_status à :new_status.', + ], + 'sms' => [ + 'content' => ':name statut changé de :old_status à :new_status.', + ], + ], + ], + 'incident' => [ + 'new' => [ + 'mail' => [ + 'subject' => 'Nouvel incident signalé', + 'greeting' => 'Un nouvel incident a été signalé à l\'adresse :app_name.', + 'content' => 'Incident :name a été signalé', + 'action' => 'Affichage', + 'thanks' => 'Cordialement,', + ], + 'slack' => [ + 'title' => 'Incident :name a été signalé', + 'content' => 'Un nouvel incident a été signalé à l\'adresse :app_name.', + ], + 'sms' => [ + 'content' => 'Un nouvel incident a été signalé à l\'adresse :app_name.', + ], + ], + 'update' => [ + 'mail' => [ + 'subject' => 'Incident mis à jour', + 'content' => ':name a été mis à jour', + 'title' => ':name a été mis à jour pour :new_status', + 'action' => 'Affichage', + 'thanks' => 'Cordialement,', + ], + 'slack' => [ + 'title' => ':name a été mis à jour', + 'content' => ':name a été mis à jour pour :new_status', + ], + 'sms' => [ + 'content' => 'Incident :name a été mis à jour', + ], + ], + ], + 'schedule' => [ + 'new' => [ + 'mail' => [ + 'subject' => 'Nouveau calendrier créé', + 'content' => 'Planifié
:name est prévue pour :date,

:message

', + 'title' => 'Une nouvelle maintenance planifiée a été créée. ', + 'action' => 'Affichage', + 'thanks' => 'Cordialement,', + ], + 'slack' => [ + 'title' => 'Nouveau calendrier créé', + 'content' => ':name est prévue pour :date', + ], + 'sms' => [ + 'content' => ':name est prévue pour :date', + ], + ], + ], + 'subscriber' => [ + 'verify' => [ + 'mail' => [ + 'content' => 'Cliquez pour vérifier votre abonnement à la page d\'état :app_name.', + 'title' => 'Vérifiez votre abonnement à la page d’état :app_name.', + 'action' => 'Vérifer', + ], + ], + 'manage' => [ + 'mail' => [ + 'subject' => 'Gérer vos abonnements', + 'content' => 'Cliquez pour gérer votre abonnement à la page d\'état :app_name.', + 'title' => 'Cliquez pour gérer votre abonnement à la page d\'état :app_name.', + 'action' => 'Gérer l\'abonnement', + ], + ], + ], + 'system' => [ + 'test' => [ + 'mail' => [ + 'subject' => 'Ping from Cachet!', + 'content' => 'This is a test notification from Cachet!', + 'title' => '🔔', + ], + ], + ], + 'user' => [ + 'invite' => [ + 'mail' => [ + 'subject' => 'Votre invitation est à l\'intérieur...', + 'content' => 'Vous avez été invité à rejoindre la page de statut :app_name.', + 'title' => 'Vous êtes invité à rejoindre :app_name status page.', + 'action' => 'Accepter', + ], + ], + ], +]; From 8195041dadb0031046ee899cc924d22cc1e82d56 Mon Sep 17 00:00:00 2001 From: MathisG-Recia Date: Tue, 13 Apr 2021 14:53:07 +0200 Subject: [PATCH 5/7] add_french_forms_translations --- resources/lang/fr/forms.php | 88 ++++++++++++++++++++++++++++++------- 1 file changed, 72 insertions(+), 16 deletions(-) diff --git a/resources/lang/fr/forms.php b/resources/lang/fr/forms.php index a590a54d3b19..c8d013587916 100644 --- a/resources/lang/fr/forms.php +++ b/resources/lang/fr/forms.php @@ -15,26 +15,33 @@ 'setup' => [ 'email' => 'Adresse e-mail', 'username' => 'Nom d\'utilisateur', - 'password' => 'Mot de passe ', + 'password' => 'Mot de passe', 'site_name' => 'Nom du site', 'site_domain' => 'Nom de domaine du site', 'site_timezone' => 'Choisissez votre fuseau horaire', 'site_locale' => 'Sélectionner votre langue', 'enable_google2fa' => 'Activer l\'authentification à deux facteurs de Google', 'cache_driver' => 'Gestionnaire de cache', + 'queue_driver' => 'pilote de file d’attente', 'session_driver' => 'Gestionnaire de session', + 'mail_driver' => 'Driver de mail', + 'mail_host' => 'Hôte de mail', + 'mail_address' => 'Mail de l\'adresse', + 'mail_username' => 'Nom d\'utilisateur mail' , + 'mail_password' => 'Mot de passe du mail', ], // Login form fields 'login' => [ 'login' => 'Nom d\'utilisateur ou e-mail', 'email' => 'Email', - 'password' => 'Mot de passe ', + 'password' => 'Mot de passe', '2fauth' => 'Code d\'authentification', 'invalid' => 'Nom d\'utilisateur ou mot de passe incorrect', 'invalid-token' => 'Jeton invalide', 'cookies' => 'Vous devez activer les cookies pour vous connecter.', 'rate-limit' => 'Limite de tentatives atteinte.', + 'remember_me' => 'Remember me', ], // Incidents form fields @@ -44,10 +51,14 @@ 'component' => 'Composant', 'message' => 'Message', 'message-help' => 'Vous pouvez également utiliser le format Markdown.', + 'occurred_at' => 'Quand cet incident s’est-il produit ?', 'scheduled_at' => 'Quand planifier la maintenance ?', 'incident_time' => 'Quand s\'est produit cet incident ?', 'notify_subscribers' => 'Notifier les abonnés ?', 'visibility' => 'Visibilité de l\'incident', + 'stick_status' => 'Coller l\'incident', + 'stickied' => 'Coller l\'incident', + 'not_stickied' => 'Ne pas coller l\'incident', 'public' => 'Visible par le public', 'logged_in_only' => 'Uniquement visible par les utilisateurs enregistrés', 'templates' => [ @@ -56,6 +67,19 @@ 'twig' => 'Vous pouvez utiliser Twig pour créer des modèles par langues pour les modèles d\'incidents.', ], ], + 'schedules' => [ + 'name' => 'Nom', + 'status' => 'Status', + 'message' => 'Message', + 'message-help' => 'Vous pouvez également utiliser Markdown.', + 'scheduled_at' => 'Quand cette maintenance est-elle programmée ?', + 'completed_at' => 'Quand cette maintenance s’est-elle terminée ?', + 'templates' => [ + 'name' => 'Nom', + 'template' => 'Template', + 'twig' => 'Vous pouvez utiliser Twig pour créer des modèles par langues pour les modèles d\'incidents.', + ], + ], // Components form fields 'components' => [ @@ -74,6 +98,24 @@ 'visible' => 'Toujours déplier', 'collapsed' => 'Réduire le groupe par défaut', 'collapsed_incident' => 'Réduire le groupe par défaut, mais déplier s\'il y a des incidents', + 'visibility' => 'Visibilité', + 'visibility_public' => 'Visible de tous', + 'visibility_authenticated' => 'Visible uniquement pour les utilisateurs connectés', + ], + ], + + // Action form fields + 'actions' => [ + 'name' => 'Nom', + 'description' => 'Description', + 'start_at' => 'Horaire heure de début', + 'timezone' => 'Fuseau horaire', + 'schedule_frequency' => 'Fréquence de planification (en secondes)', + 'completion_latency' => 'Latence d’achèvement (en secondes)', + 'group' => 'Groupe', + 'active' => 'Active?', + 'groups' => [ + 'name' => 'Nom du groupe', ], ], @@ -91,7 +133,10 @@ 'places' => 'Nombre de chiffres après la virgule', 'default_view' => 'Vue par défaut', 'threshold' => 'Quel intervalle en minutes entre chaque point de métrique ?', - + 'visibility' => 'Visibilité', + 'visibility_authenticated' => 'Visible aux utilisateurs authentifiés', + 'visibility_public' => 'Visible pour tous', + 'visibility_hidden' => 'Toujours caché', 'points' => [ 'value' => 'Valeur', ], @@ -101,16 +146,23 @@ 'settings' => [ /// Application setup 'app-setup' => [ - 'site-name' => 'Nom du site', - 'site-url' => 'URL du site', - 'display-graphs' => 'Afficher les graphiques sur la page de statut ?', - 'about-this-page' => 'À propos de cette page', - 'days-of-incidents' => 'Combien de jours d\'incidents à montrer ?', - 'banner' => 'Image d\'en-tête', - 'banner-help' => 'Il est recommandé de téléchargez un fichier ne dépassant pas 930px de large .', - 'subscribers' => 'Permettre aux personnes de s\'inscrire aux notifications par e-mail ?', - 'automatic_localization' => 'Traduire automatiquement votre page de statut dans la langue du visiteur ?', - ], + 'site-name' => 'Nom du site', + 'site-url' => 'URL du site', + 'display-graphs' => 'Afficher les graphiques sur la page de statut ?', + 'about-this-page' => 'À propos de cette page', + 'days-of-incidents' => 'Combien de jours d\'incidents à montrer ?', + 'time_before_refresh' => 'Taux de rafraîchissement de la page d’état (en secondes)', + 'major_outage_rate' => 'Seuil d’arrêt majeur (en %)', + 'banner' => 'Image d\'en-tête', + 'banner-help' => 'Il est recommandé de téléchargez un fichier ne dépassant pas 930px de large .', + 'subscribers' => 'Permettre aux personnes de s\'inscrire aux notifications par e-mail ?', + 'suppress_notifications_in_maintenance' => 'Supprimer les notifications lorsque l’incident se produit pendant la période de maintenance ?', + 'skip_subscriber_verification' => 'Sauter la vérification des utilisateurs? (Soyez averti, vous pourriez être spammé)', + 'automatic_localization' => 'Traduire automatiquement votre page de statut dans la langue du visiteur ?', + 'enable_external_dependencies' => 'Activer les dépendances tierces (Google Fonts, Trackers, etc...)', + 'show_timezone' => 'Afficher le fuseau horaire de la page d’état', + 'only_disrupted_days' => 'Ne montrez que les jours contenant des incidents dans le calendrier?', + ], 'analytics' => [ 'analytics_google' => 'Code de Google Analytics', 'analytics_gosquared' => 'Code de GoSquared Analytics', @@ -126,6 +178,8 @@ 'security' => [ 'allowed-domains' => 'Domaines autorisés', 'allowed-domains-help' => 'Séparés par des virgules. Le domaine défini ci-dessus est automatiquement autorisé par défaut.', + 'always-authenticate' => 'Toujours s’authentifier', + 'always-authenticate-help' => 'Besoin d’ouvrir une session pour afficher n’importe quelle page Cachet', ], 'stylesheet' => [ 'custom-css' => 'Feuille de style personnalisée', @@ -151,7 +205,7 @@ 'user' => [ 'username' => 'Nom d\'utilisateur', 'email' => 'Email', - 'password' => 'Mot de passe ', + 'password' => 'Mot de passe', 'api-token' => 'Jeton de l\'API', 'api-token-help' => 'Régénérer votre jeton API empêchera les applications existantes d\'accéder à Cachet.', 'gravatar' => 'Change your profile picture at Gravatar.', @@ -168,7 +222,9 @@ 'email' => 'E-mail #:id', ], ], - + 'general' => [ + 'timezone' => 'Sélectionnez le fuseau horaire', + ], // Buttons 'add' => 'Ajouter', 'save' => 'Enregistrer', @@ -181,7 +237,7 @@ 'remove' => 'Enlever', 'invite' => 'Inviter', 'signup' => 'Inscription', - + 'manage_updates' => 'Gérer les mises à jour', // Other 'optional' => '* Optionnel', ]; From 0ee9e1c29e6c569edf14ab57673aec4482f65521 Mon Sep 17 00:00:00 2001 From: MathisG-Recia Date: Tue, 13 Apr 2021 14:53:32 +0200 Subject: [PATCH 6/7] add_french_dashboard_translation --- resources/lang/fr/dashboard.php | 36 ++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/resources/lang/fr/dashboard.php b/resources/lang/fr/dashboard.php index b9f2a379a826..8fd98df4b6f4 100644 --- a/resources/lang/fr/dashboard.php +++ b/resources/lang/fr/dashboard.php @@ -12,7 +12,7 @@ return [ 'dashboard' => 'Tableau de bord', - + 'writeable_settings' => 'Le répertoire des paramètres Cachet n’est pas inscriptible. Assurez-vous que /bootstrap/cachet est inscriptible par le serveur web.', // Incidents 'incidents' => [ 'title' => 'Incidents & Planification', @@ -20,6 +20,25 @@ 'logged' => '{0} Aucun incident, bon travail.|Vous avez un incident signalé.|Vous avez :count incidents signalés.', 'incident-create-template' => 'Créer un modèle', 'incident-templates' => 'Modèles d\'incident', + 'updates' => [ + 'title' => 'Mises à jour des incidents pour :incident', + 'count' => '{0}Aucune mise à jour|[1]Une mise à jour|[2]Deux mises à jour|[3,*]Plusieurs mises à jour', + 'add' => [ + 'title' => 'Ajouter un incident', + 'success' => 'Incident ajouté.', + 'failure' => 'Une erreur s\'est produite en ajoutant l\'incident, veuillez réessayer.', + ], + 'edit' => [ + 'title' => 'Modifier un incident', + 'success' => 'Incident mis à jour.', + 'failure' => 'Une erreur s\'est produite en modifiant l\'incident, veuillez réessayer.', + ], + 'delete' => [ + 'success' => 'L\'incident a été supprimé et ne sera pas affiché sur votre page de statut.', + 'failure' => 'L\'incident n\'a pas pu être supprimé. Veuillez réessayer.', + ], + ], + 'reported_by' => 'Rapporté :timestamp by :user', 'add' => [ 'title' => 'Ajouter un incident', 'success' => 'Incident ajouté.', @@ -142,10 +161,12 @@ 'subscribers' => [ 'subscribers' => 'Abonnés', 'description' => 'Les abonnés recevront des notifications par e-mail lorsque des incidents sont créés ou des composants sont mis à jour.', + 'description_disabled' => 'Pour utiliser cette fonctionnalité, vous devez autoriser les personnes à s’inscrire aux notifications.', 'verified' => 'Vérifié', 'not_verified' => 'Non vérifié', 'subscriber' => ':email, abonné à :date', 'no_subscriptions' => 'Souscrire à toutes les mises à jour', + 'global' => 'Globalement abonnés', 'add' => [ 'title' => 'Ajouter un abonné', 'success' => 'L\'abonné a été ajouté !', @@ -197,6 +218,9 @@ 'analytics' => [ 'analytics' => 'Analytics', ], + 'log' => [ + 'log' => 'Log', + ], 'localization' => [ 'localization' => 'Localisation', ], @@ -205,6 +229,15 @@ 'header' => 'Entête HTML personnalisé', 'footer' => 'Pied de page HTML personnalisé', ], + 'mail' => [ + 'mail' => 'Mail', + 'test' => 'Test', + 'email' => [ + 'subject' => 'Notification test de Cachet', + 'body' => 'Ceci est une notification test.', + ], + 'signature' => 'Signature électronique HTML personnalisée', + ], 'security' => [ 'security' => 'Sécurité', 'two-factor' => 'Utilisateurs sans authentification à deux facteurs', @@ -226,6 +259,7 @@ 'backers-title' => 'Partenaires financiers et sponsors', 'backers' => 'Si vous souhaitez aider des développements futurs jetez un œil à la campagne Cachet Patreon.', 'thank-you' => 'Merci à chacun des :count contributeurs.', + 'unable-to-load'=> 'Impossible de charger les détails sur les contributeurs et les sponsors.' ], ], From 2a88c806b0333f7d616312f6bcf2388012f73bac Mon Sep 17 00:00:00 2001 From: MathisG-Recia Date: Tue, 13 Apr 2021 14:53:55 +0200 Subject: [PATCH 7/7] add_french_cachet_translation --- resources/lang/fr/cachet.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/resources/lang/fr/cachet.php b/resources/lang/fr/cachet.php index ee6aa08fcac8..dc6ce06c2c91 100644 --- a/resources/lang/fr/cachet.php +++ b/resources/lang/fr/cachet.php @@ -65,11 +65,17 @@ // Subscriber 'subscriber' => [ - 'subscribe' => 'Abonnez-vous pour obtenir les dernières mises à jour.', - 'button' => 'S\'abonner', + 'subscribe' => 'Abonnez-vous pour obtenir les dernières mises à jour.', + 'unsubscribe' => 'Se désabonner', + 'button' => 'S\'abonner', + 'manage_subscription' => 'Gérer l\'abonnement', 'manage' => [ - 'no_subscriptions' => 'Vous êtes actuellement abonné à toutes les mises à jour.', - 'my_subscriptions' => 'Vous êtes actuellement abonné aux mises à jour suivantes.', + 'notifications' => 'Notifications', + 'notifications_for' => 'Gérer les notifications pour', + 'no_subscriptions' => 'Vous êtes actuellement abonné à toutes les mises à jour.', + 'update_subscription' => 'Mettre à jour les abonnements', + 'my_subscriptions' => 'Vous êtes actuellement abonné aux mises à jour suivantes.', + 'manage_at_link' => 'Gérer vos abonnements à :link', ], 'email' => [ 'subscribe' => 'S\'abonner aux notifications par email.',