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' => 'Ver propiedades',
'subject_type' => 'Modelo',
'subject_id' => 'ID del modelo',
];
+2
View File
@@ -47,6 +47,8 @@ return [
'queue_monitor' => 'Monitor de cola',
'user_modify_logs' => 'Usuario modificar registros',
'message_templates' => 'Plantillas de mensaje',
'tracker_url' => 'URL del rastreador',
'activity_logs' => 'Registros de actividad',
],
'resources' => [
'agent_allow' => [
+9
View File
@@ -21,7 +21,10 @@ return [
\App\Models\BonusLogs::BUSINESS_TYPE_BUY_CHANGE_USERNAME_CARD => 'Comprar cambio de nombre de usuario',
\App\Models\BonusLogs::BUSINESS_TYPE_GIFT_MEDAL => 'Medalla de regalo',
\App\Models\BonusLogs::BUSINESS_TYPE_BUY_TORRENT => 'Comprar torrent',
\App\Models\BonusLogs::BUSINESS_TYPE_TASK_PASS_REWARD => 'Recompensa de tarea terminada',
\App\Models\BonusLogs::BUSINESS_TYPE_TASK_NOT_PASS_DEDUCT => 'Deducto sin terminar',
\App\Models\BonusLogs::BUSINESS_TYPE_REWARD_TORRENT => 'Recompensa torrent',
\App\Models\BonusLogs::BUSINESS_TYPE_CLAIMED_UNREACHED => 'Torrent reclamado sin alcanzar',
\App\Models\BonusLogs::BUSINESS_TYPE_ROLE_WORK_SALARY => 'Salario de trabajo del rol',
\App\Models\BonusLogs::BUSINESS_TYPE_TORRENT_BE_DOWNLOADED => 'Torrent descargado',
@@ -29,6 +32,7 @@ return [
\App\Models\BonusLogs::BUSINESS_TYPE_RECEIVE_GIFT => 'Recibir regalo',
\App\Models\BonusLogs::BUSINESS_TYPE_UPLOAD_TORRENT => 'Subir torrent',
\App\Models\BonusLogs::BUSINESS_TYPE_TORRENT_BE_REWARD => 'Recompensa de recibir torrent',
\App\Models\BonusLogs::BUSINESS_TYPE_CLAIMED_REACHED => 'Recompensa alcanzada por torrent reclamado',
\App\Models\BonusLogs::BUSINESS_TYPE_SEEDING_BASIC => 'Sembrando básico',
\App\Models\BonusLogs::BUSINESS_TYPE_SEEDING_DONOR_ADDITION => 'Suma de donantes sembrando',
@@ -43,4 +47,9 @@ return [
'new_total_value' => 'Valor Post-trade',
],
'exclude_seeding_bonus' => 'Excluir bono de siembra',
'title_for_user' => 'Detalles de bonus de usuario',
'category' => 'Categoría',
'category_common' => 'Común',
'category_seeding' => 'Sembrando',
'view_detail' => 'Detalles',
];
+12
View File
@@ -0,0 +1,12 @@
<?php
return [
'type' => [
'text' => 'Texto corto',
'textarea' => 'Texto largo',
'radio' => 'Selección única horizontal',
'checkbox' => 'Selección múltiple horizontal',
'select' => 'Selección única vertical',
'image' => 'Imagen',
],
];
+4
View File
@@ -8,5 +8,9 @@ return [
'post' => [
'edited_notify_subject' => 'La respuesta del mensaje fue modificada',
'edited_notify_body' => 'Tu respuesta al tema: :topic_subject fue modificada por: :editor.',
],
'reply' => [
'replied_notify_subject' => 'Tu respuesta tiene una nueva respuesta',
'replied_notify_body' => 'Tu respuesta al tema:topic_subject fue respondida por :replyer.',
]
];
+1
View File
@@ -11,6 +11,7 @@ return [
'mode_' . \App\Models\HitAndRun::MODE_GLOBAL => 'Global',
'reached_by_seed_time_comment' => 'Hasta:ahora,tiempo de semilla: :seed_time Hora(s) alcanzó :seed_time_minimum Hora(s)',
'reached_by_leech_time_comment' => 'Hasta:now,leech time: :leech_time Hora(s) alcanzó :leech_time_minimum Hora(s)',
'reached_by_share_ratio_comment' => "Hasta:now \nhora de semilla: :seed_time Hora(s) Unreached :seed_time_minimum Hora(s) \nRatio de comisión: :share_ratio alcanzó el estándar:ignore_when_ratio_reach",
'reached_by_special_user_class_comment' => "Tu clase de usuario: :user_class_text o usuario donado, ignora este H&R",
'reached_message_subject' => 'H&R(ID: :hit_and_run_id) alcanzado!',
+12
View File
@@ -0,0 +1,12 @@
<?php
return [
'label' => 'Historial de IP',
'access' => 'Tiempo de acceso',
'access_begin' => 'Hora de acceso',
'access_end' => 'Fin de tiempo de acceso',
'access_tooltip' => 'El tiempo real era dentro de una hora antes de esto.',
'uri' => 'URI',
'count' => 'Contador',
'ip_location' => 'Ubicación',
];
+12
View File
@@ -0,0 +1,12 @@
<?php
return [
'label' => 'Búsqueda IP',
'placeholder' => 'Introduzca la IP para buscar; de lo contrario los resultados estarán vacíos',
'last_access_ip' => 'Última IP',
'last_access' => 'Último acceso',
'ip_count' => 'Número de IP',
'ip_last_access' => 'Último acceso a esta IP',
'user_added' => 'Tiempo de unión',
'invited_by' => 'Invitado por',
];
+81
View File
@@ -48,6 +48,8 @@ return [
'text_code' => "CÓDIGO",
'language' => 'Idioma',
'content' => 'Contenido',
'is_default' => 'Por defecto',
'bulk' => 'Masivo',
'setting' => [
'nav_text' => 'Ajustes',
'backup' => [
@@ -80,6 +82,8 @@ return [
'inspect_time_help' => 'La duración del examen se calcula a partir de la finalización de la descarga, en horas',
'seed_time_minimum' => 'Tiempo mínimo de semilla',
'seed_time_minimum_help' => 'El tiempo más corto para hacer las semillas para cumplir con el estándar, en horas, debe ser menor que la longitud de la expedición',
'leech_time_minimum' => 'Tiempo mínimo de leech (sin seeder)',
'leech_time_minimum_help' => 'El tiempo mínimo de descarga requerido para cumplir con el estándar cuando no hay seeder, en horas, debe ser menor que la longitud de la expedición. Establecer en 0 para desactivar',
'ignore_when_ratio_reach' => 'Velocidad de intercambio de logros',
'ignore_when_ratio_reach_help' => 'La tasa mínima de intercambio para cumplir con el estándar',
'ban_user_when_counts_reach' => 'Límite de conteos H&R',
@@ -99,6 +103,52 @@ return [
'max_uploaded_duration' => 'Intervalo de tiempo efectivo del multiplicador de volumen de subida',
'max_uploaded_duration_help' => 'Unidad: horas. El multiplicador máximo de volumen de subida tiene efecto dentro de este intervalo de tiempo después de que el torrent sea publicado, y no tiene efecto más allá de este rango. Un ajuste de 0 siempre está en efecto',
],
'captcha' => [
'tab_header' => 'Captcha',
'driver' => 'Controlador Captcha',
'driver_help' => 'Elija qué mecanismo de verificación se muestra en los formularios públicos.',
'drivers' => [
'image' => 'Captcha de imagen integrada',
'cloudflare_turnstile' => 'Turnstil de cloudflare',
'google_recaptcha_v2' => 'Google reCAPTCHA v2',
],
'turnstile' => [
'section' => 'Turnstil de cloudflare',
'site_key' => 'Clave del sitio',
'site_key_help' => 'Copiado desde el panel de giro de cloudflare.',
'secret_key' => 'Clave secreta',
'secret_key_help' => 'Mantener este valor privado.',
'theme' => 'Tema',
'theme_help' => 'Se adapta automáticamente cuando se establece a Auto.',
'theme_auto' => 'Auto',
'theme_light' => 'Claro',
'theme_dark' => 'Oscuro',
'size' => 'Tamaño del widget',
'size_help' => 'estiramientos flexibles para que coincidan con la anchura del contenedor.',
'size_normal' => 'Normal',
'size_compact' => 'Compacto',
'size_flexible' => 'Flexible',
],
'recaptcha' => [
'section' => 'Google reCAPTCHA v2',
'site_key' => 'Clave del sitio',
'site_key_help' => 'Proporcionado por la consola de administración de reCAPTCHA de Google.',
'secret_key' => 'Clave secreta',
'secret_key_help' => 'Mantener este valor privado.',
'theme' => 'Tema',
'theme_help' => 'Usa la oscuridad cuando tu sitio corre una paleta oscura.',
'theme_light' => 'Claro',
'theme_dark' => 'Oscuro',
'size' => 'Tamaño del widget',
'size_help' => 'El pacto es adecuado para diseños estrechos.',
'size_normal' => 'Normal',
'size_compact' => 'Compacto',
],
'attendance' => [
'enabled' => 'Requiere captcha para el registro de asistencia',
'enabled_help' => 'Cuando está activado, los miembros deben resolver el captcha antes de iniciar sesión.',
],
],
'meilisearch' => [
'tab_header' => 'Búsqueda de Meilis',
'enabled' => 'Activar o no MeilisInvestigación',
@@ -122,6 +172,11 @@ return [
'access_admin_class_min_help' => 'Por defecto: el administrador, los usuarios con una clase de usuario mayor o igual al valor establecido pueden iniciar sesión en el administrador',
'alarm_email_receiver' => 'Receptor de correo de alarma',
'alarm_email_receiver_help' => "Rellene el UID del usuario, separado por espacio, y el correo electrónico de alarma se enviará a la dirección de correo electrónico del usuario correspondiente. Si no lo completa, se escribirá en el registro de tiempo de ejecución, y el nivel de registro será un error",
'is_record_announce_log' => 'Registrar registros de anuncios',
'is_record_announce_log_help' => 'Para registrar registros, primero instale ClickHouse de acuerdo a la documentación y habilite esta configuración. Por defecto: no hay',
'is_record_seeding_bonus_log' => 'Registrar registros de bonus de siembra',
'is_record_seeding_bonus_log_help' => 'Para grabar, primero instale ClickHouse de acuerdo a la documentación y habilite esta configuración. Por defecto: no hay',
],
'image_hosting' => [
'driver' => 'Ubicación de almacenamiento',
@@ -155,6 +210,7 @@ return [
'parked' => 'Parqueado',
'offer_allowed_count' => 'Número de ofertas permitidas',
'tmp_invites' => 'Invitación temporal',
'is_donating' => 'Donante',
],
'medal' => [
'label' => 'Medalla',
@@ -272,6 +328,17 @@ return [
'torrent_state' => [
'label' => 'Promoción global',
'global_sp_state' => 'Estado de promoción global',
'deadline_after_begin' => 'La hora de finalización debe ser posterior a la hora de inicio.',
'status' => 'Estado',
'status_expired' => 'Caducó',
'status_ongoing' => 'En progreso',
'status_upcoming' => 'Próximamente',
'time_overlaps' => 'El tiempo se superpone con otra promoción. Por favor, ajuste la ventana.',
'time_overlaps_with' => 'Sobrelo con el ID de promoción :id (tiempo: :begin ~ :end).',
'notice_days' => 'Pre-anuncio',
'notice_day' => ':days día antes',
'notice_none' => 'Sin pre-anuncio',
'notice_unlimited' => 'Anunciar siempre',
],
'role' => [
'class' => 'Relacionar clase de usuario',
@@ -389,4 +456,18 @@ Nota: En 1. , la parte 'searchbox_name' puede ser omitida, es decir, la regla es
'select_section' => 'Selecciones',
'select_section_help' => "Si una selección no está definida, todas las opciones de la selección están permitidas para la regla. Al menos una selección debe ser definida.",
],
'field' => [
'label' => 'Campo personalizado',
'name' => 'Nombre',
'name_help' => 'Permitir solo dígitos, alfabeto, subrayado',
'field_label' => 'Mostrar etiqueta',
'type' => 'Tipo',
'required' => 'Requerido',
'mod_only' => 'Mod only',
'help' => 'Texto de ayuda',
'options' => 'Opciones',
'options_help' => 'Requerido cuando el tipo es radio, casilla, selección. Una línea, una opción, formato: valor|mostrar texto',
'is_single_row' => 'Mostrar en una sola fila',
'display' => 'Pantalla personalizada',
]
];
+20
View File
@@ -32,6 +32,8 @@ return [
'gift_fee_factor' => 'Factor de tarifa de regalo',
'gift_fee' => 'Gasto de regalo',
'gift_fee_factor_help' => 'El cargo adicional por regalos para otros usuarios es igual al precio multiplicado por este factor',
'bonus_addition_duration' => 'Duración de adición de bonus',
'bonus_addition_duration_help' => 'Unidad: días. Establecer a 0 para efecto permanente. Cuenta desde el momento de la adquisición, independientemente de si está equipado o no',
],
'buy_already' => 'Comprar',
'buy_btn' => 'Comprar',
@@ -48,4 +50,22 @@ return [
0 => 'Vestido',
1 => 'Sin usar'
],
'bonus_addition_expire_at' => 'Tiempo de caducidad de adición adicional',
'is_expired' => 'Está caducado',
'is_bonus_addition_expired' => 'Ha expirado la adición de bonus',
'is_wearing' => 'Está usando',
'increase_duration' => 'Aumentar duración',
'increase_duration_help' => 'Unidad: días. Uniformemente prolonga el tiempo de caducidad desde el valor original',
'update_expire_at' => 'Establecer tiempo de caducidad',
'update_expire_at_help' => 'Establecer uniformemente el tiempo de caducidad a un valor especificado',
'bulk_action_increase' => 'Aumentar',
'bulk_action_update' => 'Actualizar',
'bulk_action_cancel' => 'Cancelar',
'bulk_action_increase_expire_at' => 'Aumentar en masa el tiempo de caducidad',
'bulk_action_update_expire_at' => 'Tiempo de expiración de actualización masiva',
'bulk_action_cancel_expire_at' => 'Tiempo de caducidad de la cancelación masiva',
'bulk_action_increase_bonus_addition_expire_at' => 'Tiempo de expiración de la adición de bonificación masiva',
'bulk_action_update_bonus_addition_expire_at' => 'Tiempo de expiración de bonificación de actualización masiva',
'bulk_action_cancel_bonus_addition_expire_at' => 'Tiempo de expiración de bonus de cancelación masiva',
];
+4
View File
@@ -23,6 +23,10 @@ return [
'subject' => 'Permiso de descarga cancelado',
'body' => 'Tu permiso de descarga ha sido cancelado debido a que has anunciado que pagas el torrent demasiadas veces, por favor asegúrate de tener suficiente bono.' ,
],
'download_disable_fake_announce' => [
'subject' => 'Permiso de descarga cancelado',
'body' => 'Tu permiso de descarga ha sido cancelado debido a que anuncias datos falsos.',
],
'download_enable' => [
'subject' => 'Permiso de descarga restaurado',
'body' => 'Tus privilegios de descarga han sido restaurados, ahora puedes descargar torrents. Por: :operator',
+2
View File
@@ -14,4 +14,6 @@ return [
'msg_you_must_upload_in' => "Por favor, sube la oferta dentro de ",
'msg_hours_otherwise' => " horas. De lo contrario, la oferta se eliminaría.",
'msg_reason_is' => "La razón: ",
'msg_new_offer_subject' => "Se ha añadido una nueva oferta",
'msg_new_offer_msg' => "Usuario :username ha añadido una nueva oferta :offername",
];
+21 -2
View File
@@ -3,6 +3,25 @@
declare(strict_types=1);
return [
'next' => 'Siguiente &raquo;',
'previous' => '&laquo; Anterior',
'aria' => [
'sortAscending' => ': activar para ordenar la columna ascendente',
'sortDescending' => ': activar para ordenar la columna descendente',
],
'emptyTable' => 'No hay datos disponibles en la tabla',
'info' => 'Mostrando _START_ a _END_ de _TOTAL_ entradas',
'infoEmpty' => 'Mostrando 0 a 0 de 0 entradas',
'infoFiltered' => '(filtrado de _MAX_ entradas totales)',
'lengthMenu' => 'Mostrar _MENU_ entradas',
'loadingRecords' => 'Cargando...',
'next' => 'Siguiente &raquo;',
'paginate' => [
'first' => 'Primero',
'last' => 'Última',
'next' => 'Siguiente',
'previous' => 'Anterior',
],
'previous' => '&laquo; Anterior',
'search' => 'Buscar:',
'thousands' => ',',
'zeroRecords' => 'No hay registros coincidentes',
];
+22
View File
@@ -0,0 +1,22 @@
<?php
return [
'passkey_title' => 'Clave',
'passkey' => 'Clave',
'passkey_desc' => 'Passkey es una forma segura y conveniente de autenticarse sin necesidad de contraseñas. Pueden utilizarse en múltiples dispositivos.',
'passkey_create' => 'Crear clave de acceso',
'passkey_empty' => 'Clave no encontrada.',
'passkey_created_at' => 'Creado en:',
'passkey_delete_confirm' => '¿Está seguro que desea eliminar esta contraseña? Esta acción no se puede deshacer.',
'passkey_delete' => 'Eliminar',
'passkey_unknown' => 'Se ha producido un error al procesar su solicitud.',
'passkey_invalid' => 'Datos de clave de acceso inválidos.',
'passkey_timeout' => 'Tiempo de espera de operación, por favor inténtelo de nuevo.',
'passkey_error' => 'Se ha producido un error al procesar su solicitud. Por favor, inténtelo de nuevo más tarde.',
'passkey_user_not_found' => 'Usuario no encontrado.',
'passkey_not_supported' => 'Su navegador no es compatible con la contraseña. Por favor, utilice un navegador moderno para crear y administrar su contraseña.',
'fields' => [
'credential_id' => 'ID de credencial',
'counter' => 'Contador',
],
];
+4 -4
View File
@@ -4,8 +4,8 @@ declare(strict_types=1);
return [
'reset' => 'Su contraseña ha sido restablecida.',
'sent' => 'Le hemos enviado por correo electrónico el enlace para restablecer su contraseña.',
'throttled' => 'Por favor espere antes de intentar de nuevo.',
'token' => 'El token de restablecimiento de contraseña es inválido.',
'user' => 'No encontramos ningún usuario con ese correo electrónico.',
'sent' => 'Hemos enviado por correo electrónico tu enlace para restablecer tu contraseña.',
'throttled' => 'Por favor, espere antes de reintentar.',
'token' => 'Este token de restablecimiento de contraseña no es válido.',
'user' => 'No podemos encontrar un usuario con esa dirección de correo electrónico.',
];
+19
View File
@@ -86,6 +86,20 @@ return [
'logs_label' => 'Registros de aprobación'
],
'show_hide_media_info' => 'Mostrar/Ocultar MediaInfo Cruda',
'show_hide_bd_info' => 'Mostrar / Ocultar BDInfo crudo',
'collapse_show_more_audio' => 'Colapso/Expande más pistas de audio',
'collapse_show_more_subtitles' => 'Colapso/Expandir más subtítulos',
'technicalinfo_duration' => 'Duración',
'technicalinfo_resolution' => 'Resolución',
'technicalinfo_bit_rate' => 'Tasa de bits',
'technicalinfo_bit_depth' => 'Profundidad Bit',
'technicalinfo_frame_rate' => 'Tasa de fotogramas',
'technicalinfo_profile' => 'Perfil',
'technicalinfo_format' => 'Formatear',
'technicalinfo_extras' => 'Extras',
'technicalinfo_ref_frames' => 'Ref.fotogramas',
'technicalinfo_audio' => 'Audio #',
'technicalinfo_subtitles' => 'Subtítulos #',
'promotion_time_types' => [
\App\Models\Torrent::PROMOTION_TIME_TYPE_GLOBAL => 'Global',
\App\Models\Torrent::PROMOTION_TIME_TYPE_PERMANENT => 'Permanente',
@@ -107,4 +121,9 @@ return [
'msg_here' => " [b]aquí[/b]",
'msg_offer' => "Oferta ",
'msg_blank' => ".",
'require_seed_section_menu_title' => 'Requiere Semilla',
'imdb_cache_dir_can_not_create' => 'el directorio de caché imdb no puede crear',
'imdb_cache_dir_is_not_writeable' => 'no se puede escribir en el directorio de caché imdb',
'imdb_photo_dir_can_not_create' => 'imdb photo dir no puede crear',
'imdb_photo_dir_is_not_writeable' => 'no se puede escribir en el directorio imdb',
];
+5 -3
View File
@@ -17,10 +17,10 @@ return [
'attendance_card' => 'Asistir tarjeta',
'props' => 'Props',
'class' => 'Clase',
'vip_added' => 'El estado VIP se obtiene por bonus',
'vip_added_help' => 'Es el estado VIP canjeado por bono.',
'vip_added' => 'Estado VIP auto expiración',
'vip_added_help' => 'El estado VIP expira automáticamente.',
'vip_until' => 'Hora final del estado VIP',
'vip_until_help' => "El formato de hora es 'Año-Año-Mes Hora:Minuta:Segunda La hora cuando el estado VIP termina. El estatus VIP se obtiene mediante bonificación\" debe establecerse a \"\" para que esta regla surta efecto.",
'vip_until_help' => "El formato de hora es 'Año-Año-Mes Hora:Minuta:Segunda La hora cuando el estado VIP termina. El estado VIP auto expiración debe establecerse en \"\" para que esta regla surta efecto.",
],
'class_names' => [
\App\Models\User::CLASS_VIP => 'Vip',
@@ -109,4 +109,6 @@ return [
'msg_invited_user_has_registered' => "El usuario invitado se ha registrado",
'msg_user_you_invited' => "El usuario que invitaste ",
'msg_has_registered' => " se acaba de registrar.",
'user_is_disabled' => 'Usuario: :username(ID: :user_id) está deshabilitado.',
'user_is_not_confirmed' => 'Usuario: :username(ID: :user_id) no confirmado.',
];