update translations

This commit is contained in:
xiaomlove
2026-02-01 01:26:00 +07:00
parent 8dec50fc6d
commit f07e0a5013
438 changed files with 6061 additions and 1717 deletions
+7
View File
@@ -0,0 +1,7 @@
<?php
return [
'view_properties' => 'Voir les propriétés',
'subject_type' => 'Modélisation',
'subject_id' => 'ID du modèle',
];
+2
View File
@@ -47,6 +47,8 @@ return [
'queue_monitor' => 'Moniteur de file d\'attente',
'user_modify_logs' => 'Journaux de modification de l\'utilisateur',
'message_templates' => 'Modèles de message',
'tracker_url' => 'URL du tracker',
'activity_logs' => 'Journaux d\'activité',
],
'resources' => [
'agent_allow' => [
+9
View File
@@ -21,7 +21,10 @@ return [
\App\Models\BonusLogs::BUSINESS_TYPE_BUY_CHANGE_USERNAME_CARD => 'Acheter changer le nom d\'utilisateur',
\App\Models\BonusLogs::BUSINESS_TYPE_GIFT_MEDAL => 'Médaille cadeau',
\App\Models\BonusLogs::BUSINESS_TYPE_BUY_TORRENT => 'Acheter le torrent',
\App\Models\BonusLogs::BUSINESS_TYPE_TASK_PASS_REWARD => 'Récompense de Tâche terminée',
\App\Models\BonusLogs::BUSINESS_TYPE_TASK_NOT_PASS_DEDUCT => 'Tâche non déduite',
\App\Models\BonusLogs::BUSINESS_TYPE_REWARD_TORRENT => 'Récompense torrent',
\App\Models\BonusLogs::BUSINESS_TYPE_CLAIMED_UNREACHED => 'Torrent réclamé non atteint',
\App\Models\BonusLogs::BUSINESS_TYPE_ROLE_WORK_SALARY => 'Salaire de travail du rôle',
\App\Models\BonusLogs::BUSINESS_TYPE_TORRENT_BE_DOWNLOADED => 'Torrent à télécharger',
@@ -29,6 +32,7 @@ return [
\App\Models\BonusLogs::BUSINESS_TYPE_RECEIVE_GIFT => 'Recevoir un cadeau',
\App\Models\BonusLogs::BUSINESS_TYPE_UPLOAD_TORRENT => 'Télécharger le torrent',
\App\Models\BonusLogs::BUSINESS_TYPE_TORRENT_BE_REWARD => 'Récompense de réception du torrent',
\App\Models\BonusLogs::BUSINESS_TYPE_CLAIMED_REACHED => 'Récompense atteint pour le torrent réclamé',
\App\Models\BonusLogs::BUSINESS_TYPE_SEEDING_BASIC => 'Bases de seeding',
\App\Models\BonusLogs::BUSINESS_TYPE_SEEDING_DONOR_ADDITION => 'Ajout de donneurs en seeding',
@@ -43,4 +47,9 @@ return [
'new_total_value' => 'Valeur post-négociation',
],
'exclude_seeding_bonus' => 'Exclure le bonus de seeding',
'title_for_user' => 'Détails du bonus utilisateur',
'category' => 'Catégorie',
'category_common' => 'Commun',
'category_seeding' => 'Sources',
'view_detail' => 'Détails du produit',
];
+12
View File
@@ -0,0 +1,12 @@
<?php
return [
'type' => [
'text' => 'Texte court',
'textarea' => 'Texte long',
'radio' => 'Simple sélection horizontale',
'checkbox' => 'Sélection horizontale multiple',
'select' => 'Simple sélection verticale',
'image' => 'Image',
],
];
+4
View File
@@ -8,5 +8,9 @@ return [
'post' => [
'edited_notify_subject' => 'La réponse au message a été modifiée',
'edited_notify_body' => 'Votre réponse au sujet : :topic_subject a été modifiée par : :editor.',
],
'reply' => [
'replied_notify_subject' => 'Votre réponse a une nouvelle réponse',
'replied_notify_body' => 'Votre réponse au sujet:topic_subject a été répondu par :replyer.',
]
];
+1
View File
@@ -11,6 +11,7 @@ return [
'mode_' . \App\Models\HitAndRun::MODE_GLOBAL => 'Globale',
'reached_by_seed_time_comment' => 'Jusqu\'à::now,durée de la seed : :seed_time Hour(s) atteinte(s) :seed_time_minimum(s)',
'reached_by_leech_time_comment' => 'Jusqu\'à::now,leech time: :leech_time Heures(s) atteinte(s) :leech_time_minimum(s)',
'reached_by_share_ratio_comment' => "Jusqu'à::now \ndurée de la graine: :seed_time Hour(s) Inatteinte(s) :seed_time_minimum Hour(s) \nRatio Partage: :share_ratio atteint la norme:ignore_when_ratio_reach",
'reached_by_special_user_class_comment' => "Votre classe utilisateur : :user_class_text ou un utilisateur donné, ignorez cette H&R",
'reached_message_subject' => 'H&R(ID: :hit_and_run_id) atteint !',
+12
View File
@@ -0,0 +1,12 @@
<?php
return [
'label' => 'Historique IP',
'access' => 'Heure d\'accès',
'access_begin' => 'Heure de début d\'accès',
'access_end' => 'Heure de fin d\'accès',
'access_tooltip' => 'Le temps réel était dans les heures qui ont précédé.',
'uri' => 'URI',
'count' => 'Compter',
'ip_location' => 'Localisation',
];
+12
View File
@@ -0,0 +1,12 @@
<?php
return [
'label' => 'Recherche IP',
'placeholder' => 'Entrez l\'adresse IP à rechercher ; sinon les résultats seront vides',
'last_access_ip' => 'Dernière IP',
'last_access' => 'Dernier accès',
'ip_count' => 'Nombre d\'IP',
'ip_last_access' => 'Dernière connexion à cette adresse IP',
'user_added' => 'Temps de participation',
'invited_by' => 'Invité par',
];
+81
View File
@@ -48,6 +48,8 @@ return [
'text_code' => "CODE",
'language' => 'Langue',
'content' => 'Contenus',
'is_default' => 'Est par défaut',
'bulk' => 'En vrac',
'setting' => [
'nav_text' => 'Réglages',
'backup' => [
@@ -80,6 +82,8 @@ return [
'inspect_time_help' => 'La durée de l\'examen est calculée à partir de la fin du téléchargement, en heures',
'seed_time_minimum' => 'Temps minimum de la graine',
'seed_time_minimum_help' => 'Le temps le plus court pour faire les graines pour répondre à la norme, en heures, doit être inférieur à la durée de l\'expédition',
'leech_time_minimum' => 'Délai minimum (pas de remorqueur)',
'leech_time_minimum_help' => 'Le temps minimum de téléchargement requis pour répondre à la norme quand aucune semise, en heures, ne doit être inférieur à la durée de l\'expédition. Mettre à 0 pour désactiver',
'ignore_when_ratio_reach' => 'Taux de partage des accomplissements',
'ignore_when_ratio_reach_help' => 'Le taux de partage minimum pour répondre à la norme',
'ban_user_when_counts_reach' => 'Limite du nombre d\'H&R',
@@ -99,6 +103,52 @@ return [
'max_uploaded_duration' => 'Multiplicateur de volume maximum d\'envoi effectif',
'max_uploaded_duration_help' => 'Unité: heures. Le multiplicateur maximum de volume de téléchargement prend effet dans cette plage de temps après la publication du torrent, et ne prend pas effet au-delà de cette période. Un paramètre de 0 est toujours en vigueur',
],
'captcha' => [
'tab_header' => 'Captcha',
'driver' => 'Pilote Captcha',
'driver_help' => 'Choisissez quel mécanisme de vérification est affiché sur les formulaires publics.',
'drivers' => [
'image' => 'Captcha d\'image intégré',
'cloudflare_turnstile' => 'Turnstile de Fusée nuageuse',
'google_recaptcha_v2' => 'Google reCAPTCHA v2',
],
'turnstile' => [
'section' => 'Turnstile de Fusée nuageuse',
'site_key' => 'Clé du site',
'site_key_help' => 'Copié depuis le tableau de bord Cloudflare Turnstile.',
'secret_key' => 'Clé secrète',
'secret_key_help' => 'Garder cette valeur privée.',
'theme' => 'Thème',
'theme_help' => 'S\'adapte automatiquement lors de la mise à Auto.',
'theme_auto' => 'Automatique',
'theme_light' => 'Lumière',
'theme_dark' => 'Sombre',
'size' => 'Taille du widget',
'size_help' => 'Des étirements flexibles pour correspondre à la largeur du conteneur.',
'size_normal' => 'Normale',
'size_compact' => 'Compact',
'size_flexible' => 'Flexible',
],
'recaptcha' => [
'section' => 'Google reCAPTCHA v2',
'site_key' => 'Clé du site',
'site_key_help' => 'Fourni par la console d\'administration de Google reCAPTCHA.',
'secret_key' => 'Clé secrète',
'secret_key_help' => 'Garder cette valeur privée.',
'theme' => 'Thème',
'theme_help' => 'Utilisez l\'obscurité lorsque votre site exécute une palette sombre.',
'theme_light' => 'Lumière',
'theme_dark' => 'Sombre',
'size' => 'Taille du widget',
'size_help' => 'Compact est adapté pour des mises en page étroites.',
'size_normal' => 'Normale',
'size_compact' => 'Compact',
],
'attendance' => [
'enabled' => 'Exiger le captcha pour l\'enregistrement des présences',
'enabled_help' => 'Lorsqu\'il est activé, les membres doivent résoudre le captcha avant de se connecter.',
],
],
'meilisearch' => [
'tab_header' => 'Meilleure recherche',
'enabled' => 'Activer ou non la recherche en ligne',
@@ -122,6 +172,11 @@ return [
'access_admin_class_min_help' => 'Par défaut: l\'administrateur, les utilisateurs ayant une classe utilisateur supérieure ou égale à la valeur définie peuvent se connecter au backend admin',
'alarm_email_receiver' => 'Récepteur de réception d\'alarme',
'alarm_email_receiver_help' => "Remplissez l'UID de l'utilisateur, séparé par des espaces, et l'e-mail d'alarme sera envoyé à l'adresse e-mail de l'utilisateur correspondant. Si vous ne le remplissez pas, il sera écrit dans le journal d'exécution, et le niveau de log sera une erreur",
'is_record_announce_log' => 'S\'il faut enregistrer les logs d\'annonce',
'is_record_announce_log_help' => 'Pour enregistrer les logs, installez d\'abord ClickHouse selon la documentation et activez cette configuration. Par défaut : non',
'is_record_seeding_bonus_log' => 'S\'il faut enregistrer les logs bonus de seeding',
'is_record_seeding_bonus_log_help' => 'Pour enregistrer, installez d\'abord ClickHouse selon la documentation et activez cette configuration. Par défaut : non',
],
'image_hosting' => [
'driver' => 'Emplacement de stockage',
@@ -155,6 +210,7 @@ return [
'parked' => 'Stationné',
'offer_allowed_count' => 'Nombre d\'offres autorisées',
'tmp_invites' => 'Invitation temporaire',
'is_donating' => 'Donateur',
],
'medal' => [
'label' => 'Médaille',
@@ -272,6 +328,17 @@ return [
'torrent_state' => [
'label' => 'Promotion globale',
'global_sp_state' => 'État de la promotion mondiale',
'deadline_after_begin' => 'L\'heure de fin doit être supérieure à l\'heure de début.',
'status' => 'Statut',
'status_expired' => 'Expiré',
'status_ongoing' => 'En cours',
'status_upcoming' => 'À venir',
'time_overlaps' => 'Les chevauchements de temps avec une autre promotion. Veuillez ajuster la fenêtre.',
'time_overlaps_with' => 'Chevauchement avec l\'ID de la promotion :id (temps: :start ~ :end).',
'notice_days' => 'Pré-annonce',
'notice_day' => ':days avant',
'notice_none' => 'Pas de pré-annonce',
'notice_unlimited' => 'Toujours annoncer',
],
'role' => [
'class' => 'Associer la classe utilisateur',
@@ -389,4 +456,18 @@ Note: dans 1. , la partie 'searchbox_name' peut être omise, c'est-à-dire que l
'select_section' => 'Slections',
'select_section_help' => "Si une sélection n'est pas définie, toutes les options de la sélection sont autorisées pour la règle. Au moins une sélection doit être définie.",
],
'field' => [
'label' => 'Champ personnalisé',
'name' => 'Nom',
'name_help' => 'Autorise uniquement les chiffres, l\'alphabet, le souligné',
'field_label' => 'Afficher le libellé',
'type' => 'Type de texte',
'required' => 'Requis',
'mod_only' => 'Mod only',
'help' => 'Texte d\'aide',
'options' => 'Options',
'options_help' => 'Requis lorsque le type est radio, case à cocher, sélection. Une ligne, une option, format: valeur|afficher le texte',
'is_single_row' => 'Afficher sur une seule ligne',
'display' => 'Affichage personnalisé',
]
];
+20
View File
@@ -32,6 +32,8 @@ return [
'gift_fee_factor' => 'Facteur de frais de cadeau',
'gift_fee' => 'Frais de cadeau',
'gift_fee_factor_help' => 'Les frais supplémentaires facturés aux autres utilisateurs pour les cadeaux sont égaux au prix multiplié par ce facteur',
'bonus_addition_duration' => 'Durée d\'ajout de bonus',
'bonus_addition_duration_help' => 'Unité: jours. Mettre à 0 pour l\'effet permanent. Compte à partir du moment de l\'acquisition, qu\'il soit équipé ou non',
],
'buy_already' => 'Déjà acheté',
'buy_btn' => 'Acheter',
@@ -48,4 +50,22 @@ return [
0 => 'Portage',
1 => 'Ne pas porter'
],
'bonus_addition_expire_at' => 'Délai d\'expiration d\'ajout de bonus',
'is_expired' => 'Est expiré',
'is_bonus_addition_expired' => 'Est ce que l\'ajout de bonus a expiré',
'is_wearing' => 'Porte-t-il',
'increase_duration' => 'Durée d\'augmentation',
'increase_duration_help' => 'Unité: jours. Prolonger uniformément la durée d\'expiration de la valeur d\'origine',
'update_expire_at' => 'Définir le délai d\'expiration',
'update_expire_at_help' => 'Définissez de façon uniforme, le délai d\'expiration à une valeur spécifiée',
'bulk_action_increase' => 'Agrandir',
'bulk_action_update' => 'Mise à jour',
'bulk_action_cancel' => 'Abandonner',
'bulk_action_increase_expire_at' => 'Augmenter le temps d\'expiration en bloc',
'bulk_action_update_expire_at' => 'Date d\'expiration de la mise à jour en bloc',
'bulk_action_cancel_expire_at' => 'Délai d\'expiration d\'annulation en bloc',
'bulk_action_increase_bonus_addition_expire_at' => 'Durée d\'expiration d\'ajout de bonus en vrac',
'bulk_action_update_bonus_addition_expire_at' => 'Délai d\'expiration du bonus de mise à jour en bloc',
'bulk_action_cancel_bonus_addition_expire_at' => 'Durée d\'expiration du bonus d\'annulation en bloc',
];
+4
View File
@@ -23,6 +23,10 @@ return [
'subject' => 'Autorisation de téléchargement annulée',
'body' => 'Votre autorisation de téléchargement a été annulée en raison de l\'annonce de torrent payé trop de fois, assurez-vous que vous avez suffisamment de bonus.' ,
],
'download_disable_fake_announce' => [
'subject' => 'Autorisation de téléchargement annulée',
'body' => 'Votre autorisation de téléchargement a été annulée en raison de l\'annonce de fausses données.',
],
'download_enable' => [
'subject' => 'Autorisation de téléchargement restaurée',
'body' => 'Vos privilèges de téléchargement ont été restaurés, vous pouvez maintenant télécharger des torrents. Par: :operator',
+2
View File
@@ -14,4 +14,6 @@ return [
'msg_you_must_upload_in' => "Veuillez télécharger l'offre dans ",
'msg_hours_otherwise' => " heures sinon l'offre serait supprimée.",
'msg_reason_is' => "La raison : ",
'msg_new_offer_subject' => "Une nouvelle offre a été ajoutée",
'msg_new_offer_msg' => "L'utilisateur :username a ajouté une nouvelle offre :offername",
];
+21 -2
View File
@@ -3,6 +3,25 @@
declare(strict_types=1);
return [
'next' => 'Suivant &raquo;',
'previous' => '&laquo; Précédent',
'aria' => [
'sortAscending' => ': activer pour trier la colonne par ordre croissant',
'sortDescending' => ': activer pour trier la colonne par ordre décroissant',
],
'emptyTable' => 'Aucune donnée disponible dans la table',
'info' => 'Affichage de _START_ à _END_ sur _TOTAL_ entrées',
'infoEmpty' => 'Affichage de 0 à 0 sur 0 entrées',
'infoFiltered' => '(filtré depuis _MAX_ entrées totales)',
'lengthMenu' => 'Afficher les entrées _MENU_',
'loadingRecords' => 'Chargement en cours...',
'next' => 'Next &raquo;',
'paginate' => [
'first' => 'Premier',
'last' => 'Dernier',
'next' => 'Suivant',
'previous' => 'Précédent',
],
'previous' => '&laquo; Précédent',
'search' => 'Recherche:',
'thousands' => ',',
'zeroRecords' => 'Aucun enregistrement correspondant trouvé',
];
+22
View File
@@ -0,0 +1,22 @@
<?php
return [
'passkey_title' => 'Mot de passe',
'passkey' => 'Mot de passe',
'passkey_desc' => 'Le mot de passe est un moyen sécurisé et pratique de s\'authentifier sans avoir besoin de mots de passe. Il peut être utilisé sur plusieurs appareils.',
'passkey_create' => 'Créer un mot de passe',
'passkey_empty' => 'Aucun mot de passe trouvé.',
'passkey_created_at' => 'Créé le :',
'passkey_delete_confirm' => 'Êtes-vous sûr de vouloir supprimer ce mot de passe ? Cette action ne peut pas être annulée.',
'passkey_delete' => 'Supprimez',
'passkey_unknown' => 'Une erreur s\'est produite lors du traitement de votre demande.',
'passkey_invalid' => 'Données de mot de passe non valides.',
'passkey_timeout' => 'Délai d\'opération expiré, veuillez réessayer.',
'passkey_error' => 'Une erreur s\'est produite lors du traitement de votre demande. Veuillez réessayer plus tard.',
'passkey_user_not_found' => 'Utilisateur introuvable.',
'passkey_not_supported' => 'Votre navigateur ne prend pas en charge le mot de passe. Veuillez utiliser un navigateur moderne pour créer et gérer votre mot de passe.',
'fields' => [
'credential_id' => 'ID de l\'identifiant',
'counter' => 'Compteur',
],
];
+4 -4
View File
@@ -3,9 +3,9 @@
declare(strict_types=1);
return [
'reset' => 'Votre mot de passe a été réinitialisé !',
'sent' => 'Nous vous avons envoyé par email le lien de réinitialisation du mot de passe !',
'reset' => 'Votre mot de passe a été réinitialisé.',
'sent' => 'Nous avons envoyé votre lien de réinitialisation de mot de passe.',
'throttled' => 'Veuillez patienter avant de réessayer.',
'token' => 'Ce jeton de réinitialisation du mot de passe n\'est pas valide.',
'user' => 'Aucun utilisateur n\'a été trouvé avec cette adresse email.',
'token' => 'Ce jeton de réinitialisation de mot de passe est invalide.',
'user' => 'Nous ne pouvons pas trouver un utilisateur avec cette adresse e-mail.',
];
+19
View File
@@ -86,6 +86,20 @@ return [
'logs_label' => 'Journaux d\'approbation'
],
'show_hide_media_info' => 'Afficher/Masquer les informations de médias bruts',
'show_hide_bd_info' => 'Afficher/Masquer les infos BDD brutes',
'collapse_show_more_audio' => 'Réduire/Développer plus de pistes audio',
'collapse_show_more_subtitles' => 'Réduire/Développer plus de sous-titres',
'technicalinfo_duration' => 'Durée',
'technicalinfo_resolution' => 'Résolution',
'technicalinfo_bit_rate' => 'Taux de bits',
'technicalinfo_bit_depth' => 'Profondeur du Bit',
'technicalinfo_frame_rate' => 'Fréquence d\'images',
'technicalinfo_profile' => 'Profil',
'technicalinfo_format' => 'Formater',
'technicalinfo_extras' => 'Extras',
'technicalinfo_ref_frames' => 'Ref.Frames',
'technicalinfo_audio' => 'N° audio',
'technicalinfo_subtitles' => 'Sous-titres #',
'promotion_time_types' => [
\App\Models\Torrent::PROMOTION_TIME_TYPE_GLOBAL => 'Globale',
\App\Models\Torrent::PROMOTION_TIME_TYPE_PERMANENT => 'Permanent',
@@ -107,4 +121,9 @@ return [
'msg_here' => " [b]ici[/b]",
'msg_offer' => "Offre ",
'msg_blank' => ".",
'require_seed_section_menu_title' => 'Nécessite une graine',
'imdb_cache_dir_can_not_create' => 'le répertoire de cache imdb ne peut pas créer',
'imdb_cache_dir_is_not_writeable' => 'le répertoire de cache imdb n\'est pas accessible en écriture',
'imdb_photo_dir_can_not_create' => 'imdb le répertoire de photos ne peut pas créer',
'imdb_photo_dir_is_not_writeable' => 'le répertoire imdb de photos n\'est pas accessible en écriture',
];
+5 -3
View File
@@ -17,10 +17,10 @@ return [
'attendance_card' => 'Participer à la carte',
'props' => 'Accessoires',
'class' => 'Classe',
'vip_added' => 'Le statut VIP est obtenu par le bonus',
'vip_added_help' => 'Est le statut VIP échangé par bonus.',
'vip_added' => 'Expiration automatique du statut VIP',
'vip_added_help' => 'Le statut VIP expirera automatiquement.',
'vip_until' => 'Heure de fin du statut VIP',
'vip_until_help' => "Le format de l'heure est 'Année - Mois - Heure de la journée:Minute:Seconde Le temps où le statut VIP se termine. Le statut VIP est obtenu par bonus' doit être défini sur \"Oui\" pour que cette règle prenne effet.",
'vip_until_help' => "Le format de l'heure est 'Année - Mois - Heure de la journée:Minute:Seconde Le temps où le statut VIP se termine. Le statut VIP expire automatiquement' doit être défini sur \"Oui\" pour que cette règle prenne effet.",
],
'class_names' => [
\App\Models\User::CLASS_VIP => 'Vip',
@@ -109,4 +109,6 @@ return [
'msg_invited_user_has_registered' => "L'utilisateur invité s'est enregistré",
'msg_user_you_invited' => "L'utilisateur que vous avez invité ",
'msg_has_registered' => " s'est inscrit tout à l'heure.",
'user_is_disabled' => 'Utilisateur: :username(ID: :user_id) est désactivé.',
'user_is_not_confirmed' => 'Utilisateur : :username(ID: :user_id) non confirmé.',
];