Browse Source

Update Translation strings

BrettonYe 2 years ago
parent
commit
db2c053382
54 changed files with 862 additions and 3394 deletions
  1. 1 0
      config/common.php
  2. 0 0
      public/vendor/horizon/app.js
  3. 1 1
      public/vendor/horizon/mix-manifest.json
  4. 0 0
      public/vendor/telescope/app-dark.css
  5. 0 0
      public/vendor/telescope/app.css
  6. 0 0
      public/vendor/telescope/app.js
  7. 3 3
      public/vendor/telescope/mix-manifest.json
  8. 39 0
      resources/lang/de.json
  9. 84 0
      resources/lang/de/http-statuses.php
  10. 8 0
      resources/lang/de/pagination.php
  11. 23 0
      resources/lang/de/user.php
  12. 217 0
      resources/lang/de/validation.php
  13. 18 33
      resources/lang/en.json
  14. 18 18
      resources/lang/en/admin.php
  15. 3 2
      resources/lang/en/common.php
  16. 1 0
      resources/lang/en/validation.php
  17. 39 0
      resources/lang/fa.json
  18. 84 0
      resources/lang/fa/http-statuses.php
  19. 8 0
      resources/lang/fa/pagination.php
  20. 217 0
      resources/lang/fa/validation.php
  21. 18 33
      resources/lang/ja.json
  22. 5 5
      resources/lang/ja/admin.php
  23. 5 4
      resources/lang/ja/common.php
  24. 1 1
      resources/lang/ja/model.php
  25. 2 2
      resources/lang/ja/user.php
  26. 1 0
      resources/lang/ja/validation.php
  27. 14 40
      resources/lang/ko.json
  28. 0 800
      resources/lang/ko/admin.php
  29. 0 100
      resources/lang/ko/auth.php
  30. 0 147
      resources/lang/ko/common.php
  31. 0 32
      resources/lang/ko/errors.php
  32. 0 230
      resources/lang/ko/model.php
  33. 0 35
      resources/lang/ko/notification.php
  34. 0 235
      resources/lang/ko/user.php
  35. 1 0
      resources/lang/ko/validation.php
  36. 4 36
      resources/lang/vi.json
  37. 0 800
      resources/lang/vi/admin.php
  38. 0 100
      resources/lang/vi/auth.php
  39. 0 147
      resources/lang/vi/common.php
  40. 0 32
      resources/lang/vi/errors.php
  41. 0 230
      resources/lang/vi/model.php
  42. 0 35
      resources/lang/vi/notification.php
  43. 0 235
      resources/lang/vi/user.php
  44. 1 0
      resources/lang/vi/validation.php
  45. 20 34
      resources/lang/zh_CN.json
  46. 2 2
      resources/lang/zh_CN/admin.php
  47. 1 0
      resources/lang/zh_CN/common.php
  48. 2 1
      resources/lang/zh_CN/validation.php
  49. 1 1
      resources/views/admin/logs/userBanHistory.blade.php
  50. 4 4
      resources/views/admin/logs/userMonitor.blade.php
  51. 4 4
      resources/views/admin/node/monitor.blade.php
  52. 3 3
      resources/views/admin/report/userDataAnalysis.blade.php
  53. 2 2
      resources/views/auth/maintenance.blade.php
  54. 7 7
      resources/views/user/index.blade.php

+ 1 - 0
config/common.php

@@ -76,6 +76,7 @@ return [
     'language' => [
         'zh_CN' => ['简体中文', 'cn'],
         'en' => ['English', 'us'],
+        'ja' => ['日本語', 'jp'],
         'ko' => ['한국어', 'kr'],
         'vi' => ['Tiếng Việt', 'vn'],
     ],

File diff suppressed because it is too large
+ 0 - 0
public/vendor/horizon/app.js


+ 1 - 1
public/vendor/horizon/mix-manifest.json

@@ -1,5 +1,5 @@
 {
-    "/app.js": "/app.js?id=45904d8bd75c65ee5c136a52a5e8ead6",
+    "/app.js": "/app.js?id=7e1968acfd75b8dc843675097962e3ce",
     "/app-dark.css": "/app-dark.css?id=15c72df05e2b1147fa3e4b0670cfb435",
     "/app.css": "/app.css?id=4d6a1a7fe095eedc2cb2a4ce822ea8a5",
     "/img/favicon.png": "/img/favicon.png?id=1542bfe8a0010dcbee710da13cce367f",

File diff suppressed because it is too large
+ 0 - 0
public/vendor/telescope/app-dark.css


File diff suppressed because it is too large
+ 0 - 0
public/vendor/telescope/app.css


File diff suppressed because it is too large
+ 0 - 0
public/vendor/telescope/app.js


+ 3 - 3
public/vendor/telescope/mix-manifest.json

@@ -1,5 +1,5 @@
 {
-    "/app.js": "/app.js?id=65e09ad17337bc012e95e6a52546ec50",
-    "/app-dark.css": "/app-dark.css?id=b44bf369e5d39f6861be639ef866bf5a",
-    "/app.css": "/app.css?id=41c5661581f2614180d6d33c17470f08"
+    "/app.js": "/app.js?id=743dfad5fd68f166e4d683df8449c953",
+    "/app-dark.css": "/app-dark.css?id=a9022d8e130bf3ec3a93350be9bf858e",
+    "/app.css": "/app.css?id=b89676ee10846bfd767c6836074db724"
 }

+ 39 - 0
resources/lang/de.json

@@ -0,0 +1,39 @@
+{
+    "(and :count more error)": "(und :count weiterer Fehler)",
+    "(and :count more errors)": "(und :count weitere Fehler)",
+    "All rights reserved.": "Alle Rechte vorbehalten.",
+    "Forbidden": "Verboten",
+    "Go to page :page": "Gehe zur Seite :page",
+    "Hello!": "Hallo!",
+    "If you did not create an account, no further action is required.": "Wenn Sie kein Konto erstellt haben, sind keine weiteren Handlungen nötig.",
+    "If you did not request a password reset, no further action is required.": "Wenn Sie kein Zurücksetzen des Passworts beantragt haben, sind keine weiteren Handlungen nötig.",
+    "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "Sollten Sie Schwierigkeiten haben, die Schaltfläche \":actionText\" zu klicken, kopieren Sie den nachfolgenden Link\n in Ihre Adresszeile des Browsers.",
+    "Invalid JSON was returned from the route.": "Von der Route wurde ein ungültiger JSON-Code zurückgegeben.",
+    "Login": "Anmelden",
+    "Logout": "Abmelden",
+    "Not Found": "Nicht gefunden",
+    "of": "von",
+    "Page Expired": "Seite abgelaufen",
+    "Pagination Navigation": "Seitennummerierungsnavigation",
+    "Payment Required": "Zahlung erforderlich",
+    "Please click the button below to verify your email address.": "Bitte klicken Sie auf die Schaltfläche, um Ihre E-Mail-Adresse zu bestätigen.",
+    "Regards": "Mit freundlichen Grüßen",
+    "Register": "Registrieren",
+    "Reset Password": "Passwort zurücksetzen",
+    "Reset Password Notification": "Benachrichtigung zum Zurücksetzen des Passworts",
+    "results": "Ergebnisse",
+    "Server Error": "Interner Fehler",
+    "Service Unavailable": "Service nicht verfügbar",
+    "Showing": "Zeigen",
+    "The given data was invalid.": "Die gegebenen Daten waren ungültig.",
+    "The response is not a streamed response.": "Die Antwort ist keine gestreamte Antwort.",
+    "The response is not a view.": "Die Antwort ist keine Ansicht.",
+    "This password reset link will expire in :count minutes.": "Dieser Link zum Zurücksetzen des Passworts läuft in :count Minuten ab.",
+    "to": "bis",
+    "Toggle navigation": "Navigation umschalten",
+    "Too Many Requests": "Zu viele Anfragen",
+    "Unauthorized": "Nicht autorisiert",
+    "Verify Email Address": "E-Mail-Adresse bestätigen",
+    "Whoops!": "Ups!",
+    "You are receiving this email because we received a password reset request for your account.": "Sie erhalten diese E-Mail, weil wir einen Antrag auf eine Zurücksetzung Ihres Passworts bekommen haben."
+}

+ 84 - 0
resources/lang/de/http-statuses.php

@@ -0,0 +1,84 @@
+<?php
+
+declare(strict_types=1);
+
+return [
+    '0' => 'Unbekannter Fehler',
+    '100' => 'Weiter',
+    '101' => 'Schaltprotokolle',
+    '102' => 'Verarbeitung',
+    '200' => 'OK',
+    '201' => 'Erstellt',
+    '202' => 'Akzeptiert',
+    '203' => 'Nicht maßgebende Informationen',
+    '204' => 'Kein Inhalt',
+    '205' => 'Inhalt zurücksetzen',
+    '206' => 'Teilinhalt',
+    '207' => 'Multi-Status',
+    '208' => 'Bereits gemeldet',
+    '226' => 'IM verwendet',
+    '300' => 'Mehrfachauswahl',
+    '301' => 'Permanent verschoben',
+    '302' => 'Gefunden',
+    '303' => 'Andere sehen',
+    '304' => 'Nicht modifiziert',
+    '305' => 'Proxy verwenden',
+    '307' => 'Temporäre Weiterleitung',
+    '308' => 'Permanente Weiterleitung',
+    '400' => 'Schlechte Anfrage',
+    '401' => 'Nicht autorisiert',
+    '402' => 'Zahlung erforderlich',
+    '403' => 'Verboten',
+    '404' => 'Seite nicht gefunden',
+    '405' => 'Methode nicht erlaubt',
+    '406' => 'Nicht annehmbar',
+    '407' => 'Proxy-Authentifizierung erforderlich',
+    '408' => 'Zeitüberschreitung anfordern',
+    '409' => 'Konflikt',
+    '410' => 'Gegangen',
+    '411' => 'Länge erforderlich',
+    '412' => 'Vorbedingung fehlgeschlagen',
+    '413' => 'Nutzlast zu groß',
+    '414' => 'URI zu lang',
+    '415' => 'Nicht unterstützter Medientyp',
+    '416' => 'Bereich nicht erfüllbar',
+    '417' => 'Erwartung gescheitert',
+    '418' => 'Ich bin eine Teekanne',
+    '419' => 'Sitzung ist abgelaufen',
+    '421' => 'Fehlgeleitete Anfrage',
+    '422' => 'Unverfügbare Entität',
+    '423' => 'Gesperrt',
+    '424' => 'Fehlgeschlagene Abhängigkeit',
+    '425' => 'Zu früh',
+    '426' => 'Upgrade erforderlich',
+    '428' => 'Voraussetzung erforderlich',
+    '429' => 'Zu viele Anfragen',
+    '431' => 'Kopfzeilenfelder zu groß anfordern',
+    '444' => 'Verbindung ohne Antwort geschlossen',
+    '449' => 'Wiederhole mit',
+    '451' => 'Aus rechtlichen Gründen nicht verfügbar',
+    '499' => 'Client-Closed-Request',
+    '500' => 'Interner Serverfehler',
+    '501' => 'Nicht implementiert',
+    '502' => 'Schlechtes Tor',
+    '503' => 'Wartungsmodus',
+    '504' => 'Gateway-Zeitüberschreitung',
+    '505' => 'HTTP Version nicht unterstützt',
+    '506' => 'Variante verhandelt auch',
+    '507' => 'Ungenügende Speicherung',
+    '508' => 'Schleife erkannt',
+    '509' => 'Bandbreitengrenze überschritten',
+    '510' => 'Nicht erweitert',
+    '511' => 'Netzwerkauthentifizierung erforderlich',
+    '520' => 'Unbekannter Fehler',
+    '521' => 'Webserver ist ausgefallen',
+    '522' => 'Verbindung abgelaufen',
+    '523' => 'Ursprung ist nicht erreichbar',
+    '524' => 'Ein Timeout ist aufgetreten',
+    '525' => 'SSL Handshake fehlgeschlagen',
+    '526' => 'Ungültiges SSL-Zertifikat',
+    '527' => 'Railgun-Fehler',
+    '598' => 'Zeitüberschreitungsfehler beim Lesen des Netzwerks',
+    '599' => 'Zeitüberschreitungsfehler bei Netzwerkverbindung',
+    'unknownError' => 'Unbekannter Fehler',
+];

+ 8 - 0
resources/lang/de/pagination.php

@@ -0,0 +1,8 @@
+<?php
+
+declare(strict_types=1);
+
+return [
+    'next' => 'Weiter &raquo;',
+    'previous' => '&laquo; Zurück',
+];

+ 23 - 0
resources/lang/de/user.php

@@ -0,0 +1,23 @@
+<?php
+
+return [
+    'account' => [
+        'credit' => 'Guthaben',
+        'status' => 'Status',
+        'level' => 'Level',
+        'group' => 'Gruppe',
+        'speed_limit' => 'Geschwindigkeitsbegrenzung',
+        'remain' => 'Verbleibende Daten',
+        'time' => 'Paketgültigkeit',
+        'last_login' => 'Letzte Anmeldung',
+        'reset' => '{0}Daten werden in <code id=“restTime”>:days</code> zurückgesetzt|{1} Daten werden in :days Tag zurückgesetzt|restTime|[2,*] Daten werden in :days Tagen zurückgesetzt',
+        'connect_password' => 'Proxy-Verbindungspasswort',
+        'reason' => [
+            'normal' => 'Normal',
+            'expired' => 'Abgelaufen',
+            'overused' => 'Sie haben das <code>:data</code> GB stündliche Datennutzungslimit erreicht<br/> Warten Sie <code id=“banedTime”>:min</code>, um sich abzukühlen',
+            'traffic_exhausted' => 'KEINE DATEN MEHR',
+            'unknown' => 'UNBEKANNTER FEHLER, Bitte versuchen Sie zuerst, Ihren Browser zu aktualisieren, bevor Sie sich an den Administrator wenden',
+        ],
+    ],
+];

+ 217 - 0
resources/lang/de/validation.php

@@ -0,0 +1,217 @@
+<?php
+
+declare(strict_types=1);
+
+return [
+    'accepted' => ':Attribute muss akzeptiert werden.',
+    'accepted_if' => ':Attribute muss akzeptiert werden, wenn :other :value ist.',
+    'active_url' => ':Attribute ist keine gültige Internet-Adresse.',
+    'after' => ':Attribute muss ein Datum nach :date sein.',
+    'after_or_equal' => ':Attribute muss ein Datum nach :date oder gleich :date sein.',
+    'alpha' => ':Attribute darf nur aus Buchstaben bestehen.',
+    'alpha_dash' => ':Attribute darf nur aus Buchstaben, Zahlen, Binde- und Unterstrichen bestehen.',
+    'alpha_num' => ':Attribute darf nur aus Buchstaben und Zahlen bestehen.',
+    'array' => ':Attribute muss ein Array sein.',
+    'ascii' => 'Die :attribute darf nur alphanumerische Single-Byte-Zeichen und -Symbole enthalten.',
+    'before' => ':Attribute muss ein Datum vor :date sein.',
+    'before_or_equal' => ':Attribute muss ein Datum vor :date oder gleich :date sein.',
+    'between' => [
+        'array' => ':Attribute muss zwischen :min & :max Elemente haben.',
+        'file' => ':Attribute muss zwischen :min & :max Kilobytes groß sein.',
+        'numeric' => ':Attribute muss zwischen :min & :max liegen.',
+        'string' => ':Attribute muss zwischen :min & :max Zeichen lang sein.',
+    ],
+    'boolean' => ':Attribute muss entweder \'true\' oder \'false\' sein.',
+    'can' => 'Das Feld :attribute enthält einen nicht autorisierten Wert.',
+    'confirmed' => ':Attribute stimmt nicht mit der Bestätigung überein.',
+    'current_password' => 'Das Passwort ist falsch.',
+    'date' => ':Attribute muss ein gültiges Datum sein.',
+    'date_equals' => ':Attribute muss ein Datum gleich :date sein.',
+    'date_format' => ':Attribute entspricht nicht dem gültigen Format für :format.',
+    'decimal' => 'Die :attribute muss :decimal Dezimalstellen haben.',
+    'declined' => ':Attribute muss abgelehnt werden.',
+    'declined_if' => ':Attribute muss abgelehnt werden wenn :other :value ist.',
+    'different' => ':Attribute und :other müssen sich unterscheiden.',
+    'digits' => ':Attribute muss :digits Stellen haben.',
+    'digits_between' => ':Attribute muss zwischen :min und :max Stellen haben.',
+    'dimensions' => ':Attribute hat ungültige Bildabmessungen.',
+    'distinct' => ':Attribute beinhaltet einen bereits vorhandenen Wert.',
+    'doesnt_end_with' => ':Attribute darf nicht mit einem der folgenden enden: :values.',
+    'doesnt_start_with' => ':Attribute darf nicht mit einem der folgenden beginnen: :values.',
+    'email' => ':Attribute muss eine gültige E-Mail-Adresse sein.',
+    'ends_with' => ':Attribute muss eine der folgenden Endungen aufweisen: :values',
+    'enum' => 'Der ausgewählte Wert ist ungültig.',
+    'exists' => 'Der gewählte Wert für :attribute ist ungültig.',
+    'file' => ':Attribute muss eine Datei sein.',
+    'filled' => ':Attribute muss ausgefüllt sein.',
+    'gt' => [
+        'array' => ':Attribute muss mehr als :value Elemente haben.',
+        'file' => ':Attribute muss größer als :value Kilobytes sein.',
+        'numeric' => ':Attribute muss größer als :value sein.',
+        'string' => ':Attribute muss länger als :value Zeichen sein.',
+    ],
+    'gte' => [
+        'array' => ':Attribute muss mindestens :value Elemente haben.',
+        'file' => ':Attribute muss größer oder gleich :value Kilobytes sein.',
+        'numeric' => ':Attribute muss größer oder gleich :value sein.',
+        'string' => ':Attribute muss mindestens :value Zeichen lang sein.',
+    ],
+    'image' => ':Attribute muss ein Bild sein.',
+    'in' => 'Der gewählte Wert für :attribute ist ungültig.',
+    'in_array' => 'Der gewählte Wert für :attribute kommt nicht in :other vor.',
+    'integer' => ':Attribute muss eine ganze Zahl sein.',
+    'ip' => ':Attribute muss eine gültige IP-Adresse sein.',
+    'ipv4' => ':Attribute muss eine gültige IPv4-Adresse sein.',
+    'ipv6' => ':Attribute muss eine gültige IPv6-Adresse sein.',
+    'json' => ':Attribute muss ein gültiger JSON-String sein.',
+    'lowercase' => ':Attribute muss in Kleinbuchstaben sein.',
+    'lt' => [
+        'array' => ':Attribute muss weniger als :value Elemente haben.',
+        'file' => ':Attribute muss kleiner als :value Kilobytes sein.',
+        'numeric' => ':Attribute muss kleiner als :value sein.',
+        'string' => ':Attribute muss kürzer als :value Zeichen sein.',
+    ],
+    'lte' => [
+        'array' => ':Attribute darf maximal :value Elemente haben.',
+        'file' => ':Attribute muss kleiner oder gleich :value Kilobytes sein.',
+        'numeric' => ':Attribute muss kleiner oder gleich :value sein.',
+        'string' => ':Attribute darf maximal :value Zeichen lang sein.',
+    ],
+    'mac_address' => 'Der Wert muss eine gültige MAC-Adresse sein.',
+    'max' => [
+        'array' => ':Attribute darf maximal :max Elemente haben.',
+        'file' => ':Attribute darf maximal :max Kilobytes groß sein.',
+        'numeric' => ':Attribute darf maximal :max sein.',
+        'string' => ':Attribute darf maximal :max Zeichen haben.',
+    ],
+    'max_digits' => ':Attribute darf maximal :max Ziffern lang sein.',
+    'mimes' => ':Attribute muss den Dateityp :values haben.',
+    'mimetypes' => ':Attribute muss den Dateityp :values haben.',
+    'min' => [
+        'array' => ':Attribute muss mindestens :min Elemente haben.',
+        'file' => ':Attribute muss mindestens :min Kilobytes groß sein.',
+        'numeric' => ':Attribute muss mindestens :min sein.',
+        'string' => ':Attribute muss mindestens :min Zeichen lang sein.',
+    ],
+    'min_digits' => ':Attribute muss mindestens :min Ziffern lang sein.',
+    'missing' => 'Das Feld :attribute muss fehlen.',
+    'missing_if' => 'Das Feld :attribute muss fehlen, wenn :other gleich :value ist.',
+    'missing_unless' => 'Das Feld :attribute muss fehlen, es sei denn, :other ist :value.',
+    'missing_with' => 'Das Feld :attribute muss fehlen, wenn :values vorhanden ist.',
+    'missing_with_all' => 'Das Feld :attribute muss fehlen, wenn :values vorhanden sind.',
+    'multiple_of' => ':Attribute muss ein Vielfaches von :value sein.',
+    'not_in' => 'Der gewählte Wert für :attribute ist ungültig.',
+    'not_regex' => ':Attribute hat ein ungültiges Format.',
+    'numeric' => ':Attribute muss eine Zahl sein.',
+    'password' => [
+        'letters' => ':Attribute muss mindestens einen Buchstaben beinhalten.',
+        'mixed' => ':Attribute muss mindestens einen Großbuchstaben und einen Kleinbuchstaben beinhalten.',
+        'numbers' => ':Attribute muss mindestens eine Zahl beinhalten.',
+        'symbols' => ':Attribute muss mindestens ein Sonderzeichen beinhalten.',
+        'uncompromised' => ':Attribute wurde in einem Datenleck gefunden. Bitte wählen Sie ein anderes :attribute.',
+    ],
+    'present' => ':Attribute muss vorhanden sein.',
+    'prohibited' => ':Attribute ist unzulässig.',
+    'prohibited_if' => ':Attribute ist unzulässig, wenn :other :value ist.',
+    'prohibited_unless' => ':Attribute ist unzulässig, wenn :other nicht :values ist.',
+    'prohibits' => ':Attribute verbietet die Angabe von :other.',
+    'regex' => ':Attribute Format ist ungültig.',
+    'required' => ':Attribute muss ausgefüllt werden.',
+    'required_array_keys' => 'Dieses Feld muss Einträge enthalten für: :values.',
+    'required_if' => ':Attribute muss ausgefüllt werden, wenn :other den Wert :value hat.',
+    'required_if_accepted' => ':Attribute muss ausgefüllt werden, wenn :other gewählt ist.',
+    'required_unless' => ':Attribute muss ausgefüllt werden, wenn :other nicht den Wert :values hat.',
+    'required_with' => ':Attribute muss ausgefüllt werden, wenn :values ausgefüllt wurde.',
+    'required_with_all' => ':Attribute muss ausgefüllt werden, wenn :values ausgefüllt wurde.',
+    'required_without' => ':Attribute muss ausgefüllt werden, wenn :values nicht ausgefüllt wurde.',
+    'required_without_all' => ':Attribute muss ausgefüllt werden, wenn keines der Felder :values ausgefüllt wurde.',
+    'same' => ':Attribute und :other müssen übereinstimmen.',
+    'size' => [
+        'array' => ':Attribute muss genau :size Elemente haben.',
+        'file' => ':Attribute muss :size Kilobyte groß sein.',
+        'numeric' => ':Attribute muss gleich :size sein.',
+        'string' => ':Attribute muss :size Zeichen lang sein.',
+    ],
+    'starts_with' => ':Attribute muss mit einem der folgenden Anfänge aufweisen: :values',
+    'string' => ':Attribute muss ein String sein.',
+    'timezone' => ':Attribute muss eine gültige Zeitzone sein.',
+    'ulid' => 'Die :attribute muss eine gültige ULID sein.',
+    'unique' => ':Attribute ist bereits vergeben.',
+    'uploaded' => ':Attribute konnte nicht hochgeladen werden.',
+    'uppercase' => ':Attribute muss in Großbuchstaben sein.',
+    'url' => ':Attribute muss eine URL sein.',
+    'uuid' => ':Attribute muss ein UUID sein.',
+    'attributes' => [
+        'address' => 'Adresse',
+        'age' => 'Alter',
+        'amount' => 'Höhe',
+        'area' => 'Gebiet',
+        'available' => 'Verfügbar',
+        'birthday' => 'Geburtstag',
+        'body' => 'Körper',
+        'city' => 'Stadt',
+        'content' => 'Inhalt',
+        'country' => 'Land',
+        'created_at' => 'Erstellt am',
+        'creator' => 'Ersteller',
+        'current_password' => 'Derzeitiges Passwort',
+        'date' => 'Datum',
+        'date_of_birth' => 'Geburtsdatum',
+        'day' => 'Tag',
+        'deleted_at' => 'Gelöscht am',
+        'description' => 'Beschreibung',
+        'district' => 'Bezirk',
+        'duration' => 'Dauer',
+        'email' => 'E-Mail-Adresse',
+        'excerpt' => 'Auszug',
+        'filter' => 'Filter',
+        'first_name' => 'Vorname',
+        'gender' => 'Geschlecht',
+        'group' => 'Gruppe',
+        'hour' => 'Stunde',
+        'image' => 'Bild',
+        'last_name' => 'Nachname',
+        'lesson' => 'Lektion',
+        'line_address_1' => 'Adresszeile 1',
+        'line_address_2' => 'Adresszeile 2',
+        'message' => 'Nachricht',
+        'middle_name' => 'Zweitname',
+        'minute' => 'Minute',
+        'mobile' => 'Handynummer',
+        'month' => 'Monat',
+        'name' => 'Name',
+        'national_code' => 'Länderkennung',
+        'number' => 'Nummer',
+        'password' => 'Passwort',
+        'password_confirmation' => 'Passwortbestätigung',
+        'phone' => 'Telefonnummer',
+        'photo' => 'Foto',
+        'postal_code' => 'Postleitzahl',
+        'price' => 'Preis',
+        'province' => 'Provinz',
+        'recaptcha_response_field' => 'Captcha-Feld',
+        'remember' => 'Erinnern',
+        'restored_at' => 'Wiederhergestellt am',
+        'result_text_under_image' => 'Ergebnistext unter Bild',
+        'role' => 'Rolle',
+        'second' => 'Sekunde',
+        'sex' => 'Geschlecht',
+        'short_text' => 'Kurzer Text',
+        'size' => 'Größe',
+        'state' => 'Bundesland',
+        'street' => 'Straße',
+        'student' => 'Schüler/Student',
+        'subject' => 'Gegenstand',
+        'teacher' => 'Lehrer',
+        'terms' => 'Bedingungen',
+        'test_description' => 'Test Beschreibung',
+        'test_locale' => 'Test Region',
+        'test_name' => 'Testname',
+        'text' => 'Text',
+        'time' => 'Uhrzeit',
+        'title' => 'Titel',
+        'updated_at' => 'Aktualisiert am',
+        'username' => 'Benutzername',
+        'year' => 'Jahr',
+    ],
+];

+ 18 - 33
resources/lang/en.json

@@ -1,71 +1,56 @@
 {
     "(and :count more error)": "(and :count more error)",
     "(and :count more errors)": "(and :count more errors)",
-    "----「:job」Completed, Used :time seconds ----": "----「:job」Completed, Used :time seconds ----",
-    "[Auto Task] Blocked service: Abnormal traffic within 1 hour": "[Auto Task] Blocked service: Abnormal traffic within 1 hour",
-    "[Auto Task] Blocked service: Run out of traffic": "[Auto Task] Blocked service: Run out of traffic",
-    "[Auto Task] Blocked Subscription: Subscription with abnormal requests within 24 hours": "[Auto Task] Blocked Subscription: Subscription with abnormal requests within 24 hours",
-    "[Daily Task] Account Expiration: Block Login & Clear Account": "[Daily Task] Account Expiration: Block Login & Clear Account",
-    "[Daily Task] Account Expiration: Stop Service": "[Daily Task] Account Expiration: Stop Service",
-    "[Daily Task] Reset Account Traffic, Next Reset Date: :date": "[Daily Task] Reset Account Traffic, Next Reset Date: :date",
-    "[Service Timer] Service Expiration": "[Service Timer] Service Expiration",
-    "A fresh verification link has been sent to your email address.": "A fresh verification link has been sent to your email address.",
     "All rights reserved.": "All rights reserved.",
-    "Before proceeding, please check your email for a verification link.": "Before proceeding, please check your email for a verification link.",
-    "click here to request another": "click here to request another",
-    "Confirm Password": "Confirm Password",
-    "Daily Data Usage Report": "Daily Data Usage Report",
-    "E-Mail Address": "E-Mail Address",
     "Forbidden": "Forbidden",
-    "Forgot Your Password?": "Forgot Your Password?",
-    "Go Home": "Go Home",
     "Go to page :page": "Go to page :page",
     "Hello!": "Hello!",
     "If you did not create an account, no further action is required.": "If you did not create an account, no further action is required.",
-    "If you did not receive the email": "If you did not receive the email",
     "If you did not request a password reset, no further action is required.": "If you did not request a password reset, no further action is required.",
     "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:",
-    "Invoice Detail": "Invoice Detail",
+    "Invalid JSON was returned from the route.": "Invalid JSON was returned from the route.",
     "Login": "Login",
     "Logout": "Logout",
-    "Name": "Name",
     "Not Found": "Not Found",
     "of": "of",
-    "Oh no": "Oh no",
     "Page Expired": "Page Expired",
     "Pagination Navigation": "Pagination Navigation",
-    "Password": "Password",
-    "Payment for #:sn has been received! Total amount: :amount.": "Payment for #:sn has been received! Total amount: :amount.",
-    "Payment Received": "Payment Received",
     "Payment Required": "Payment Required",
     "Please click the button below to verify your email address.": "Please click the button below to verify your email address.",
     "Regards": "Regards",
     "Register": "Register",
-    "Remember Me": "Remember Me",
     "Reset Password": "Reset Password",
     "Reset Password Notification": "Reset Password Notification",
     "results": "results",
-    "Send Password Reset Link": "Send Password Reset Link",
     "Server Error": "Server Error",
     "Service Unavailable": "Service Unavailable",
     "Showing": "Showing",
-    "Subscription link receive abnormal access and banned by the system": "Subscription link receive abnormal access and banned by the system",
-    "Thank you for signing up! Before you start, you need to verify your email by clicking on the link we have just sent to your email! If you haven't received an email, we would be happy to send another one.": "Thank you for signing up! Before you start, you need to verify your email by clicking on the link we have just sent to your email! If you haven't received an email, we would be happy to send another one.",
-    "The :attribute must contain at least one letter.": "The :attribute must contain at least one letter.",
-    "The :attribute must contain at least one number.": "The :attribute must contain at least one number.",
-    "The :attribute must contain at least one symbol.": "The :attribute must contain at least one symbol.",
-    "The :attribute must contain at least one uppercase and one lowercase letter.": "The :attribute must contain at least one uppercase and one lowercase letter.",
-    "The given :attribute has appeared in a data leak. Please choose a different :attribute.": "The given :attribute has appeared in a data leak. Please choose a different :attribute.",
     "The given data was invalid.": "The given data was invalid.",
+    "The response is not a streamed response.": "The response is not a streamed response.",
+    "The response is not a view.": "The response is not a view.",
     "This password reset link will expire in :count minutes.": "This password reset link will expire in :count minutes.",
     "to": "to",
     "Toggle navigation": "Toggle navigation",
     "Too Many Requests": "Too Many Requests",
     "Unauthorized": "Unauthorized",
     "Verify Email Address": "Verify Email Address",
-    "Verify Your Email Address": "Verify Your Email Address",
     "Whoops!": "Whoops!",
     "You are receiving this email because we received a password reset request for your account.": "You are receiving this email because we received a password reset request for your account.",
+    "----「:job」Completed, Used :time seconds ----": "----「:job」Completed, Used :time seconds ----",
+    "[Auto Task] Blocked service: Abnormal traffic within 1 hour": "[Auto Task] Blocked service: Abnormal traffic within 1 hour",
+    "[Auto Task] Blocked service: Run out of traffic": "[Auto Task] Blocked service: Run out of traffic",
+    "[Auto Task] Blocked Subscription: Subscription with abnormal requests within 24 hours": "[Auto Task] Blocked Subscription: Subscription with abnormal requests within 24 hours",
+    "[Daily Task] Account Expiration: Block Login & Clear Account": "[Daily Task] Account Expiration: Block Login & Clear Account",
+    "[Daily Task] Account Expiration: Stop Service": "[Daily Task] Account Expiration: Stop Service",
+    "[Daily Task] Reset Account Traffic, Next Reset Date: :date": "[Daily Task] Reset Account Traffic, Next Reset Date: :date",
+    "[Service Timer] Service Expiration": "[Service Timer] Service Expiration",
+    "Daily Data Usage Report": "Daily Data Usage Report",
+    "Invoice Detail": "Invoice Detail",
+    "Payment for #:sn has been received! Total amount: :amount.": "Payment for #:sn has been received! Total amount: :amount.",
+    "Payment Received": "Payment Received",
+    "Subscription link receive abnormal access and banned by the system": "Subscription link receive abnormal access and banned by the system",
+    "Thank you for signing up! Before you start, you need to verify your email by clicking on the link we have just sent to your email! If you haven't received an email, we would be happy to send another one.": "Thank you for signing up! Before you start, you need to verify your email by clicking on the link we have just sent to your email! If you haven't received an email, we would be happy to send another one.",
+    "Verify Your Email Address": "Verify Your Email Address",
     "You have not responded this ticket in :num hours, System has closed your ticket.": "You have not responded this ticket in :num hours, System has closed your ticket.",
     "You must have a valid subscription to view the content in this area!": "You must have a valid subscription to view the content in this area!",
     "Your subscription has been disabled by the administrator, please contact the administrator to restore it": "Your subscription has been disabled by the administrator, please contact the administrator to restore it"

+ 18 - 18
resources/lang/en/admin.php

@@ -13,8 +13,8 @@ return [
         'abnormal_users' => 'Abnormal Traffic (last 1 hour)',
         'nodes' => 'Nodes',
         'maintaining_nodes' => 'Nodes Under Maintenance',
-        'traffic_consumed' => 'Total Traffic Consumed',
-        'traffic_days_consumed' => 'Traffic Consumed Within :days Days',
+        'current_month_traffic_consumed' => 'Current Month Traffic Consumed',
+        'days_traffic_consumed' => 'Traffic Consumed Within :days Days',
         'orders' => 'Orders',
         'online_orders' => 'Online Orders',
         'succeed_orders' => 'Successful Orders',
@@ -58,13 +58,13 @@ return [
             'attribute' => 'Nodes',
             'list' => 'Node Management',
             'auth' => 'API Authorization',
-            'cert' => 'Certificate',
+            'cert' => 'Security Certificates',
         ],
         'rule' => [
-            'attribute' => 'Audit',
+            'attribute' => 'Audit Rules',
             'list' => 'Rule Management',
             'group' => 'Rule Group',
-            'trigger' => 'Trigger Logs',
+            'trigger' => 'Trigger Records',
         ],
         'shop' => [
             'attribute' => 'Shop',
@@ -117,11 +117,11 @@ return [
             'note' => 'Bulk users generated in background',
         ],
         'proxy_info' => 'Configuration information',
-        'traffic_monitor' => 'Data Statistics',
+        'traffic_monitor' => 'Usage Statistics',
         'online_monitor' => 'Online Monitoring',
         'reset_traffic' => 'Reset Data',
         'user_view' => 'Switch to User Profile',
-        'connection_test' => 'Network test',
+        'connection_test' => 'Networking Test',
         'counts' => 'Total of <code>:num</code> accounts',
         'reset_confirm' => [0 => 'Do you want to reset [', 1 => ']\'s data?'],
         'info' => [
@@ -203,7 +203,7 @@ return [
             'deploy' => [
                 'title' => 'Deploy :type_label backend',
                 'attribute' => 'Backend Deployment',
-                'command' => 'Operation commands',
+                'command' => 'Operating instructions',
                 'update' => 'Update: ',
                 'uninstall' => 'Uninstall: ',
                 'start' => 'Launch: ',
@@ -282,8 +282,8 @@ return [
         ],
         'order' => [
             'title' => 'Orders',
-            'is_expired' => 'Whether expired',
-            'is_coupon' => 'Whether a coupon is used',
+            'is_expired' => 'Whether orders has expired',
+            'is_coupon' => 'Whether a coupon was used',
         ],
         'user_traffic' => [
             'title' => 'Data Usage Records',
@@ -298,7 +298,7 @@ return [
             'connect' => 'IP of connection',
         ],
         'ban' => [
-            'title' => 'Users Ban Records',
+            'title' => 'User Ban Records',
             'time' => 'Duration',
             'reason' => 'Reason',
             'ban_time' => 'Banned Time',
@@ -588,7 +588,7 @@ return [
         'traffic_limit_time' => 'Time Interval',
         'traffic_warning_percent' => 'Low Data Traffic Threshold',
         'trojan_license' => 'Trojan Backend License',
-        'username_type' => 'Username Type',
+        'username_type' => 'Account Username Type',
         'user_invite_days' => '[User] Expiration days of invitation code',
         'v2ray_license' => 'V2Ray Backend License',
         'v2ray_tls_provider' => 'V2Ray TLS Configuration',
@@ -683,13 +683,13 @@ return [
             'telegram_token' => 'Find <a href=https://t.me/BotFather target=_blank>@BotFather</a> to apply for robot\'s TOKEN',
             'tg_chat_token' => 'Before enabling TG Chat, please fill in <a href=https://t.me/realtgchat_bot target=_blank> applied Token</a>',
             'ticket_closed_notification' => 'Notify user when ticket closed',
-            'ticket_created_notification' => 'Notification of newly created ticket to management/user, depending on whom created',
-            'ticket_replied_notification' => 'Ticket response notification to the other party',
-            'traffic_ban_time' => 'Any user/subscription anomaly blocking time, automatically unblocked upon expiry',
-            'traffic_ban_value' => 'If the value is exceeded within 1 hour, the ban will be triggered',
+            'ticket_created_notification' => 'New ticket notification to manager/user, depending on who created the new ticket.',
+            'ticket_replied_notification' => 'Ticket reply notification to the other party',
+            'traffic_ban_time' => 'Any exception that causes the user/subscription to be banned for a period of time, automatically unban after expiration.',
+            'traffic_ban_value' => 'If it exceeds this value within 1 hour, it will trigger automatic account ban',
             'traffic_limit_time' => 'Check-in Interval',
             'traffic_warning_percent' => '[Traffic Exhaustion Notification] Start threshold, notify users daily',
-            'username_type' => 'Standardize the type of site allowed username type, Default is Email',
+            'username_type' => 'Standardize the type of site user account, default is email address',
             'user_invite_days' => 'Expiration date of user-generated invitations',
             'v2ray_tls_provider' => 'For back-end auto-issue/loading of TLS certificates (Node\'s setting have higher priority than here)',
             'webmaster_email' => 'Some error messages will provide the administrator\'s email as the contact information',
@@ -793,7 +793,7 @@ return [
         ],
     ],
     'set_to' => 'Set as :attribute',
-    'minute' => ' minutes',
+    'minute' => 'minutes',
     'query' => 'Query',
     'optional' => 'Optional',
     'require' => 'Required',

+ 3 - 2
resources/lang/en/common.php

@@ -1,7 +1,7 @@
 <?php
 
 return [
-    'hour' => '{1} Hour | {2} O\'clock',
+    'hour' => '{1} Hour|{2} O\'clock',
     'account' => 'Account',
     'available_date' => 'Available Until/Period',
     'created_at' => 'Created At',
@@ -9,6 +9,7 @@ return [
     'updated_at' => 'Updated At',
     'latest_at' => 'Latest Activity',
     'back' => 'Back',
+    'back_to' => 'Back to :page',
     'cancel' => 'Cancel',
     'close' => 'Close',
     'close_item' => 'Close :attribute',
@@ -61,7 +62,7 @@ return [
         'fullscreen' => 'Fullscreen',
     ],
     'days' => [
-        'attribute' => '{1} Days | Day {2}',
+        'attribute' => '{1} Days|{2} Day',
         'sun' => 'Sunday',
         'mon' => 'Monday',
         'tue' => 'Tuesday',

+ 1 - 0
resources/lang/en/validation.php

@@ -22,6 +22,7 @@ return [
         'string' => 'The :attribute must be between :min and :max characters.',
     ],
     'boolean' => 'The :attribute field must be true or false.',
+    'can' => 'The :attribute field contains an unauthorized value.',
     'confirmed' => 'The :attribute confirmation does not match.',
     'current_password' => 'The password is incorrect.',
     'date' => 'The :attribute is not a valid date.',

+ 39 - 0
resources/lang/fa.json

@@ -0,0 +1,39 @@
+{
+    "(and :count more error)": "(و :count خطای دیگر)",
+    "(and :count more errors)": "(و :count خطای دیگر)",
+    "All rights reserved.": "کلیه حقوق محفوظ است.",
+    "Forbidden": "عدم دسترسی",
+    "Go to page :page": "برو به صفحه :page",
+    "Hello!": "سلام!",
+    "If you did not create an account, no further action is required.": "چنانچه شما حساب کاربری ایجاد نکرده اید، نیاز به اقدام خاصی نیست.",
+    "If you did not request a password reset, no further action is required.": "اگر شما درخواست تغییر رمزعبور را نکرده اید، نیاز به اقدام خاصی نیست.",
+    "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "اگر با کلیک کردن روی دکمه \":actionText\" مشکل دارید، لینک زیر را کپی کنید و در مرورگر خود وارد کنید:",
+    "Invalid JSON was returned from the route.": "JSON نامعتبر از مسیر برگردانده شد.",
+    "Login": "ورود",
+    "Logout": "خروج",
+    "Not Found": "یافت نشد",
+    "of": "از",
+    "Page Expired": "صفحه منقضی شده است",
+    "Pagination Navigation": "راهنمای صفحه بندی",
+    "Payment Required": "پرداخت لازم",
+    "Please click the button below to verify your email address.": "برای تایید آدرس ایمیل روی دکمه زیر کلیک کنید.",
+    "Regards": "با احترام",
+    "Register": "ثبت نام",
+    "Reset Password": "فراموشی رمزعبور",
+    "Reset Password Notification": "پیام فراموشی رمزعبور",
+    "results": "نتایج",
+    "Server Error": "خطای سرور",
+    "Service Unavailable": "عدم دسترسی به سرویس",
+    "Showing": "در حال نمایش",
+    "The given data was invalid.": "داده دریافتی معتبر نمی‌باشد.",
+    "The response is not a streamed response.": "پاسخ یک پاسخ جریانی نیست.",
+    "The response is not a view.": "پاسخ یک دیدگاه نیست.",
+    "This password reset link will expire in :count minutes.": "لینک فراموشی رمزعبور برای :count دقیقه معتبر است.",
+    "to": "به",
+    "Toggle navigation": "تغییر ناوبری",
+    "Too Many Requests": "تعداد درخواست های ارسال شده زیاد است",
+    "Unauthorized": "دسترسی غیر مجاز",
+    "Verify Email Address": "تایید آدرس ایمیل",
+    "Whoops!": "وای!",
+    "You are receiving this email because we received a password reset request for your account.": "شما این ایمیل را به دلیل درخواست رمزعبور جدید دریافت کرده‌اید."
+}

+ 84 - 0
resources/lang/fa/http-statuses.php

@@ -0,0 +1,84 @@
+<?php
+
+declare(strict_types=1);
+
+return [
+    '0' => 'خطای ناشناخته',
+    '100' => 'ادامه',
+    '101' => 'درحال تعویض پروتکل ها',
+    '102' => 'پردازش درخواست',
+    '200' => 'موفقیت آمیز',
+    '201' => 'ساخته شده',
+    '202' => 'پذیرفته شده',
+    '203' => 'اطلاعات نامعتبر',
+    '204' => 'بدون محتویات',
+    '205' => 'تنظیم مجدد محتوی',
+    '206' => 'محتوی جزئی',
+    '207' => 'چندین-وضعیت',
+    '208' => 'قبلا گزارش شده است',
+    '226' => 'IM استفاده شده',
+    '300' => 'چندین انتخاب',
+    '301' => 'انتقال دائم',
+    '302' => 'انتقال موقتی',
+    '303' => 'به محل دیگری مراجعه کنید',
+    '304' => 'اصلاح نشده',
+    '305' => 'استفاده از پراکسی',
+    '307' => 'تغییر مسیر موقت',
+    '308' => 'تغییر مسیر دائم',
+    '400' => 'درخواست ناصحیح',
+    '401' => 'مجاز نیست',
+    '402' => 'نیاز به پرداخت',
+    '403' => 'دسترسی غیر مجاز',
+    '404' => 'پیدا نشد',
+    '405' => 'متود مجاز نیست',
+    '406' => 'قابل قبول نیست',
+    '407' => 'نیاز به تصدیق پراکسی می‌باشد',
+    '408' => 'وقفهٔ درخواست',
+    '409' => 'ناسازگاری',
+    '410' => 'رفته',
+    '411' => 'طول مورد نیاز است',
+    '412' => 'پیش شرط با شکست مواجه شده',
+    '413' => 'موجودیت درخواست بسیار بزرگ است',
+    '414' => 'یوآرال در خواست شده بسیار طولانی است',
+    '415' => 'نوع رسانه پشتیبانی نمی‌شود',
+    '416' => 'محدودهٔ درخواست شده رضایت پذیر نیست',
+    '417' => 'انتظار با شکست مواجه شده',
+    '418' => 'من یک teapot)قوری( هستم',
+    '419' => 'نشست منقضی شده',
+    '421' => 'درخواست نادرست',
+    '422' => 'موجودیت غیر قابل پردازش',
+    '423' => 'قفل شده',
+    '424' => 'وابستگی شکست‌خورده',
+    '425' => 'خیلی زود',
+    '426' => 'ارتقاء لازم است',
+    '428' => 'پیش شرط لازم است',
+    '429' => 'درخواست ها بیش‌از اندازه است',
+    '431' => 'فیلد های هدر درخواست بیش اندازه بزرگ هستند',
+    '444' => 'اتصال بدون پاسخ بسته شد',
+    '449' => 'تلاش مجدد با',
+    '451' => 'به دلایل قانونی در دسترس نیست',
+    '499' => 'درخواست توسط کاربر بسته شد',
+    '500' => 'خطای داخلی سرور',
+    '501' => 'اجرا نشده',
+    '502' => 'درگاه خراب',
+    '503' => 'سرویس در دسترس نیست',
+    '504' => 'وقفهٔ در گاه',
+    '505' => 'نگارش HTTP پشتیبانی نمی‌شود',
+    '506' => 'گونه‌ها همچنین مذاکره می‌کنند',
+    '507' => 'فضای ناکافی',
+    '508' => 'حلقه شناسایی شد',
+    '509' => 'ظرفیت پهنای‌باند به اتمام رسید',
+    '510' => 'تمدید نشده',
+    '511' => 'احراز هویت درون شبکه لازم است',
+    '520' => 'خطای ناشناخته',
+    '521' => 'وب سرور از کار افتاده است',
+    '522' => 'مهلت زمانی اتصال تمام شد',
+    '523' => 'مبدا قابل دستیابی نیست',
+    '524' => 'مهلت زمانی تمام شد.',
+    '525' => 'SSL Handshake با شکست مواجه شد',
+    '526' => 'گواهی SSL نامعتبر',
+    '527' => 'خطای Railgun',
+    '598' => 'مهلت خواندن شبکه تمام شد',
+    '599' => 'مهلت اتصال شبکه تمام شد',
+    'unknownError' => 'خطای ناشناخته',
+];

+ 8 - 0
resources/lang/fa/pagination.php

@@ -0,0 +1,8 @@
+<?php
+
+declare(strict_types=1);
+
+return [
+    'next' => 'بعدی &raquo;',
+    'previous' => '&laquo; قبلی',
+];

+ 217 - 0
resources/lang/fa/validation.php

@@ -0,0 +1,217 @@
+<?php
+
+declare(strict_types=1);
+
+return [
+    'accepted' => ':Attribute باید پذیرفته شده باشد.',
+    'accepted_if' => ':Attribute باید پذیرفته شده باشد وقتی :other برابر :value است.',
+    'active_url' => 'آدرس :attribute معتبر نیست.',
+    'after' => ':Attribute باید تاریخی بعد از :date باشد.',
+    'after_or_equal' => ':Attribute باید تاریخی بعد از :date، یا مطابق با آن باشد.',
+    'alpha' => ':Attribute باید فقط حروف الفبا باشد.',
+    'alpha_dash' => ':Attribute باید فقط حروف الفبا، اعداد، خط تیره و زیرخط باشد.',
+    'alpha_num' => ':Attribute باید فقط حروف الفبا و اعداد باشد.',
+    'array' => ':Attribute باید آرایه باشد.',
+    'ascii' => ':Attribute تنها میتواند شامل کاراکترها و نمادهای الفبایی تک بایتی باشد.',
+    'before' => ':Attribute باید تاریخی قبل از :date باشد.',
+    'before_or_equal' => ':Attribute باید تاریخی قبل از :date، یا مطابق با آن باشد.',
+    'between' => [
+        'array' => ':Attribute باید بین :min و :max آیتم باشد.',
+        'file' => ':Attribute باید بین :min و :max کیلوبایت باشد.',
+        'numeric' => ':Attribute باید بین :min و :max باشد.',
+        'string' => ':Attribute باید بین :min و :max کاراکتر باشد.',
+    ],
+    'boolean' => 'فیلد :attribute فقط می‌تواند true و یا false باشد.',
+    'can' => 'فیلد :attribute یک مقدار غیرمجاز دارد.',
+    'confirmed' => ':Attribute با فیلد تکرار مطابقت ندارد.',
+    'current_password' => 'رمزعبور اشتباه است.',
+    'date' => ':Attribute یک تاریخ معتبر نیست.',
+    'date_equals' => ':Attribute باید یک تاریخ برابر با تاریخ :date باشد.',
+    'date_format' => ':Attribute با الگوی :format مطابقت ندارد.',
+    'decimal' => ':Attribute باید شامل :decimal اعشار باشد.',
+    'declined' => ':Attribute باید رد شده باشد.',
+    'declined_if' => ':Attribute باید رد شده باشد وقتی :other برابر :value است.',
+    'different' => ':Attribute و :other باید از یکدیگر متفاوت باشند.',
+    'digits' => ':Attribute باید :digits رقم باشد.',
+    'digits_between' => ':Attribute باید بین :min و :max رقم باشد.',
+    'dimensions' => 'ابعاد تصویر :attribute قابل قبول نیست.',
+    'distinct' => 'فیلد :attribute مقدار تکراری دارد.',
+    'doesnt_end_with' => 'مقدار :attribute نباید با این مقادیر تمام شود : :values.',
+    'doesnt_start_with' => 'مقدار :attribute نباید با این مقادیر شروع شود : :values.',
+    'email' => ':Attribute باید یک ایمیل معتبر باشد.',
+    'ends_with' => 'فیلد :attribute باید با یکی از مقادیر زیر خاتمه یابد: :values',
+    'enum' => ':Attribute انتخاب شده اشتباه است.',
+    'exists' => ':Attribute انتخاب شده، معتبر نیست.',
+    'file' => ':Attribute باید یک فایل معتبر باشد.',
+    'filled' => 'فیلد :attribute باید مقدار داشته باشد.',
+    'gt' => [
+        'array' => ':Attribute باید بیشتر از :value آیتم داشته باشد.',
+        'file' => ':Attribute باید بزرگتر از :value کیلوبایت باشد.',
+        'numeric' => ':Attribute باید بزرگتر از :value باشد.',
+        'string' => ':Attribute باید بیشتر از :value کاراکتر داشته باشد.',
+    ],
+    'gte' => [
+        'array' => ':Attribute باید بیشتر یا مساوی :value آیتم داشته باشد.',
+        'file' => ':Attribute باید بزرگتر یا مساوی :value کیلوبایت باشد.',
+        'numeric' => ':Attribute باید بزرگتر یا مساوی :value باشد.',
+        'string' => ':Attribute باید بیشتر یا مساوی :value کاراکتر داشته باشد.',
+    ],
+    'image' => ':Attribute باید یک تصویر معتبر باشد.',
+    'in' => ':Attribute انتخاب شده، معتبر نیست.',
+    'in_array' => 'فیلد :attribute در لیست :other وجود ندارد.',
+    'integer' => ':Attribute باید عدد صحیح باشد.',
+    'ip' => ':Attribute باید آدرس IP معتبر باشد.',
+    'ipv4' => ':Attribute باید یک آدرس معتبر از نوع IPv4 باشد.',
+    'ipv6' => ':Attribute باید یک آدرس معتبر از نوع IPv6 باشد.',
+    'json' => 'فیلد :attribute باید یک رشته از نوع JSON باشد.',
+    'lowercase' => 'فیلد :attribute باید با حروف کوچک باشد.',
+    'lt' => [
+        'array' => ':Attribute باید کمتر از :value آیتم داشته باشد.',
+        'file' => ':Attribute باید کوچکتر از :value کیلوبایت باشد.',
+        'numeric' => ':Attribute باید کوچکتر از :value باشد.',
+        'string' => ':Attribute باید کمتر از :value کاراکتر داشته باشد.',
+    ],
+    'lte' => [
+        'array' => ':Attribute باید کمتر یا مساوی :value آیتم داشته باشد.',
+        'file' => ':Attribute باید کوچکتر یا مساوی :value کیلوبایت باشد.',
+        'numeric' => ':Attribute باید کوچکتر یا مساوی :value باشد.',
+        'string' => ':Attribute باید کمتر یا مساوی :value کاراکتر داشته باشد.',
+    ],
+    'mac_address' => ':Attribute باید یک مک آدرس صحیح باشد.',
+    'max' => [
+        'array' => ':Attribute نباید بیشتر از :max آیتم داشته باشد.',
+        'file' => ':Attribute نباید بزرگتر از :max کیلوبایت باشد.',
+        'numeric' => ':Attribute نباید بزرگتر از :max باشد.',
+        'string' => ':Attribute نباید بیشتر از :max کاراکتر داشته باشد.',
+    ],
+    'max_digits' => ':Attribute نباید بیشتر از :max رقم باشد.',
+    'mimes' => 'فرمت‌های معتبر فایل عبارتند از: :values.',
+    'mimetypes' => 'فرمت‌های معتبر فایل عبارتند از: :values.',
+    'min' => [
+        'array' => ':Attribute نباید کمتر از :min آیتم داشته باشد.',
+        'file' => ':Attribute نباید کوچکتر از :min کیلوبایت باشد.',
+        'numeric' => ':Attribute نباید کوچکتر از :min باشد.',
+        'string' => ':Attribute نباید کمتر از :min کاراکتر داشته باشد.',
+    ],
+    'min_digits' => ':Attribute حداقل باید :min رقم باشد.',
+    'missing' => ':Attribute باید خالی باشد.',
+    'missing_if' => ':Attribute باید خالی باشد هنگامیکه :other برابر :value باشد.',
+    'missing_unless' => ':Attribute باید خالی باشد مگراینکه :other برابر :value باشد.',
+    'missing_with' => ':Attribute باید خالی باشد هنگامیکه :values مقدار داشته باشد.',
+    'missing_with_all' => ':Attribute باید خالی باشد هنگامیکه :values مقدار داشته باشد.',
+    'multiple_of' => 'مقدار :attribute باید مضربی از :value باشد.',
+    'not_in' => ':Attribute انتخاب شده، معتبر نیست.',
+    'not_regex' => 'فرمت :attribute معتبر نیست.',
+    'numeric' => ':Attribute باید عدد یا رشته‌ای از اعداد باشد.',
+    'password' => [
+        'letters' => ':Attribute باید حداقل شامل یک حرف باشد.',
+        'mixed' => ':Attribute باید حداقل شامل یک حرف بزرگ و یک حرف کوچک باشد.',
+        'numbers' => ':Attribute باید حداقل شامل یک عدد باشد.',
+        'symbols' => ':Attribute باید حداقل شامل یک نماد باشد.',
+        'uncompromised' => ':Attribute داده شده در نشت داده ظاهر شده است. لطفاً یک :attribute متفاوت انتخاب کنید.',
+    ],
+    'present' => 'فیلد :attribute باید در پارامترهای ارسالی وجود داشته باشد.',
+    'prohibited' => 'فیلد :attribute ممنوع است.',
+    'prohibited_if' => 'فیلد :attribute ممنوع است هنگامیکه مقدار :other برابر :value باشد.',
+    'prohibited_unless' => 'فیلد :attribute ممنوع است مگر اینکه مقدار :other در :values باشد.',
+    'prohibits' => 'فیلد :attribute اجازه حضور فیلد :other را نمی دهد.',
+    'regex' => 'فرمت :attribute معتبر نیست.',
+    'required' => 'فیلد :attribute الزامی است.',
+    'required_array_keys' => 'فیلد :attribute باید حاوی ورودی های :values باشد.',
+    'required_if' => 'هنگامی که :other برابر با :value است، فیلد :attribute الزامی است.',
+    'required_if_accepted' => 'فیلد :attribute الزامی است هنگامیکه :other پذیرفته شده است.',
+    'required_unless' => 'فیلد :attribute الزامی است، مگر آنکه :other در :values موجود باشد.',
+    'required_with' => 'در صورت وجود فیلد :values، فیلد :attribute نیز الزامی است.',
+    'required_with_all' => 'در صورت وجود فیلدهای :values، فیلد :attribute نیز الزامی است.',
+    'required_without' => 'در صورت عدم وجود فیلد :values، فیلد :attribute الزامی است.',
+    'required_without_all' => 'در صورت عدم وجود هر یک از فیلدهای :values، فیلد :attribute الزامی است.',
+    'same' => ':Attribute و :other باید همانند هم باشند.',
+    'size' => [
+        'array' => ':Attribute باید شامل :size آیتم باشد.',
+        'file' => ':Attribute باید برابر با :size کیلوبایت باشد.',
+        'numeric' => ':Attribute باید برابر با :size باشد.',
+        'string' => ':Attribute باید برابر با :size کاراکتر باشد.',
+    ],
+    'starts_with' => ':Attribute باید با یکی از این ها شروع شود: :values',
+    'string' => 'فیلد :attribute باید متن باشد.',
+    'timezone' => 'فیلد :attribute باید یک منطقه زمانی معتبر باشد.',
+    'ulid' => ':Attribute باید یک ULID معتبر باشد.',
+    'unique' => ':Attribute قبلا انتخاب شده است.',
+    'uploaded' => 'بارگذاری فایل :attribute موفقیت آمیز نبود.',
+    'uppercase' => 'فیلد :attribute باید با حروف بزرگ باشد.',
+    'url' => ':Attribute معتبر نمی‌باشد.',
+    'uuid' => ':Attribute باید یک UUID معتبر باشد.',
+    'attributes' => [
+        'address' => 'نشانی',
+        'age' => 'سن',
+        'amount' => 'مبلغ',
+        'area' => 'منطقه',
+        'available' => 'موجود',
+        'birthday' => 'تاریخ تولد',
+        'body' => 'بدن',
+        'city' => 'شهر',
+        'content' => 'محتوا',
+        'country' => 'کشور',
+        'created_at' => 'ایجاد شده در',
+        'creator' => 'سازنده',
+        'current_password' => 'رمزعبور فعلی',
+        'date' => 'تاریخ',
+        'date_of_birth' => 'تاریخ تولد',
+        'day' => 'روز',
+        'deleted_at' => 'حذف شده در',
+        'description' => 'توضیحات',
+        'district' => 'ناحیه',
+        'duration' => 'مدت',
+        'email' => 'ایمیل',
+        'excerpt' => 'گزیده مطلب',
+        'filter' => 'فیلتر',
+        'first_name' => 'نام',
+        'gender' => 'جنسیت',
+        'group' => 'گروه',
+        'hour' => 'ساعت',
+        'image' => 'تصویر',
+        'last_name' => 'نام خانوادگی',
+        'lesson' => 'درس',
+        'line_address_1' => 'آدرس 1',
+        'line_address_2' => 'آدرس 2',
+        'message' => 'پیام',
+        'middle_name' => 'نام وسط',
+        'minute' => 'دقیقه',
+        'mobile' => 'شماره همراه',
+        'month' => 'ماه',
+        'name' => 'نام',
+        'national_code' => 'کد ملی',
+        'number' => 'شماره',
+        'password' => 'رمز عبور',
+        'password_confirmation' => 'تکرار رمز عبور',
+        'phone' => 'شماره ثابت',
+        'photo' => 'تصویر',
+        'postal_code' => 'کد پستی',
+        'price' => 'قیمت',
+        'province' => 'استان',
+        'recaptcha_response_field' => 'فیلد جواب ریکپچا',
+        'remember' => 'به خاطر سپردن',
+        'restored_at' => 'بازیابی شده در',
+        'result_text_under_image' => 'متن نتیجه زیر تصویر',
+        'role' => 'نقش',
+        'second' => 'ثانیه',
+        'sex' => 'جنسیت',
+        'short_text' => 'متن کوتاه',
+        'size' => 'اندازه',
+        'state' => 'استان',
+        'street' => 'خیابان',
+        'student' => 'دانش آموز',
+        'subject' => 'موضوع',
+        'teacher' => 'معلم',
+        'terms' => 'شرایط',
+        'test_description' => 'شرح آزمون',
+        'test_locale' => 'منطقه آزمون',
+        'test_name' => 'نام آزمون',
+        'text' => 'متن',
+        'time' => 'زمان',
+        'title' => 'عنوان',
+        'updated_at' => 'بروزشده در',
+        'username' => 'نام کاربری',
+        'year' => 'سال',
+    ],
+];

+ 18 - 33
resources/lang/ja.json

@@ -1,71 +1,56 @@
 {
     "(and :count more error)": "(その他、:countエラーあり)",
     "(and :count more errors)": "(その他、:countエラーあり)",
-    "----「:job」Completed, Used :time seconds ----": "----:job.時間 :time 秒----",
-    "[Auto Task] Blocked service: Abnormal traffic within 1 hour": "[自动任务]サービスをブロック: 1時間以内に通信例外",
-    "[Auto Task] Blocked service: Run out of traffic": "[自动任务]サービスをBAN: 空き容量",
-    "[Auto Task] Blocked Subscription: Subscription with abnormal requests within 24 hours": "[自动任务]サブスクリプションの購読:24時間以内に有効な例外を出してください",
-    "[Daily Task] Account Expiration: Block Login & Clear Account": "[每日任务]アカウントの有効期限が切れている、ログイン禁止、アカウントが消去されます",
-    "[Daily Task] Account Expiration: Stop Service": "[每日任务]アカウントの有効期限が切れています",
-    "[Daily Task] Reset Account Traffic, Next Reset Date: :date": "'[每日任务]アカウントのリセット、次のリセット日: :date",
-    "[Service Timer] Service Expiration": "[定时任务]有効期限が過ぎています",
-    "A fresh verification link has been sent to your email address.": "新しい確認リンクがメールアドレスに送信されました。",
     "All rights reserved.": "All rights reserved.",
-    "Before proceeding, please check your email for a verification link.": "先に進む前に、確認リンクのためにあなたの電子メールを確認してください。",
-    "click here to request another": "ここをクリックして別のものをリクエストしてください",
-    "Confirm Password": "パスワード(確認用)",
-    "Daily Data Usage Report": "回線毎日のトラフィックレポート",
-    "E-Mail Address": "電子メールアドレス",
     "Forbidden": "禁止されています",
-    "Forgot Your Password?": "パスワードを忘れた方はこちら",
-    "Go Home": "ホームへ",
     "Go to page :page": ":Pageページへ",
     "Hello!": "こんにちは",
     "If you did not create an account, no further action is required.": "アカウント作成にお心当たりがない場合は、このメールを無視してください。",
-    "If you did not receive the email": "メールが受信できなかった場合",
     "If you did not request a password reset, no further action is required.": "パスワード再設定のリクエストにお心当たりがない場合は、このメールを無視してください。",
     "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "\":actionText\"ボタンがクリックできない場合は、以下のURLに直接アクセスしてください。",
-    "Invoice Detail": "注文詳細",
+    "Invalid JSON was returned from the route.": "無効な JSON がルートから返されました。",
     "Login": "ログイン",
     "Logout": "ログアウト",
-    "Name": "氏名",
     "Not Found": "見つかりません",
     "of": "の",
-    "Oh no": "オーノー",
     "Page Expired": "ページが無効です",
     "Pagination Navigation": "ページネーション",
-    "Password": "パスワード",
-    "Payment for #:sn has been received! Total amount: :amount.": "ご注文を支払うことに成功しました。合計金額は :amountです。",
-    "Payment Received": "請求書の支払いが完了しました",
     "Payment Required": "お支払いが必要",
     "Please click the button below to verify your email address.": "メールアドレスを確認するには、以下のボタンをクリックしてください。",
     "Regards": "よろしくお願いします",
     "Register": "アカウント作成",
-    "Remember Me": "ログイン状態を保持する",
     "Reset Password": "パスワード再設定",
     "Reset Password Notification": "パスワード再設定のお知らせ",
     "results": "結果",
-    "Send Password Reset Link": "パスワード再設定URLを送信",
     "Server Error": "サーバーエラー",
     "Service Unavailable": "サービスは利用できません",
     "Showing": "表示中",
-    "Subscription link receive abnormal access and banned by the system": "自動アクセス例外を購読する",
-    "Thank you for signing up! Before you start, you need to verify your email by clicking on the link we have just sent to your email! If you haven't received an email, we would be happy to send another one.": "ご登録ありがとうございます! メールアドレスを確認するため、あなたのメールボックスに送信リンクをクリックしてあなたのメールを送信してください。もしメールが届かない場合は再度メールを送信してください。",
-    "The :attribute must contain at least one letter.": ":attributeは文字を1文字以上含めなければなりません。",
-    "The :attribute must contain at least one number.": ":attributeは数字を1文字以上含めなければなりません。",
-    "The :attribute must contain at least one symbol.": ":attributeは記号を1文字以上含めなければなりません。",
-    "The :attribute must contain at least one uppercase and one lowercase letter.": ":attributeは大文字と小文字をそれぞれ1文字以上含めなければなりません。",
-    "The given :attribute has appeared in a data leak. Please choose a different :attribute.": ":attributeはデータ漏洩の対象だった可能性があります。別の:attributeを選んでください。",
     "The given data was invalid.": "指定されたデータは無効でした。",
+    "The response is not a streamed response.": "応答はストリーミング応答ではありません。",
+    "The response is not a view.": "応答はビューではありません。",
     "This password reset link will expire in :count minutes.": "このパスワード再設定リンクの有効期限は:count分です。",
     "to": "に",
     "Toggle navigation": "ナビゲーション切替",
     "Too Many Requests": "リクエストが多すぎます",
     "Unauthorized": "認証が必要です",
     "Verify Email Address": "メールアドレスの確認",
-    "Verify Your Email Address": "メールアドレスの確認",
     "Whoops!": "おっと!",
     "You are receiving this email because we received a password reset request for your account.": "パスワード再設定のリクエストを受け付けました。",
+    "----「:job」Completed, Used :time seconds ----": "----:job.時間 :time 秒----",
+    "[Auto Task] Blocked service: Abnormal traffic within 1 hour": "[自动任务]サービスをブロック: 1時間以内に通信例外",
+    "[Auto Task] Blocked service: Run out of traffic": "[自动任务]サービスをBAN: 空き容量",
+    "[Auto Task] Blocked Subscription: Subscription with abnormal requests within 24 hours": "[自动任务]サブスクリプションの購読:24時間以内に有効な例外を出してください",
+    "[Daily Task] Account Expiration: Block Login & Clear Account": "[每日任务]アカウントの有効期限が切れている、ログイン禁止、アカウントが消去されます",
+    "[Daily Task] Account Expiration: Stop Service": "[每日任务]アカウントの有効期限が切れています",
+    "[Daily Task] Reset Account Traffic, Next Reset Date: :date": "'[每日任务]アカウントのリセット、次のリセット日: :date",
+    "[Service Timer] Service Expiration": "[定时任务]有効期限が過ぎています",
+    "Daily Data Usage Report": "回線毎日のトラフィックレポート",
+    "Invoice Detail": "注文詳細",
+    "Payment for #:sn has been received! Total amount: :amount.": "ご注文を支払うことに成功しました。合計金額は :amountです。",
+    "Payment Received": "請求書の支払いが完了しました",
+    "Subscription link receive abnormal access and banned by the system": "自動アクセス例外を購読する",
+    "Thank you for signing up! Before you start, you need to verify your email by clicking on the link we have just sent to your email! If you haven't received an email, we would be happy to send another one.": "ご登録ありがとうございます! メールアドレスを確認するため、あなたのメールボックスに送信リンクをクリックしてあなたのメールを送信してください。もしメールが届かない場合は再度メールを送信してください。",
+    "Verify Your Email Address": "メールアドレスの確認",
     "You have not responded this ticket in :num hours, System has closed your ticket.": "超:num以上返信のチケットは報告されていません。自動的にチケットのプロセスを停止しました。",
     "You must have a valid subscription to view the content in this area!": "この地域のコンテンツを表示するには、利用可能なプランが必要です。",
     "Your subscription has been disabled by the administrator, please contact the administrator to restore it": "購読は無効になっています。回復するには管理者に連絡してください。"

+ 5 - 5
resources/lang/ja/admin.php

@@ -13,8 +13,8 @@ return [
         'abnormal_users' => '1時間利用例外',
         'nodes' => 'ノード',
         'maintaining_nodes' => 'メンテナンス中のノード',
-        'traffic_consumed' => 'レコードの消費量',
-        'traffic_days_consumed' => ':days の使用状況',
+        'current_month_traffic_consumed' => '今月の消費量',
+        'days_traffic_consumed' => ':days データの消費量',
         'orders' => '合計注文数',
         'online_orders' => 'オンライン決済注文数',
         'succeed_orders' => '成功注文数',
@@ -152,7 +152,7 @@ return [
         'refresh_geo_all' => '全てのノードの情報を再読込',
         'reload_confirm' => 'ノードを再読込しますか?',
         'info' => [
-            'hint' => '<strong>注意:</strong> 添加节点后自动生成的<code>ID</code>,即为该节点部署ShadowsocksR Python版后端时<code>usermysql.json</code>中的<code>node_id</code>的值,同时也是部署V2Ray后端时的<code>nodeId</code>的值;',
+            'hint' => '<strong>注意:</strong> ノードを追加した後に自動生成される<code>ID</code>は、ノードにShadowsocksR Python版バックエンドをデプロイしたときの<code>usermysql.json</code>の<code>node_id</code>の値であり、同時にV2Rayバックエンドをデプロイしたときの<code>nodeId</code>の値でもあります',
             'basic' => '一般的な情報',
             'ddns_hint' => '動的IPノードは<a href="https://github.com/NewFuture/DDNS" target="_blank">DDNS</a>を設定する必要があります。この型のノードがブロックされ、ドメインによる検出機能はドメインで行います。',
             'domain_placeholder' => 'ドメインのネームスペースです。ドメインの優先を優先',
@@ -193,7 +193,7 @@ return [
             ],
             'v2_host_hint' => '偽装型は、http中に存在する複数のドメインのカンマで区切り、WebSocketを使用した際に通信プロトコルを使用する場合にのみ適用されます。',
             'v2_tls_provider_hint' => '異なるバックエンドが構成され:',
-            'single_hint' => '推荐80或443,服务端需要配置 <br> 严格模式:用户的端口无法连接,只能通过以下指定的端口进行连接(<a href="javascript:showPortsOnlyConfig();">如何配置</a>)',
+            'single_hint' => '80または443を推奨します。サーバー側で設定が必要です <br> 厳格モード:ユーザーのポートに接続できず、以下の指定されたポートからのみ接続できます(<a href=“javascript:showPortsOnlyConfig();”>設定方法</a>)',
         ],
         'proxy_info' => '*SSドット',
         'proxy_info_hint' => 'サーバー構成プロトコルを使用するときは、<span class="red-700">_compatible</span> を混乱させていることを確認してください.',
@@ -250,7 +250,7 @@ return [
             'not_enough' => 'アクセス数が15000件以下で、データ分析に失敗しました',
         ],
         'convert' => [
-            'title' => '格式转换 <small>Shadowsocks 转 ShadowsocksR</small>',
+            'title' => 'フォーマット変換 <small>Shadowsocks から ShadowsocksR へ</small>',
             'content_placeholder' => '設定値を入力してください!',
         ],
         'decompile' => [

+ 5 - 4
resources/lang/ja/common.php

@@ -1,7 +1,7 @@
 <?php
 
 return [
-    'hour' => '{1} タイム|{2} ポイント',
+    'hour' => '{1} 時間|{2} 時',
     'account' => 'アカウント',
     'available_date' => '有効期限',
     'created_at' => '作成日時',
@@ -9,17 +9,18 @@ return [
     'updated_at' => '更新日時',
     'latest_at' => '最近の回',
     'back' => '帰還',
+    'back_to' => '開始まで戻る:page',
     'cancel' => '中止',
     'close' => '閉鎖',
     'close_item' => ':attribute は無効なものです。',
     'confirm' => 'ああ',
-    'continues' => '作業を実行',
+    'continues' => '続けます',
     'open' => '撃て',
     'send' => '送信',
     'view' => '確認',
     'reset' => '設定',
     'copy' => [
-        'attribute' => '回復時間',
+        'attribute' => 'コピー',
         'success' => 'コピー成功',
         'failed' => 'コピーに失敗しました。手動でコピーしてください。',
     ],
@@ -61,7 +62,7 @@ return [
         'fullscreen' => 'フルスクリーン',
     ],
     'days' => [
-        'attribute' => '{1} 日|{2}',
+        'attribute' => '{1} 日|{2} 日目',
         'sun' => '日曜日',
         'mon' => '月曜日',
         'tue' => '火曜日',

+ 1 - 1
resources/lang/ja/model.php

@@ -190,7 +190,7 @@ return [
     ],
     'aff' => [
         'invitee' => '消費者',
-        'amount' => '金銭的額',
+        'amount' => '消費金額',
         'commission' => '払戻額',
         'updated_at' => '処理時間',
         'created_at' => '注文なし',

+ 2 - 2
resources/lang/ja/user.php

@@ -141,7 +141,7 @@ return [
         'subtotal' => '小計',
         'total' => '合計',
         'conflict' => 'パッケージの不一致',
-        'conflict_tips' => '<p>当前购买套餐将自动设置为 <code>预支付套餐</code><p><ol class="text-left"><li> 预支付套餐会在生效中的套餐失效后自动开通!</li><li> 您可以在支付后手动激活套餐!</li></ol>',
+        'conflict_tips' => '<p>現在購入したプランは自動的に <code>プリペイドプラン</code> に設定されます。<p><ol class=“text-left”><li> プリペイドプランは、有効なプランが失効した後に自動的に開始されます!</li><li> 支払い後に手動でプランを有効化することもできます!</li></ol>',
         'call4help' => 'チケット・サポートチケットを開いてください。',
     ],
     'service' => [
@@ -202,7 +202,7 @@ return [
         'new' => '新しいチケットを作成する',
         'working_hour' => '営業時間',
         'online_hour' => '現在時刻',
-        'service_tips' => '本站有多种联系方式,请使用其中<code>一种</code>联系客服! <br>重复请求,将会自动延迟处理时间',
+        'service_tips' => '本サイトには様々な連絡方法がありますので、<code>一つ</code>を選んでカスタマーサービスに連絡してください! <br>繰り返しリクエストすると、自動的に処理時間が遅延します',
         'error' => '不明なエラーです!サポートに連絡してください',
     ],
     'traffic_logs' => [

+ 1 - 0
resources/lang/ja/validation.php

@@ -22,6 +22,7 @@ return [
         'string' => ':Attributeは、:min文字から:max文字にしてください。',
     ],
     'boolean' => ':Attributeには、\'true\'か\'false\'を指定してください。',
+    'can' => ':Attribute フィールドには不正な値が含まれています。',
     'confirmed' => ':Attributeと:attribute確認が一致しません。',
     'current_password' => 'パスワードが正しくありません。',
     'date' => ':Attributeは、正しい日付ではありません。',

+ 14 - 40
resources/lang/ko.json

@@ -1,72 +1,46 @@
 {
-    "(and :count more error)": "(还有 :count 个错误)",
-    "(and :count more errors)": "(还有 :count 个错误)",
-    "----「:job」Completed, Used :time seconds ----": "----「:job」完成, 耗时 :time 秒----",
-    "[Auto Task] Blocked service: Abnormal traffic within 1 hour": "[自动任务]封禁服务: 1小时内流量异常",
-    "[Auto Task] Blocked service: Run out of traffic": "[自动任务]封禁服务: 流量耗尽",
-    "[Auto Task] Blocked Subscription: Subscription with abnormal requests within 24 hours": "[自动任务]封禁订阅: 订阅24小时内请求异常",
-    "[Daily Task] Account Expiration: Block Login & Clear Account": "[每日任务]账号过期: 禁止登录, 清空账户",
-    "[Daily Task] Account Expiration: Stop Service": "[每日任务]账号过期: 停止服务",
-    "[Daily Task] Reset Account Traffic, Next Reset Date: :date": "[每日任务]重置账号流量, 下次重置日: :date",
-    "[Service Timer] Service Expiration": "[定时任务]服务到期",
-    "A fresh verification link has been sent to your email address.": "새로운 인증 링크를 이메일로 보냈습니다.",
+    "(and :count more error)": "(그리고 :count개 이상의 오류)",
+    "(and :count more errors)": "(그리고 :count개 이상의 오류)",
     "All rights reserved.": "모든 권리 보유.",
-    "Before proceeding, please check your email for a verification link.": "진행하기 전에 이메일에 인증 링크를 확인하십시오.",
-    "click here to request another": "다른 항목을 요청하려면 여기를 클릭하십시오.",
-    "Confirm Password": "비밀번호 확인",
-    "Daily Data Usage Report": "회선 데이터 보고",
-    "E-Mail Address": "E-Mail Address",
     "Forbidden": "권한 없음",
-    "Forgot Your Password?": "비밀번호를 잊으셨나요?",
-    "Go Home": "홈으로 이동",
-    "Go to page :page": ":page 페이지로 이동",
+    "Go to page :page": ":Page 페이지로 이동",
     "Hello!": "안녕하세요!",
     "If you did not create an account, no further action is required.": "계정을 생성하지 않았다면 추가 조치가 필요하지 않습니다.",
-    "If you did not receive the email": "이메일을 받지 못하셨다면",
     "If you did not request a password reset, no further action is required.": "귀하께서 비밀번호 재설정을 요청하지 않으셨다면, 추가 조치가 필요하지 않습니다.",
     "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "\":actionText\" 버튼을 클릭하는 중에 문제가 있는 경우 아래 URL을 복사하여\n웹 브라우저에 붙여넣으세요:",
-    "Invoice Detail": "주문서 상세 내역",
+    "Invalid JSON was returned from the route.": "경로에서 잘못된 JSON이 반환되었습니다.",
     "Login": "로그인",
     "Logout": "로그아웃",
-    "Name": "이름",
     "Not Found": "찾을 수 없습니다",
     "of": "의",
-    "Oh no": "저런!",
     "Page Expired": "만료된 페이지",
     "Pagination Navigation": "페이지네이션 내비게이션",
-    "Password": "비밀번호",
-    "Payment for #:sn has been received! Total amount: :amount.": "您成功支付了订单#:sn, 总金额为 :amount.",
-    "Payment Received": "주문서 결제 성공",
     "Payment Required": "결제 필요",
     "Please click the button below to verify your email address.": "이메일 주소를 확인하려면 아래 버튼을 클릭하십시오.",
     "Regards": "안부",
     "Register": "회원가입",
-    "Remember Me": "로그인 상태 유지",
     "Reset Password": "비밀번호 재설정",
-    "Reset Password Notification": "비밀번호 재설정 알림 ",
+    "Reset Password Notification": "비밀번호 재설정 알림",
     "results": "결과",
-    "Send Password Reset Link": "비밀번호 재설정 링크 보내기",
     "Server Error": "서버 오류",
     "Service Unavailable": "서비스를 사용할 수 없습니다.",
     "Showing": "보기",
-    "Subscription link receive abnormal access and banned by the system": "订阅链接访问异常,系统自动封禁",
-    "Thank you for signing up! Before you start, you need to verify your email by clicking on the link we have just sent to your email! If you haven't received an email, we would be happy to send another one.": "회원가입 해주셔서 감사합니다! 시작하기 전에 이메일 계정으로 보낸 링크를 클릭해서 이메일을 확인해야 합니다! 만약 이메일을 받지 못했다면, 다시 전송해드리겠습니다.",
-    "The :attribute must contain at least one letter.": ":attribute은(는) 반드시 하나 이상의 문자를 포함해야합니다.",
-    "The :attribute must contain at least one number.": ":attribute은(는) 반드시 하나 이상의 숫자를 포함해야합니다.",
-    "The :attribute must contain at least one symbol.": "attribute은(는) 반드시 하나 이상의 특수 문자를 포함해야합니다.",
-    "The :attribute must contain at least one uppercase and one lowercase letter.": ":attribute에는 하나 이상의 대문자와 하나의 소문자가 포함되어야 합니다.",
-    "The given :attribute has appeared in a data leak. Please choose a different :attribute.": "주어진 :attribute이(가) 데이터 누출에 나타났습니다. 다른 :attribute을(를) 선택하세요.",
-    "The given data was invalid.": "给定的数据无效。",
+    "The given data was invalid.": "제공된 데이터가 유효하지 않습니다.",
+    "The response is not a streamed response.": "응답이 스트리밍 응답이 아닙니다.",
+    "The response is not a view.": "응답은 보기가 아닙니다.",
     "This password reset link will expire in :count minutes.": "이 비밀번호 재설정 링크는 :count분 후에 만료됩니다.",
     "to": "에",
     "Toggle navigation": "내비게이션 전환",
     "Too Many Requests": "너무 많은 요청",
     "Unauthorized": "인증되지 않음",
     "Verify Email Address": "이메일 주소 확인",
-    "Verify Your Email Address": "이메일 주소 확인",
     "Whoops!": "저런!",
     "You are receiving this email because we received a password reset request for your account.": "귀하의 계정에 대한 비밀번호 재설정이 요청되어 이 메일이 발송되었습니다.",
+    "Daily Data Usage Report": "회선 데이터 보고",
+    "Invoice Detail": "주문서 상세 내역",
+    "Payment Received": "주문서 결제 성공",
+    "Thank you for signing up! Before you start, you need to verify your email by clicking on the link we have just sent to your email! If you haven't received an email, we would be happy to send another one.": "회원가입 해주셔서 감사합니다! 시작하기 전에 이메일 계정으로 보낸 링크를 클릭해서 이메일을 확인해야 합니다! 만약 이메일을 받지 못했다면, 다시 전송해드리겠습니다.",
+    "Verify Your Email Address": "이메일 주소 확인",
     "You have not responded this ticket in :num hours, System has closed your ticket.": ":num시간 이상 동안 문의 답장이 없습니다. 시스템이 자동으로 문의를 닫았습니다.",
-    "You must have a valid subscription to view the content in this area!": "이 영역의 콘텐츠를 보려면 유효한 패키지가 있어야 합니다!",
-    "Your subscription has been disabled by the administrator, please contact the administrator to restore it": "订阅功能被禁用,请联系管理员恢复"
+    "You must have a valid subscription to view the content in this area!": "이 영역의 콘텐츠를 보려면 유효한 패키지가 있어야 합니다!"
 }

+ 0 - 800
resources/lang/ko/admin.php

@@ -1,800 +0,0 @@
-<?php
-
-return [
-    'dashboard' => [
-        'users' => '总用户',
-        'available_users' => '有效用户',
-        'paid_users' => '付费用户',
-        'active_days_users' => ':days 日内活跃用户',
-        'inactive_days_users' => ':days 日以上不活跃用户',
-        'online_users' => '当前在线',
-        'expiring_users' => '临近到期',
-        'overuse_users' => '流量大户(超过90%的用户)',
-        'abnormal_users' => '1小时内流量异常',
-        'nodes' => '节点',
-        'maintaining_nodes' => '维护中的节点',
-        'traffic_consumed' => '记录的消耗流量',
-        'traffic_days_consumed' => ':days 日内消耗流量',
-        'orders' => '总订单数',
-        'online_orders' => '在线支付订单数',
-        'succeed_orders' => '支付成功订单数',
-        'credit' => '总余额',
-        'withdrawing_commissions' => '待提现佣金',
-        'withdrawn_commissions' => '已支出佣金',
-    ],
-    'action' => [
-        'edit_item' => '编辑:attribute',
-        'add_item' => '添加:attribute',
-    ],
-    'confirm' => [
-        'delete' => [0 => '确定删除:attribute【', 1 => '】? '],
-        'continues' => '确定继续操作吗? ',
-        'export' => '确定全部导出? ',
-    ],
-    'user_dashboard' => '个人中心',
-    'menu' => [
-        'dashboard' => '管理中心',
-        'user' => [
-            'attribute' => '用户系统',
-            'list' => '用户管理',
-            'oauth' => '用户授权',
-            'group' => '用戶分组',
-            'credit_log' => '余额变动',
-            'subscribe' => '订阅管理',
-        ],
-        'rbac' => [
-            'attribute' => '权限系统',
-            'permission' => '权限列表',
-            'role' => '角色列表',
-        ],
-        'customer_service' => [
-            'attribute' => '客服系统',
-            'ticket' => '服务工单',
-            'article' => '文章管理',
-            'push' => '消息推送',
-            'mail' => '邮件群发',
-        ],
-        'node' => [
-            'attribute' => '线路系统',
-            'list' => '线路管理',
-            'auth' => '线路授权',
-            'cert' => '证书列表',
-        ],
-        'rule' => [
-            'attribute' => '审计规则',
-            'list' => '规则列表',
-            'group' => '规则分组',
-            'trigger' => '触发记录',
-        ],
-        'shop' => [
-            'attribute' => '商品系统',
-            'goods' => '商品管理',
-            'coupon' => '卡券管理',
-            'order' => '商品订单',
-        ],
-        'promotion' => [
-            'attribute' => '推广系统',
-            'invite' => '邀请管理',
-            'withdraw' => '提现管理',
-            'rebate_flow' => '返利流水',
-        ],
-        'analysis' => [
-            'attribute' => '分析报告',
-            'accounting' => '流水账簿',
-            'user_flow' => '用户分析',
-        ],
-        'log' => [
-            'attribute' => '日志系统',
-            'traffic' => '流量使用',
-            'traffic_flow' => '流量变动',
-            'service_ban' => '封禁记录',
-            'online_logs' => '在线记录',
-            'online_monitor' => '在线监控',
-            'notify' => '通知记录',
-            'payment_callback' => '支付回调',
-            'system' => '系统日志',
-        ],
-        'tools' => [
-            'attribute' => '工具箱',
-            'decompile' => '反解析',
-            'convert' => '格式转换',
-            'import' => '数据导入',
-            'analysis' => '日志分析',
-        ],
-        'setting' => [
-            'attribute' => '设置',
-            'email_suffix' => '邮箱后缀管理',
-            'universal' => '通用配置',
-            'system' => '系统设置',
-        ],
-    ],
-    'user' => [
-        'massive' => [
-            'text' => '用户生成数量',
-            'button' => '批量生成',
-            'failed' => '批量生成账号失败',
-            'succeed' => '批量生成账号成功',
-            'note' => '后台批量生成用户',
-        ],
-        'proxy_info' => '설정 정보',
-        'traffic_monitor' => '流量统计',
-        'online_monitor' => '在线巡查',
-        'reset_traffic' => '데이터 재설정',
-        'user_view' => '用户视角',
-        'connection_test' => '联网测试',
-        'counts' => '共 <code>:num</code> 个账号',
-        'reset_confirm' => [0 => '确定重置 【', 1 => '】 的流量吗?'],
-        'info' => [
-            'account' => '账号信息',
-            'proxy' => '代理信息',
-            'switch' => '切换身份',
-            'reset_date_hint' => '账号流量下一个重置日期',
-            'expired_date_hint' => '留空默认为一年',
-            'uuid_hint' => 'V2Ray的账户ID',
-            'recharge_placeholder' => '填入负值则会扣余额',
-        ],
-        'update_help' => '更新成功,是否返回?',
-        'proxies_config' => '【:username】连接配置信息',
-        'group' => [
-            'title' => '用户分组控制<small>(同一节点可分配至多个分组,一个用户只能属于一个分组;对于用户可见/可用节点:先按分组后按等级)</small>',
-            'name' => '分组名称',
-            'counts' => '共 <code>:num</code> 个分组',
-        ],
-    ],
-    'zero_unlimited_hint' => '不设置/0,即为无限制',
-    'node' => [
-        'traffic_monitor' => '流量统计',
-        'refresh_geo' => '刷新地理',
-        'ping' => '检测延迟',
-        'connection_test' => '连通性检测',
-        'counts' => '共 <code> :num </code> 条线路',
-        'reload_all' => '重载【全部】后端',
-        'refresh_geo_all' => '刷新【全部】节点地理信息',
-        'reload_confirm' => '确定重载节点?',
-        'info' => [
-            'hint' => '<strong>注意:</strong> 添加节点后自动生成的<code>ID</code>,即为该节点部署ShadowsocksR Python版后端时<code>usermysql.json</code>中的<code>node_id</code>的值,同时也是部署V2Ray后端时的<code>nodeId</code>的值;',
-            'basic' => '基础信息',
-            'ddns_hint' => '动态IP节点需要<a href="https://github.com/NewFuture/DDNS" target="_blank">配置DDNS</a>,对此类型节点,节点阻断功能会通过域名进行检测',
-            'domain_placeholder' => '服务器域名地址,填则优先取域名地址',
-            'domain_hint' => '系统设置中开启【DDNS模式】,域名将会自动与下方IP内容进行绑定操作!无需再前往域名注册商页面修改IP信息了哟',
-            'extend' => '扩展信息',
-            'display' => [
-                'invisible' => '完全不可见',
-                'node' => '只显示于【:trans】页面',
-                'sub' => '只显示于【订 阅】',
-                'all' => '完全可见',
-                'hint' => '用户是否可以订阅/看到本节点',
-            ],
-            'ipv4_hint' => '多IP使用“, ”分割,例:1.1.1.1, 8.8.8.8',
-            'ipv6_hint' => '多IP使用“, ”分割,例:1.1.1.1, 8.8.8.8',
-            'ipv4_placeholder' => '服务器IPv4地址',
-            'ipv6_placeholder' => '服务器IPv6地址,填写则用户可见,域名无效',
-            'push_port_hint' => '必填且防火墙需放行,否则将导致消息推送异常',
-            'data_rate_hint' => '举例:0.1用100M结算10M,5用100M结算500M',
-            'level_hint' => '等级:0-无等级,全部可见',
-            'detection' => [
-                'tcp' => '只检测TCP',
-                'icmp' => '只检测ICMP',
-                'all' => '检测全部',
-                'hint' => '每30~60分钟随机进行节点阻断检测',
-            ],
-            'obfs_param_hint' => '混淆不为 [plain] 时可填入参数进行流量伪装;&#13;&#10;混淆为 [http_simple] 时,建议端口为 80;&#13;&#10;混淆为 [tls] 时,建议端口为 443;',
-            'additional_ports_hint' => '如果启用请配置服务端的<span class="red-700"><a href="javascript:showTnc();">additional_ports</a></span>信息',
-            'v2_method_hint' => '使用WebSocket传输协议时不要使用none',
-            'v2_net_hint' => '使用WebSocket传输协议时请启用TLS',
-            'v2_cover' => [
-                'none' => '无伪装',
-                'http' => 'HTTP数据流',
-                'srtp' => '视频通话数据 (SRTP)',
-                'utp' => 'BT下载数据 (uTP)',
-                'wechat' => '微信视频通话',
-                'dtls' => 'DTLS1.2数据包',
-                'wireguard' => 'WireGuard数据包',
-            ],
-            'v2_host_hint' => '伪装类型为http时多个伪装域名逗号隔开,使用WebSocket传输协议时只允许单个',
-            'v2_tls_provider_hint' => '不同后端配置不同:',
-            'single_hint' => '推荐80或443,服务端需要配置 <br> 严格模式:用户的端口无法连接,只能通过以下指定的端口进行连接(<a href="javascript:showPortsOnlyConfig();">如何配置</a>)',
-        ],
-        'proxy_info' => '*兼容 SS',
-        'proxy_info_hint' => '如果兼容请在服务端配置协议和混淆时加上<span class="red-700">_compatible</span>',
-        'reload' => '重载后端',
-        'auth' => [
-            'title' => '节点授权列表<small>WEBAPI</small>',
-            'deploy' => [
-                'title' => '部署 :type_label 后端',
-                'attribute' => '部署后端',
-                'command' => '操作命令',
-                'update' => '更新:',
-                'uninstall' => '卸载:',
-                'start' => '启动:',
-                'stop' => '停止:',
-                'status' => '状态:',
-                'recent_logs' => '近期日志:',
-                'real_time_logs' => '实时日志:',
-                'restart' => '重启:',
-                'same' => '同上',
-                'trojan_hint' => '请先<a href=":url" target="_blank">填写节点域名</a>并将域名解析到节点对应的IP上',
-            ],
-            'reset_auth' => '重置密钥',
-            'counts' => '共 <code>:num</code> 条授权',
-            'generating_all' => '确定生成所有节点的授权吗?',
-        ],
-        'cert' => [
-            'title' => '域名证书列表<small>(V2Ray节点的伪装域名)</small>',
-            'counts' => '共 <code>:num</code> 个域名证书',
-            'key_placeholder' => '域名证书的KEY值,允许为空,VNET-V2Ray后端支持自动签证书',
-            'pem_placeholder' => '域名证书的PEM值,允许为空,VNET-V2Ray后端支持自动签证书',
-        ],
-    ],
-    'hint' => '提示',
-    'oauth' => [
-        'title' => '用户OAuth授权',
-        'counts' => '共 <code>:num</code> 个授权',
-    ],
-    'select_all' => '全 选',
-    'clear' => '清 空',
-    'unselected_hint' => '待分配规则,此处可搜索',
-    'selected_hint' => '已分配规则,此处可搜索',
-    'clone' => '克隆',
-    'monitor' => [
-        'daily_chart' => '每日流量图',
-        'monthly_chart' => '月流量图',
-        'node' => '节点流量',
-        'user' => '用户流量',
-        'hint' => '<strong>提示:</strong> 如果无统计数据,请检查定时任务是否正常。',
-    ],
-    'tools' => [
-        'analysis' => [
-            'title' => 'SSR日志分析<small>仅适用于单机单节点</small>',
-            'req_url' => '近期请求地址',
-            'not_enough' => '访问记录不足15000条,无法分析数据',
-        ],
-        'convert' => [
-            'title' => '格式转换 <small>Shadowsocks 转 ShadowsocksR</small>',
-            'content_placeholder' => '请填入要转换的配置信息',
-        ],
-        'decompile' => [
-            'title' => '反解析<small>配置转换</small>',
-            'attribute' => '反解析',
-            'content_placeholder' => '请填入要反解析的ShadowsocksR链接,一行一条',
-        ],
-    ],
-    'ticket' => [
-        'title' => '工单列表',
-        'counts' => '共 <code>:num</code> 个工单',
-        'send_to' => '请填入目标用户信息!',
-        'user_info' => '用户信息',
-        'inviter_info' => '邀请人信息',
-        'close_confirm' => '确定关闭工单?',
-        'error' => '未知错误!请查看运行日志',
-    ],
-    'logs' => [
-        'subscribe' => '订阅列表',
-        'counts' => '共 <code>:num</code> 条记录',
-        'rule' => [
-            'clear_all' => '清空记录',
-            'title' => '触发记录',
-            'name' => '触发规则',
-            'reason' => '触发原因',
-            'created_at' => '触发时间',
-            'tag' => '✅ 访问非规则允许内容',
-            'clear_confirm' => '确定清空所有记录吗?',
-        ],
-        'order' => [
-            'title' => '订单列表',
-            'is_expired' => '是否过期',
-            'is_coupon' => '是否使用优惠券',
-        ],
-        'user_traffic' => [
-            'title' => '流量使用记录',
-            'choose_node' => '选择节点',
-        ],
-        'user_data_modify_title' => '流量变动记录',
-        'callback' => '回调日志 <small>(在线支付)</small>',
-        'notification' => '邮件投递记录',
-        'ip_monitor' => '在线IP监控 <small>2分钟内的实时数据</small>',
-        'user_ip' => [
-            'title' => '用户在线IP列表 <small>最近10分钟</small>',
-            'connect' => '连接IP',
-        ],
-        'ban' => [
-            'title' => '用户封禁记录',
-            'time' => '时长',
-            'reason' => '理由',
-            'ban_time' => '封禁时间',
-            'last_connect_at' => '最后连接时间',
-        ],
-        'credit_title' => '余额变动记录',
-    ],
-    'start_time' => '开始区间',
-    'end_time' => '结束区间',
-    'goods' => [
-        'title' => '商品列表',
-        'type' => [
-            'top_up' => '충전',
-            'package' => '流量包',
-            'plan' => '套餐',
-        ],
-        'info' => [
-            'type_hint' => '套餐与账号有效期有关,流量包只扣可用流量,不影响有效期',
-            'period_hint' => '套餐流量会每N天重置',
-            'limit_num_hint' => '每个用户可以购买该商品次数,为 0 时代表不限购',
-            'available_date_hint' => '到期后会自动从总流量扣减对应的流量',
-            'desc_placeholder' => '商品的简单描述',
-            'list_placeholder' => '商品的自定义列表添加',
-            'list_hint' => '每行内容请以<code>&lt;li&gt;</code> 开头<code>&lt;/li&gt;</code> 结尾',
-        ],
-        'status' => [
-            'yes' => '上架',
-            'no' => '下架',
-        ],
-        'sell_and_used' => '使用 / 销售',
-        'counts' => '共 <code>:num</code> 个商品',
-    ],
-    'sort_asc' => '排序值越大排越前',
-    'yes' => '是',
-    'no' => '否',
-    'rule' => [
-        'type' => [
-            'reg' => '正则表达式',
-            'domain' => '域名',
-            'ip' => 'IP',
-            'protocol' => '协议',
-        ],
-        'counts' => '共 <code>:num</code> 条审计规则',
-        'title' => '规则列表',
-        'group' => [
-            'type' => [
-                'off' => '阻断',
-                'on' => '放行',
-            ],
-            'title' => '规则分组',
-            'counts' => '共 <code>:num</code> 个分组',
-        ],
-    ],
-    'role' => [
-        'name_hint' => '唯一标识名称,例如:Administrator',
-        'description_hint' => '面板显示名称,例如:管理员',
-        'title' => '权限角色列表',
-        'permissions_all' => '全部权限',
-        'counts' => '共 <code>:num</code> 个权限角色',
-    ],
-    'report' => [
-        'monthly_accounting' => '月流水账簿',
-        'annually_accounting' => '年流水账簿',
-        'historic_accounting' => '历史流水账簿',
-        'current_month' => '本 月',
-        'last_month' => '上 月',
-        'current_year' => '今 年',
-        'last_year' => '去 年',
-        'hourly_traffic' => '每时流量',
-        'daily_traffic' => '每天流量',
-        'today' => '本 日',
-    ],
-    'permission' => [
-        'title' => '权限行为列表',
-        'description_hint' => '填写描述,例:【A系统】编辑A',
-        'name_hint' => '填写路由名称,例:admin.permission.create,update',
-        'counts' => '共 <code>:num</code> 条权限行为',
-    ],
-    'marketing' => [
-        'email' => [
-            'title' => '邮件群发列表',
-            'group_send' => '群发邮件',
-            'counts' => '共 <code>:num</code> 条消息',
-        ],
-        'send_status' => '发送状态',
-        'send_time' => '发送时间',
-        'error_message' => '错误信息',
-        'push' => [
-            'title' => '推送消息列表',
-            'send' => '推送消息',
-            'counts' => '共 <code>:num</code> 条推送消息',
-        ],
-    ],
-    'creating' => '正在添加...',
-    'article' => [
-        'type' => [
-            'knowledge' => '文章',
-            'announcement' => '공지',
-        ],
-        'category_hint' => '同一类别将归类与同一文件夹下',
-        'logo_hint' => '推荐尺寸:100x75',
-        'title' => '文章列表',
-        'counts' => '共 <code>:num</code> 篇文章',
-    ],
-    'coupon' => [
-        'title' => '卡券列表',
-        'name_hint' => '会用于前端显示',
-        'sn_hint' => '提供给用户使用卡券的卡券,留空则默认为8位随机码',
-        'type' => [
-            'voucher' => '抵用券',
-            'discount' => '折扣券',
-            'charge' => '充值券',
-        ],
-        'type_hint' => '抵用:抵扣商品金额,折扣:商品百分比打折,充值:充值用户账号余额',
-        'value' => '{1} ➖ :num|{2} :num 折|{3} ➕ :num',
-        'value_hint' => '范围为 1% ~ 99% ',
-        'priority_hint' => '同【使用券码】下,符合条件的高权重码将会被优先使用。最高为 255',
-        'minimum_hint' => '当支付金额超过 <strong>:num</strong> 值时,才能使用本优惠劵;',
-        'used_hint' => '符合条件的用户可以使用本券 <strong>:num</strong> 次;',
-        'levels_hint' => '用户等级在选定等级内,方可使用本券',
-        'groups_hint' => '选定的用户分组,方可使用本券',
-        'users_placeholder' => '输入用户ID, 再回车',
-        'user_whitelist_hint' => '涉及用户均可使用本券,留空为不使用此条件',
-        'users_blacklist_hint' => '涉及用户均不可使用本券,空为不使用此条件',
-        'services_placeholder' => '输入商品ID, 再回车',
-        'services_whitelist_hint' => '涉及商品方可使用本券,留空为不使用此条件',
-        'services_blacklist_hint' => '涉及商品不可使用本券,留空为不使用此条件',
-        'newbie' => [
-            'first_discount' => '首次用任意券',
-            'first_order' => '首单',
-            'created_days' => '创号',
-        ],
-        'created_days_hint' => '且 创号 <code>:days</code> 天',
-        'limit_hint' => '本项各条件为 <strong>并且</strong> 关系,请自行搭配使用',
-        'info_title' => '卡券信息',
-        'counts' => '共 <code>:num</code> 张优惠券',
-        'discount' => '할인',
-        'export_title' => '卡券导出',
-        'single_use' => '一次性',
-    ],
-    'times' => '次',
-    'massive_export' => '批量导出',
-    'system_generate' => '系统生成',
-    'aff' => [
-        'rebate_title' => '返利流水记录',
-        'counts' => '共 <code>:num</code> 个申请',
-        'title' => '提现申请列表',
-        'apply_counts' => '共 <code>:num</code> 个申请',
-        'referral' => '推广返利',
-        'commission_title' => '提现申请详情',
-        'commission_counts' => '本申请共涉及 <code>:num</code> 单',
-    ],
-    'setting' => [
-        'common' => [
-            'title' => '通用配置',
-            'set_default' => '设为默认',
-            'connect_nodes' => '关联节点数',
-        ],
-        'email' => [
-            'title' => '邮箱过滤列表 <small>(用于屏蔽注册邮箱后缀)</small>',
-            'tail' => '邮箱后缀',
-            'rule' => '规则',
-            'black' => '黑名单',
-            'white' => '白名单',
-            'tail_placeholder' => '请填入邮箱后缀',
-        ],
-        'system' => [
-            'title' => '系统配置',
-            'web' => '网站常规',
-            'account' => '账号设置',
-            'node' => '节点设置',
-            'extend' => '拓展功能',
-            'check_in' => '签到系统',
-            'promotion' => '推广系统',
-            'notify' => '通知系统',
-            'auto_job' => '自动任务',
-            'other' => 'LOGO|客服|统计',
-            'payment' => '支付系统',
-            'menu' => '菜单',
-        ],
-        'no_permission' => '您没有权限修改参数!',
-    ],
-    'system' => [
-        'account_expire_notification' => '账号过期通知',
-        'active_times' => '激活账号次数',
-        'admin_invite_days' => '管理员-邀请码有效期',
-        'aff_salt' => '邀请链接 用户信息字符化',
-        'alipay_qrcode' => '支付宝二维码',
-        'AppStore_id' => '苹果账号',
-        'AppStore_password' => '苹果密码',
-        'auto_release_port' => '端口回收机制',
-        'bark_key' => 'Bark设备号',
-        'captcha_key' => '验证码 Key',
-        'captcha_secret' => '验证码 Secret/ID',
-        'codepay_id' => '码支付ID',
-        'codepay_key' => '通信密钥',
-        'codepay_url' => '请求URL',
-        'data_anomaly_notification' => '流量异常通知',
-        'data_exhaust_notification' => '流量耗尽通知',
-        'ddns_key' => 'DNS服务商Key',
-        'ddns_mode' => 'DDNS模式',
-        'ddns_secret' => 'DNS服务商Secret',
-        'default_days' => '初始有效期',
-        'default_traffic' => '初始流量',
-        'detection_check_times' => '阻断检测提醒',
-        'dingTalk_access_token' => '钉钉自定义机器人 Access Token',
-        'dingTalk_secret' => '钉钉自定义机器人 密钥',
-        'epay_key' => '商户密钥',
-        'epay_mch_id' => '商户ID',
-        'epay_url' => '接口对接地址',
-        'expire_days' => '过期警告阈值',
-        'f2fpay_app_id' => '应用ID',
-        'f2fpay_private_key' => '应用私钥',
-        'f2fpay_public_key' => '支付宝公钥',
-        'forbid_mode' => '禁止访问模式',
-        'invite_num' => '可生成邀请码数',
-        'is_activate_account' => '激活账号',
-        'is_AliPay' => '支付宝支付',
-        'is_ban_status' => '过期自动封禁',
-        'is_captcha' => '验证码模式',
-        'is_checkin' => '签到加流量',
-        'is_clear_log' => '自动清除日志',
-        'is_custom_subscribe' => '高级订阅',
-        'is_email_filtering' => '邮箱过滤机制',
-        'is_forbid_robot' => '阻止机器人访问',
-        'is_free_code' => '免费邀请码',
-        'is_invite_register' => '邀请注册',
-        'is_otherPay' => '特殊支付',
-        'is_QQPay' => 'QQ钱包',
-        'is_rand_port' => '随机端口',
-        'is_register' => '用户注册',
-        'is_subscribe_ban' => '订阅异常自动封禁',
-        'is_traffic_ban' => '异常自动封号',
-        'is_WeChatPay' => '微信支付',
-        'iYuu_token' => 'IYUU令牌',
-        'maintenance_content' => '维护介绍内容',
-        'maintenance_mode' => 'Maintenance Mode',
-        'maintenance_time' => '维护结束时间',
-        'min_port' => '端口范围',
-        'min_rand_traffic' => '流量范围',
-        'node_blocked_notification' => '节点阻断提醒',
-        'node_daily_notification' => '节点使用报告',
-        'node_offline_notification' => '节点离线提醒',
-        'oauth_path' => '第三方登录平台',
-        'offline_check_times' => '离线提醒次数',
-        'password_reset_notification' => '비밀번호 재설정',
-        'paybeaver_app_id' => 'App ID',
-        'paybeaver_app_secret' => 'App Secret',
-        'payjs_key' => '通信密钥',
-        'payjs_mch_id' => '商户号',
-        'payment_confirm_notification' => '人工支付确认通知',
-        'payment_received_notification' => '支付成功通知',
-        'paypal_app_id' => 'APP ID',
-        'paypal_client_id' => 'Client ID',
-        'paypal_client_secret' => 'Client Secret key',
-        'pushDeer_key' => 'PushDeer Key',
-        'pushplus_token' => 'PushPlus Token',
-        'rand_subscribe' => '随机订阅',
-        'redirect_url' => '重定向地址',
-        'referral_money' => '提现限制',
-        'referral_percent' => '返利比例',
-        'referral_status' => '推广功能',
-        'referral_traffic' => '注册送流量',
-        'referral_type' => '返利模式',
-        'register_ip_limit' => '同IP注册限制',
-        'reset_password_times' => '重置密码次数',
-        'reset_traffic' => '流量自动重置',
-        'server_chan_key' => 'ServerChan SCKEY',
-        'standard_currency' => '本位货币',
-        'stripe_public_key' => 'Public Key',
-        'stripe_secret_key' => 'Secret Key',
-        'stripe_signing_secret' => 'WebHook Signing secret',
-        'subject_name' => '自定义商品名称',
-        'subscribe_ban_times' => '订阅请求阈值',
-        'subscribe_domain' => '节点订阅地址',
-        'subscribe_max' => '订阅节点数',
-        'telegram_token' => 'Telegram Token',
-        'tg_chat_token' => 'TG酱Token',
-        'theadpay_key' => '商家密钥',
-        'theadpay_mchid' => '商家ID',
-        'theadpay_url' => '接口地址',
-        'ticket_closed_notification' => '工单关闭通知',
-        'ticket_created_notification' => '新工单通知',
-        'ticket_replied_notification' => '工单回复通知',
-        'traffic_ban_time' => '封号时长',
-        'traffic_ban_value' => '流量异常阈值',
-        'traffic_limit_time' => '时间间隔',
-        'traffic_warning_percent' => '流量警告阈值',
-        'trojan_license' => 'Trojan授权',
-        'username_type' => '账号类型',
-        'user_invite_days' => '用户-邀请码有效期',
-        'v2ray_license' => 'V2Ray授权',
-        'v2ray_tls_provider' => 'V2Ray TLS配置',
-        'webmaster_email' => '管理员邮箱',
-        'website_analytics' => '统计代码',
-        'website_callback_url' => '通用支付回调地址',
-        'website_customer_service' => '客服代码',
-        'website_home_logo' => '首页LOGO',
-        'website_logo' => '站内LOGO',
-        'website_name' => '网站名称',
-        'website_security_code' => '网站安全码',
-        'website_url' => '网站地址',
-        'web_api_url' => '授权/后端访问域名',
-        'wechat_aid' => '微信企业应用ID',
-        'wechat_cid' => '微信企业ID',
-        'wechat_encodingAESKey' => '微信企业应用EncodingAESKey',
-        'wechat_qrcode' => '微 信二维码',
-        'wechat_secret' => '微信企业应用密钥',
-        'wechat_token' => '微信企业应用TOKEN',
-        'hint' => [
-            'account_expire_notification' => '通知用户账号即将到期',
-            'active_times' => '24小时内可以通过邮件激活账号次数',
-            'admin_invite_days' => '管理员生成邀请码的有效期',
-            'aff_salt' => '留空时,邀请链接将显示用户ID;填入任意英文/数字 即可对用户链接ID进行加密',
-            'AppStore_id' => 'iOS软件设置教程中使用的苹果账号',
-            'AppStore_password' => 'iOS软件设置教程中使用的苹果密码',
-            'auto_release_port' => '被封禁/过期 <code>'.config('tasks.release_port').'</code> 天的账号端口自动释放',
-            'bark_key' => '推送消息到iOS设备,需要在iOS设备里装一个名为Bark的应用,取网址后的一长串字符串,启用Bark,请务必填入本值',
-            'captcha_key' => '浏览<a href="https://proxypanel.gitbook.io/wiki/captcha" target="_blank">设置指南</a>来设置',
-            'data_anomaly_notification' => '1小时内流量超过异常阈值通知超管',
-            'data_exhaust_notification' => '通知用户流量即将耗尽',
-            'ddns_key' => "浏览<a href='https://proxypanel.gitbook.io/wiki/ddns' target='_blank'>设置指南</a>来设置",
-            'ddns_mode' => '添加/编辑/删除节点的【域名、ipv4、ipv6】时,自动更新对应内容至DNS服务商',
-            'default_days' => '用户注册时默认账户有效期,为0即当天到期',
-            'default_traffic' => '用户注册时默认可用流量',
-            'detection_check_times' => '提醒N次后自动下线节点,为0/留空时不限制,不超过12',
-            'dingTalk_access_token' => '可以阅读<a href=https://open.dingtalk.com/document/group/custom-robot-access#title-jfe-yo9-jl2 target=_blank>钉钉手册</a>查阅步骤',
-            'dingTalk_secret' => '可选填!开启机器人[加签]就是必填项目!',
-            'expire_days' => '【账号过期通知】开始阈值,每日通知用户',
-            'f2fpay_app_id' => '即:APPID',
-            'f2fpay_private_key' => '生成秘钥软件生成时,产生的应用秘钥',
-            'f2fpay_public_key' => '注意不是应用公钥!',
-            'forbid_mode' => '依据IP对对应地区进行阻拦,非阻拦地区可正常访问',
-            'invite_num' => '用户可以生成的邀请码数',
-            'is_activate_account' => '启用后用户需要通过邮件来激活账号',
-            'is_ban_status' => '(慎重)封禁整个账号会重置账号的所有数据且会导致用户无法登录,不开启状态下只封禁用户代理',
-            'is_captcha' => '启用后 登录/注册 需要进行验证码认证',
-            'is_checkin' => '登录时将根据流量范围随机得到流量',
-            'is_clear_log' => '(推荐)启用后自动清除无用日志',
-            'is_custom_subscribe' => '启用后,订阅信息顶部将显示过期时间、剩余流量(只支持个别客户端)',
-            'is_email_filtering' => '黑名单: 用户可使用任意黑名单外的邮箱注册;白名单:用户只能选择使用白名单中的邮箱后缀注册',
-            'is_forbid_robot' => '如果是机器人、爬虫、代理访问网站则会抛出404错误',
-            'is_free_code' => '关闭后免费邀请码不可见',
-            'is_rand_port' => '注册、添加用户时随机生成端口',
-            'is_register' => '关闭后无法注册',
-            'is_subscribe_ban' => '启用后用户订阅链接请求超过设定阈值则自动封禁',
-            'is_traffic_ban' => '1小时内流量超过异常阈值则自动封号(仅禁用代理)',
-            'iYuu_token' => '启用爱语飞飞,请务必填入本值(<a href=https://iyuu.cn target=_blank>申请 IYUU令牌</a>)',
-            'maintenance_content' => '自定义维护内容信息',
-            'maintenance_mode' => "启用后,用户访问转移至维护界面 | 管理员使用 <a href='javascript:(0)'>:url</a> 登录",
-            'maintenance_time' => '用于维护界面倒计时',
-            'min_port' => '端口范围:1000 - 65535',
-            'node_blocked_notification' => '每小时检测节点是否被阻断并提醒管理员',
-            'node_daily_notification' => '报告各节点流量昨日消耗情况',
-            'node_offline_notification' => '每10分钟检测节点离线并提醒管理员',
-            'oauth_path' => '请在.ENV中添加设置,再在此处开启平台',
-            'offline_check_times' => '24小时内提醒n次后不再提醒',
-            'password_reset_notification' => '启用后用户可以重置密码',
-            'paybeaver_app_id' => '<a href="https://merchant.paybeaver.com/" target="_blank">商户中心</a> -> 开发者 -> App ID',
-            'paybeaver_app_secret' => '<a href="https://merchant.paybeaver.com/" target="_blank">商户中心</a> -> 开发者 -> App Secret',
-            'payjs_mch_id' => '在<a href="https://payjs.cn/dashboard/member" target="_blank">本界面</a>获取信息',
-            'payment_confirm_notification' => '用户使用人工支付后通知管理员处理订单',
-            'payment_received_notification' => '用户支付订单后通知用户订单状态',
-            'pushDeer_key' => '启用PushDeer,请务必填入本值(<a href=https://www.pushdeer.com/official.html target=_blank>申请 Push Key</a>)',
-            'pushplus_token' => '启用PushPlus,请务必填入本值(<a href=https://www.pushplus.plus/push1.html target=_blank>申请 Token</a>)',
-            'rand_subscribe' => '启用后,订阅时将随机返回节点信息,否则按节点排序返回',
-            'redirect_url' => '触发审计规则时访问请求被阻断并重定向至该地址',
-            'referral_money' => '满多少元才可以申请提现',
-            'referral_percent' => '根据推广链接注册的账号每笔消费推广人可以分成的比例',
-            'referral_status' => '关闭后用户不可见,但是不影响其正常邀请返利',
-            'referral_traffic' => '根据推广链接、邀请码注册则赠送相应的流量',
-            'referral_type' => '切换模式后旧数据不变,新的返利按新的模式计算',
-            'register_ip_limit' => '同IP在24小时内允许注册数量,为0/留空时不限制',
-            'reset_password_times' => '24小时内可以通过邮件重置密码次数',
-            'reset_traffic' => '用户会按其购买套餐的日期自动重置可用流量',
-            'server_chan_key' => '启用ServerChan,请务必填入本值(<a href=https://sc.ftqq.com target=_blank>申请 SCKEY</a>)',
-            'standard_currency' => '网站中涉及金钱部分的默认货币',
-            'subject_name' => '用于在支付渠道的商品标题显示',
-            'subscribe_ban_times' => '24小时内订阅链接请求次数限制',
-            'subscribe_domain' => '(推荐)防止面板域名被DNS投毒后无法正常订阅,需带http://或https://"',
-            'subscribe_max' => '客户端订阅时取得几个节点,为0/留空时返回全部节点',
-            'telegram_token' => '找 <a href=https://t.me/BotFather target=_blank>@BotFather</a> 申请机器人获取TOKEN',
-            'tg_chat_token' => '启用TG酱,请务必填入本值(<a href=https://t.me/realtgchat_bot target=_blank>申请 Token</a>)',
-            'ticket_closed_notification' => '工单关闭通知用户',
-            'ticket_created_notification' => '新工单通知管理/用户,取决于谁创建了新工单',
-            'ticket_replied_notification' => '工单回复通知对方',
-            'traffic_ban_time' => '任何异常导致用户/订阅被封禁的时长, 到期后自动解封',
-            'traffic_ban_value' => '1小时内超过该值,则触发自动封号',
-            'traffic_limit_time' => '间隔多久才可以再次签到',
-            'traffic_warning_percent' => '【流量耗尽通知】开始阈值,每日通知用户',
-            'username_type' => '规范站点用户账号的类型,默认为电子邮箱',
-            'user_invite_days' => '用户自行生成邀请的有效期',
-            'v2ray_tls_provider' => '后端自动签发/载入TLS证书时用(节点的设置值优先级高于此处)',
-            'webmaster_email' => '错误提示时会提供管理员邮箱作为联系方式',
-            'website_analytics' => '统计JS',
-            'website_callback_url' => '防止因为网站域名被DNS投毒后导致支付无法正常回调,需带http://或https://',
-            'website_customer_service' => '客服JS',
-            'website_name' => '发邮件时展示',
-            'website_security_code' => '非空时必须通过<a href=":url" target="_blank">安全入口</a>加上安全码才可访问',
-            'website_url' => '生成重置密码、在线支付必备',
-            'web_api_url' => '例:'.config('app.url'),
-            'wechat_aid' => '在<a href=https://work.weixin.qq.com/wework_admin/frame#apps arget=_blank>应用管理</a>自建中创建应用 - AgentId',
-            'wechat_cid' => '获取<a href=https://work.weixin.qq.com/wework_admin/frame#profile target=_blank>我的企业</a>中的企业ID',
-            'wechat_encodingAESKey' => '应用管理->应用->设置API接收->EncodingAESKey',
-            'wechat_secret' => '应用的Secret(可能需要下载企业微信才能查看)',
-            'wechat_token' => '应用管理->应用->设置API接收->TOKEN,URL设置::url',
-        ],
-        'placeholder' => [
-            'default_url' => '默认为 :url',
-            'server_chan_key' => '填入ServerChan的SCKEY->再点击更新',
-            'pushDeer_key' => '填入PushDeer的Push Key -> 再点击更新',
-            'iYuu_token' => '填入爱语飞飞的IYUU令牌 -> 再点击更新',
-            'bark_key' => '填入Bark的设备号 -> 再点击更新',
-            'telegram_token' => '填入Telegram的 Token -> 再点击更新',
-            'pushplus_token' => '请到ServerChan申请',
-            'dingTalk_access_token' => '自定义机器人的WebHook中的access_token',
-            'dingTalk_secret' => '自定义机器人加签后出现的的密钥',
-            'wechat_aid' => '应用的AgentId',
-            'wechat_cid' => '填入微信企业ID -> 再点击更新',
-            'wechat_secret' => '应用的Secret',
-            'tg_chat_token' => '请到Telegram申请',
-            'codepay_url' => 'https://codepay.fateqq.com/creat_order/?',
-        ],
-        'payment' => [
-            'attribute' => '支付设置',
-            'channel' => [
-                'alipay' => '支付宝F2F',
-                'codepay' => '码支付',
-                'epay' => '易支付',
-                'payjs' => 'PayJs',
-                'paypal' => 'PayPal',
-                'stripe' => 'Stripe',
-                'paybeaver' => '海狸支付',
-                'theadpay' => '平头哥支付',
-                'manual' => '人工支付',
-            ],
-            'hint' => [
-                'alipay' => '本功能需要<a href="https://open.alipay.com/platform/appManage.htm?#/create/" target="_blank">蚂蚁金服开放平台</a>申请权限及应用',
-                'codepay' => '请到 <a href="https://codepay.fateqq.com/i/377289" target="_blank">码支付</a>申请账号,然后下载登录其挂机软件',
-                'payjs' => '请到<a href="https://payjs.cn/ref/zgxjnb" target="_blank">PayJs</a> 申请账号',
-                'paypal' => '使用商家账号登录<a href="https://www.paypal.com/businessprofile/mytools/apiaccess/firstparty" target="_blank">API凭证申请页</a>, 同意并获取设置信息',
-                'paybeaver' => '请到<a href="https://merchant.paybeaver.com/?aff_code=iK4GNuX8" target="_blank">海狸支付 PayBeaver</a>申请账号',
-                'theadpay' => '请到<a href="https://theadpay.com/" target="_blank">平头哥支付 THeadPay</a>申请账号',
-                'manual' => '设置后会自动开启对应显示',
-            ],
-        ],
-        'notification' => [
-            'channel' => [
-                'telegram' => 'TG电报',
-                'wechat' => '微信企业',
-                'dingtalk' => '钉钉',
-                'email' => '이메일',
-                'bark' => 'Bark',
-                'serverchan' => 'ServerChan',
-                'pushdeer' => 'PushDeer',
-                'pushplus' => 'PushPlus',
-                'iyuu' => '爱语飞飞',
-                'tg_chat' => 'TG酱',
-                'site' => '站内通知',
-            ],
-            'send_test' => '发送测试消息',
-        ],
-        'forbid' => [
-            'mainland' => '阻拦大陆',
-            'china' => '阻拦中国',
-            'oversea' => '阻拦海外',
-        ],
-        'username' => [
-            'email' => '电子邮箱',
-            'mobile' => '手机号码',
-            'any' => '任意用户名',
-        ],
-        'active_account' => [
-            'before' => '注册前激活',
-            'after' => '注册后激活',
-        ],
-        'ddns' => [
-            'namesilo' => 'Namesilo',
-            'aliyun' => '阿里云(国际&国内)',
-            'dnspod' => 'DNSPod',
-            'cloudflare' => 'CloudFlare',
-        ],
-        'captcha' => [
-            'standard' => '普通验证码',
-            'geetest' => '极 验',
-            'recaptcha' => 'Google reCaptcha',
-            'hcaptcha' => 'hCaptcha',
-        ],
-        'referral' => [
-            'once' => '首购返利',
-            'loop' => '循环返利',
-        ],
-    ],
-    'set_to' => '置 :attribute',
-    'minute' => '分钟',
-    'query' => '查 询',
-    'optional' => '옵션',
-    'require' => '必须',
-];

+ 0 - 100
resources/lang/ko/auth.php

@@ -1,100 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-return [
-    'accept_term' => '약관을 확인하였으며, 이에 동의합니다.',
-    'active' => [
-        'attribute' => '활성화',
-        'error' => [
-            'activated' => '계정이 이미 활성화 되어있습니다. 다시 활성화할 필요가 없습니다.',
-            'disable' => '이 사이트는 계정 활성화 시스템을 사용하지 않습니다. 사이트로 가서 로그인 해주세요!',
-            'throttle' => '회원님의 비정상적인 행동이 감지되었습니다. 조작에 주의부탁드립니다! 문제가 있을 경우 이메일로 연락주세요.',
-        ],
-        'promotion' => '계정이 아직 활성화되지 않은 경우 먼저 [:action]하세요!',
-        'sent' => '활성화코드가 이미 회원님의 이메일로 전송되었습니다. 잠시 후에 메일 확인이 안 될 경우, 휴지통이나 스팸차단을 확인해주세요.',
-    ],
-    'aup' => '수용가능한 이용약관',
-    'captcha' => [
-        'attribute' => '인증번호',
-        'error' => [
-            'failed' => '인증번호 확인 실패, 다시 입력해주세요.',
-            'timeout' => '인증번호가 올바르지 않습니다! 제한시간이 지났거나 새로고침하여 다시 시도해주세요.',
-        ],
-        'required' => '인증번호를 정확하게 입력해주세요.',
-        'sent' => '인증번호가 메일로 전송되었습니다. 잠시 후에 도착하지 않을 경우 휴지통이나 스팸차단을 확인해주세요',
-    ],
-    'email' => [
-        'error' => [
-            'banned' => '사이트에서 고객님이 사용하시는 이메일을 차단하였습니다. 다른 유효한 이메일을 사용해주세요.',
-            'invalid' => '지원하지 않는 이메일 형식입니다.',
-        ],
-    ],
-    'error' => [
-        'account_baned' => '회원님의 계정은 차단되었습니다!',
-        'login_error' => '로그인 오류, 잠시 후 다시 시도해주세요!',
-        'login_failed' => '로그인 실패, 이메일계정과 비밀번호를 정확하게 입력해주세요!',
-        'not_found_user' => '해당 계정을 찾을 수 없습니다. 다른 방식으로 로그인해주세요.',
-        'repeat_request' => '새로 고침 후 다시 시도해 주시기 바랍니다.',
-        'url_timeout' => '연결 실패, 다시 시도해주세요.',
-    ],
-    'failed' => '제출된 인증 정보가 레코드와 일치하지 않습니다.',
-    'invite' => [
-        'attribute' => '초대 코드',
-        'error' => [
-            'unavailable' => '초대코드 사용불가. 다시 시도해주세요.',
-        ],
-        'get' => '초대 코드를 받기',
-        'not_required' => '초대 코드없이 회원가입을 진행해주세요!',
-    ],
-    'login' => '로그인',
-    'logout' => '로그아웃',
-    'maintenance' => '보호',
-    'maintenance_tip' => '사이트 점검 중',
-    'oauth' => [
-        'bind_failed' => '연동 실패',
-        'bind_success' => '연동 성공',
-        'login_failed' => '중복 접속 실패!',
-        'rebind_success' => '재연동 성공',
-        'register' => '회원가입 바로가기',
-        'register_failed' => '회원가입 실패',
-        'registered' => '이미 가입되셨습니다, 로그인 해주세요.',
-        'unbind_failed' => '연동 해제 실패',
-        'unbind_success' => '연동 해제 성공',
-    ],
-    'one-click_login' => '一键登录',
-    'optional' => '옵션',
-    'password' => [
-        'forget' => '비밀번호를 잊으셨나요?',
-        'new' => '새로운 비밀번호를 입력하세요',
-        'original' => '이전 비밀번호',
-        'reset' => [
-            'attribute' => '비밀번호 재설정',
-            'error' => [
-                'demo' => '관리자 페이지 비밀번호 변경 금지',
-                'disabled' => '현재 비밀번호 재설정이 불가합니다. 다음 이메일로 연락 주세요: email',
-                'failed' => '비밀번호 재설정 실패',
-                'same' => '새 비밀번호는 기존 비밀번호와 같을 수 없습니다, 다시 입력해주세요.',
-                'throttle' => '24시간 이내 비밀번호 재설정 : time 회만 가능, 잦은 시도를 하지 마십시오.',
-                'wrong' => '이진 비밀번호 오류, 다시 입력해주세요.',
-            ],
-            'sent' => '재설정 성공, 모든 이메일을 확인해주세요. (없을 경우 스팸메일 확인)',
-            'success' => '새 비밀번호 설정 성공,  로그인 페이지로 가십시오.',
-        ],
-    ],
-    'register' => [
-        'attribute' => '회원가입',
-        'code' => '회원가입 인증번호',
-        'error' => [
-            'disable' => '죄송합니다. 현재 회원가입이 불가합니다.',
-            'throttle' => '防刷机制已激活,请勿频繁注册',
-        ],
-        'failed' => '회원가입 실패, 잠시 후 다시 시도해주세요.',
-        'promotion' => '아직 계정이 없으신가요?',
-        'success' => '회원가입 성공',
-    ],
-    'remember_me' => '로그인 상태 유지',
-    'request' => '획득',
-    'throttle' => '너무 많은 로그인을 시도하였습니다. :seconds 초 후에 다시 시도하십시오.',
-    'tos' => '이용 약관',
-];

+ 0 - 147
resources/lang/ko/common.php

@@ -1,147 +0,0 @@
-<?php
-
-return [
-    'hour' => '시',
-    'account' => '아이디',
-    'available_date' => '유효기간',
-    'created_at' => '创建时间',
-    'expired_at' => '만료시간',
-    'updated_at' => '갱신시간',
-    'latest_at' => '最近时间',
-    'back' => '뒤로가기',
-    'cancel' => '취소',
-    'close' => '닫기',
-    'close_item' => '닫기:attribute',
-    'confirm' => '확인',
-    'continues' => '계속',
-    'open' => '열기',
-    'send' => '전송',
-    'view' => '보기',
-    'reset' => '재설정',
-    'copy' => [
-        'attribute' => '복사',
-        'success' => '복사 성공',
-        'failed' => '복사 실패, 수동으로 복사해주세요.',
-    ],
-    'add' => '添 加',
-    'free' => '무료',
-    'replace' => '변경',
-    'submit' => '제출',
-    'submit_item' => '제출:attribute',
-    'generate' => '생성',
-    'generate_item' => '생성:attribute',
-    'to_safari' => [0 => '이용자약관', 1 => ', 여기서 선택해주세요.', 2 => 'Safari 로 열어주세요.', 3 => '정상적으로 본 사이트에 접속이 가능합니다.'],
-    'update_browser' => [0 => '고객님은 현재 사용 중', 1 => '만료', 2 => '의 부라우저.', 3 => '브라우저를 업데이트 해주세요.', 4 => '최고 환경에서의 웹서핑을 느끼기 위해'],
-    'apply' => '응용',
-    'avatar' => '프로필',
-    'customize' => '사용자 정의',
-    'all' => '전체',
-    'default' => '기본값',
-    'download' => '下 载',
-    'goto' => '이전',
-    'warning' => '경고',
-    'success' => '성공',
-    'success_item' => ':attribute成功',
-    'failed' => '실패',
-    'failed_item' => ':attribute失败',
-    'update' => '갱신',
-    'update_action' => '갱신:action',
-    'none' => '없음',
-    'new' => '신규',
-    'sorry' => '죄송합니다',
-    'applied' => ':attribute 발생',
-    'active_item' => ':attribute 활성화',
-    'error' => '错误',
-    'toggle' => '切 换',
-    'toggle_action' => '切换:action',
-    'request_url' => '请求地址',
-    'function' => [
-        'navigation' => '导航',
-        'menubar' => '菜单栏',
-        'fullscreen' => '全屏',
-    ],
-    'days' => [
-        'attribute' => '일 | 일',
-        'sun' => '周日',
-        'mon' => '周一',
-        'tue' => '周二',
-        'wed' => '周三',
-        'thu' => '周四',
-        'fri' => '周五',
-        'sat' => '周六',
-        'weekend' => '周末',
-        'work' => '工作日',
-        'next' => '次日',
-    ],
-    'qrcode' => ':attribute二维码',
-    'deleted' => '已删除',
-    'deleted_item' => ':attribute已删除',
-    'print' => '打印',
-    'unlimited' => '无限制',
-    'payment' => [
-        'credit' => '余额',
-        'alipay' => '支付宝',
-        'qq' => 'QQ钱包',
-        'wechat' => '微信支付',
-        'crypto' => '虚拟货币',
-        'manual' => '人工支付',
-        'status' => [
-            'wait' => '待支付',
-        ],
-    ],
-    'order' => [
-        'status' => [
-            'cancel' => '취소',
-            'complete' => '완성',
-            'prepaid' => '선불 결제',
-            'ongoing' => '사용 중',
-            'review' => '확인 대기 중',
-        ],
-    ],
-    'recommend' => '推荐',
-    'advance' => '进阶',
-    'action' => '操作',
-    'search' => '搜 索',
-    'edit' => '编 辑',
-    'delete' => '删 除',
-    'status' => [
-        'attribute' => '状态',
-        'inactive' => '未激活',
-        'disabled' => '停 用',
-        'banned' => '禁 用',
-        'normal' => '正 常',
-        'enabled' => '启 用',
-        'expire' => '过 期',
-        'limited' => '限 制',
-        'run_out' => '流量耗尽',
-        'unused' => '사용하지 않음',
-        'used' => '이미 사용중',
-        'closed' => '닫기',
-        'applying' => '신청 중',
-        'withdrawn' => '인출함',
-        'unwithdrawn' => '인출 하지 않음',
-        'reply' => '답변됨',
-        'pending' => '대기 중',
-        'unknown' => '未 知',
-        'available' => '生效中',
-        'reject' => '否 決',
-        'rejected' => '已驳回',
-        'review' => '待审核',
-        'reviewed' => '审核通过待打款',
-        'paid' => '已打款',
-        'payment_pending' => '待打款',
-        'pass' => '通 过',
-        'send_to_credit' => '打款至余额',
-        'waiting_tobe_send' => '等待投递',
-    ],
-    'stay_unchanged' => '留空为不变',
-    'random_generate' => '留空则随机生成',
-    'request_failed' => '请求错误,请重试',
-    'convert' => '转 换',
-    'import' => '导 入',
-    'or' => '或',
-    'more' => '더 보기',
-    'to' => '에',
-    'to_be_send' => '待发送',
-    'developing' => '开发中!敬请期待',
-];

+ 0 - 32
resources/lang/ko/errors.php

@@ -1,32 +0,0 @@
-<?php
-
-return [
-    'forbidden' => [
-        'access' => '알 수 없는 IP 혹은 프록시를 통해 방문하여 접근을 금지합니다.',
-        'bots' => '비정상적인 로봇 접근 감지, 접근을 금지합니다.',
-        'china' => '중국IP 혹은 프록시 접근 감지, 접근을 금지합니다.',
-        'oversea' => '해외 IP 감지, 접근을 금지합니다.',
-    ],
-    'log' => '로그',
-    'refresh' => '새로고침',
-    'refresh_page' => '페이즈를 새로고침 후, 다시 방문해주세요.',
-    'report' => '错❌误携带了报告:',
-    'safe_enter' => '정상적인 접근',
-    'safe_code' => '보안코드를 입력해주세요.',
-    'title' => '⚠️오류발생',
-    'unsafe_enter' => '비정상적인 접근',
-    'visit' => '방문해주세요.',
-    'whoops' => '!!!',
-    'get_ip' => 'IP 오류정보 불러오기',
-    'subscribe' => [
-        'unknown' => '링크 사용 오류! 다시 불러오세요!',
-        'sub_baned' => '링크 사용 불가능, 홈페이지를 방문하여 원인을 확인하세요.',
-        'user' => '잘못된 링크, 계정이 존재하지 않습니다! 링크를 다시 불러오세요.',
-        'user_disable' => '계정이 차단되었습니다!',
-        'baned_until' => '계정 차단 시간 :time, 차단 해지 후 다시 갱신하세요!',
-        'out' => '데이터 소진! 데이터를 다시 구매 하시거나 초기화 해주세요!',
-        'expired' => '계정 만료! 기간을 연장해주세요!',
-        'question' => '계정에 문제가 있습니다. 문의 바랍니다.',
-        'none' => '사용 가능한 서버가 없습니다.',
-    ],
-];

+ 0 - 230
resources/lang/ko/model.php

@@ -1,230 +0,0 @@
-<?php
-
-return [
-    'user' => [
-        'id' => '用户ID',
-        'attribute' => '用户',
-        'nickname' => '닉네임',
-        'username' => '아이디',
-        'password' => '비밀번호',
-        'credit' => '余额',
-        'invite_num' => '可用邀请码',
-        'reset_date' => '重置日',
-        'port' => '端口',
-        'traffic_used' => '流量使用',
-        'service' => '代理',
-        'group' => '分组',
-        'account_status' => '계정 상태',
-        'proxy_status' => '代理状态',
-        'expired_date' => '过期日',
-        'role' => '角色权限',
-        'wechat' => '微信',
-        'qq' => 'QQ',
-        'remark' => '备注',
-        'uuid' => 'VMess UUID',
-        'proxy_passwd' => '비밀번호',
-        'proxy_method' => '加密方式',
-        'usable_traffic' => '可用流量',
-        'proxy_protocol' => '协议',
-        'proxy_obfs' => '混淆',
-        'speed_limit' => '用户限速',
-        'inviter' => '邀请人',
-        'created_date' => '회원가입 시간',
-    ],
-    'common' => [
-        'extend' => '扩展',
-        'sort' => '排序',
-        'description' => '표시',
-        'type' => '类型',
-        'level' => '等级',
-    ],
-    'country' => [
-        'code' => 'ISO国家代码',
-        'icon' => '图 标',
-        'name' => '国家/地区名称',
-    ],
-    'subscribe' => [
-        'code' => '订阅码',
-        'req_times' => '请求次数',
-        'updated_at' => '最后请求时间',
-        'ban_time' => '封禁时间',
-        'ban_desc' => '封禁理由',
-        'req_ip' => '请求IP',
-        'req_header' => '访问',
-    ],
-    'oauth' => [
-        'type' => '渠道',
-        'identifier' => '唯一标识',
-    ],
-    'user_group' => [
-        'attribute' => '用戶分组',
-        'name' => '分组名称',
-        'nodes' => '选择节点',
-    ],
-    'node' => [
-        'attribute' => '节点',
-        'id' => '节点ID',
-        'name' => '이름',
-        'domain' => '域名',
-        'static' => '存活',
-        'online_user' => '在线',
-        'data_consume' => '产生流量',
-        'data_rate' => '流量比例',
-        'ddns' => 'DDNS',
-        'ipv4' => 'IPv4地址',
-        'ipv6' => 'IPv6地址',
-        'push_port' => '消息推送端口',
-        'rule_group' => '审计分组',
-        'traffic_limit' => '节点限速',
-        'client_limit' => '设备数限制',
-        'label' => '标签',
-        'country' => '国家/地区',
-        'udp' => 'UDP',
-        'display' => '显示 与 订阅',
-        'detection' => '节点阻断检测',
-        'method' => '加密方式',
-        'protocol' => '协议',
-        'protocol_param' => '协议参数',
-        'obfs' => '混淆',
-        'obfs_param' => '混淆参数',
-        'single' => '单端口',
-        'transfer' => '中 转',
-        'service_port' => '服务端口',
-        'single_passwd' => '[单] 密码',
-        'v2_alter_id' => '额外ID',
-        'v2_net' => '传输方式',
-        'v2_cover' => '伪装类型',
-        'v2_host' => '伪装域名',
-        'v2_path' => '路径 | 密钥',
-        'v2_sni' => 'SNI',
-        'v2_tls' => '连接TLS',
-        'v2_tls_provider' => 'TLS配置',
-        'relay_port' => '中转端口',
-    ],
-    'node_auth' => [
-        'attribute' => '节点授权',
-        'key' => '通信密钥<small>节点用</small>',
-        'secret' => '反向通信密钥',
-    ],
-    'node_cert' => [
-        'attribute' => '域名证书',
-        'domain' => '域名',
-        'key' => 'KEY',
-        'pem' => 'PEM',
-        'issuer' => '签发机构',
-        'signed_date' => '签发日期',
-        'expired_date' => '만료시간',
-    ],
-    'order' => [
-        'attribute' => '주문서',
-        'id' => '주문 번호',
-        'original_price' => '原价',
-        'price' => '实价',
-        'pay_way' => '결제 방식',
-        'status' => '订单状态',
-    ],
-    'goods' => [
-        'attribute' => '商品',
-        'name' => '이름',
-        'price' => '售价',
-        'category' => '分类',
-        'renew' => '流量重置价格',
-        'user_limit' => '用户限速',
-        'period' => '重置周期',
-        'traffic' => '流量额度',
-        'invite_num' => '赠送邀请码数量',
-        'limit_num' => '限购数量',
-        'available_date' => '유효기간',
-        'hot' => '热销',
-        'color' => '颜色',
-        'logo' => '商品图片',
-        'info' => '自定义列表',
-    ],
-    'rule' => [
-        'attribute' => '规则',
-        'name' => '표시',
-        'pattern' => '值',
-    ],
-    'rule_group' => [
-        'attribute' => '规则分组',
-        'name' => '分组名称',
-        'type' => '审计模式',
-        'rules' => '选择规则',
-    ],
-    'role' => [
-        'attribute' => '角色',
-        'name' => '이름',
-        'permissions' => '权限',
-    ],
-    'permission' => [
-        'attribute' => '权限行为',
-        'description' => '行为描述',
-        'name' => '路由名称',
-    ],
-    'article' => [
-        'attribute' => '文章',
-        'category' => '类别',
-        'language' => '语言',
-        'logo' => '头图',
-        'created_at' => '发布日期',
-        'updated_at' => '最后更新',
-    ],
-    'coupon' => [
-        'attribute' => '卡券',
-        'name' => '卡券名称',
-        'sn' => '使用券码',
-        'logo' => '卡券图片',
-        'value' => '优惠额度',
-        'priority' => '权重',
-        'usable_times' => '使用次数',
-        'minimum' => '满减条件',
-        'used' => '个人限用',
-        'levels' => '等级限定',
-        'groups' => '分组限定',
-        'users_whitelist' => '专属用户',
-        'users_blacklist' => '禁用用户',
-        'services_whitelist' => '许可商品',
-        'services_blacklist' => '禁用商品',
-        'newbie' => '新人专属',
-        'num' => '수량',
-    ],
-    'aff' => [
-        'invitee' => '소비자',
-        'amount' => '소비금액',
-        'commission' => '반려금액',
-        'updated_at' => '处理时间',
-        'created_at' => '下单时间',
-    ],
-    'referral' => [
-        'created_at' => '申请时间',
-        'user' => '申请账号',
-        'amount' => '申请提现金额',
-        'id' => '申请单ID',
-    ],
-    'notification' => [
-        'address' => '收信地址',
-        'created_at' => '投递时间',
-        'status' => '投递状态',
-    ],
-    'ip' => [
-        'network_type' => '通讯类型',
-        'info' => '归属地',
-    ],
-    'user_traffic' => [
-        'upload' => '上传流量',
-        'download' => '下载流量',
-        'total' => '总流量',
-        'log_time' => '记录时间',
-    ],
-    'user_data_modify' => [
-        'before' => '变动前流量',
-        'after' => '变动后流量',
-        'created_at' => '发生时间',
-    ],
-    'user_credit' => [
-        'before' => '操作前余额',
-        'after' => '操作后金额',
-        'amount' => '发生金额',
-        'created_at' => '发生时间',
-    ],
-];

+ 0 - 35
resources/lang/ko/notification.php

@@ -1,35 +0,0 @@
-<?php
-
-return [
-    'attribute' => '공지',
-    'new' => ':num 새로운 소식',
-    'empty' => '새 소식을 받지 못하였습니다.',
-    'payment_received' => '订单支付成功,金额::amount,查看详情',
-    'account_expired' => '계정 만료 알림',
-    'account_expired_content' => '고객님의 계정은 【:days】 일 후 만료됩니다, 서비스를 계속 정상적으로 이용하시려면, 기간을 연장해주세요.',
-    'account_expired_blade' => '계정이 【:days天】 후 만료될 예정이오니, 기간을 연장해주세요.',
-    'active_email' => '30분 이내에 설정을 완료해주세요.',
-    'close_ticket' => '문의 【:id】:title 닫기',
-    'view_web' => '홈페이지 접속',
-    'view_ticket' => '문의 보기',
-    'new_ticket' => '새 문의 수령 :title',
-    'reply_ticket' => '문의 답변 :title',
-    'ticket_content' => '문의내용',
-    'node_block' => '서버 차단 경고',
-    'node_offline' => '서버 오프라인 경고',
-    'node_offline_content' => '다음 서버에 문제가 있습니다: 신호 없음, 서버 오프라인 확인:',
-    'block_report' => '차단 로그',
-    'traffic_warning' => '데이터 알림',
-    'traffic_remain' => '데이터 percent% 사용함, 주의하세요.',
-    'traffic_tips' => '요금제의 데이터 초기화 날짜에 주의하여 데이터를 적절하게 할당하여 사용하거나, 데이터 소진 후 요금제를 유료로 초기화하여 사용하세요.',
-    'verification_account' => '계정 인증',
-    'verification' => '인증번호:',
-    'verification_limit' => ':minutes 분 안에 인증을 완료해주세요.',
-    'data_anomaly' => '데이터 용량 이상! 사용자 알림!',
-    'data_anomaly_content' => '사용자:id:최근 1시간 [업로드::upload | 다운로드::download | 합계::total]',
-    'node' => [
-        'upload' => '업로드',
-        'download' => '다운로드',
-        'total' => '종합',
-    ],
-];

+ 0 - 235
resources/lang/ko/user.php

@@ -1,235 +0,0 @@
-<?php
-
-return [
-    'account' => [
-        'credit' => '계정 잔고',
-        'status' => '계정 상태',
-        'level' => '계정 등급',
-        'group' => '소속 그룹',
-        'speed_limit' => '속도 제한',
-        'remain' => '잔여 데이터',
-        'time' => '요금제 기간',
-        'last_login' => '최근 접속',
-        'reset' => '{0} 还有 <code id="restTime">:days</code> 重置流量|[1,*] 还有 :days 天重置流量',
-        'connect_password' => '비밀번호 연결',
-        'reason' => [
-            'normal' => '계정이 정상입니다.',
-            'expired' => '고객님 요금제 상품이 만료되었습니다.',
-            'overused' => '本时段使用流量超过 <code>:data</code> GB触发系统限制<br/> <code id="banedTime">:min</code> 后解除限制',
-            'traffic_exhausted' => '고객님의 [데이터] 가 소진되었습니다.',
-            'unknown' => '未知原因,请尝试[刷新]你的浏览器!多次无果后再请开工单联系管理',
-        ],
-    ],
-    'home' => [
-        'attendance' => [
-            'attribute' => '출첵',
-            'disable' => '출첵 기능이 활성화되지 않았습니다.',
-            'done' => '출첵완료, 내일도 방문해주세요!',
-            'success' => '고객님은 :data 용량을 받았습니다.',
-            'failed' => '시스템 이상',
-        ],
-        'traffic_logs' => '용량 기록',
-        'announcement' => '공지',
-        'wechat_push' => '위챗 공지 발송',
-        'chat_group' => '단톡방',
-        'empty_announcement' => '공지 없음',
-    ],
-    'purchase_to_unlock' => '서비스 구매 후 잠금 해제',
-    'purchase_required' => '해당 기능은 유료 구매자에게만 제공됩니다!',
-    'attribute' => [
-        'node' => '회선',
-        'data' => '용량',
-        'ip' => 'IP 주소',
-        'isp' => '사업자',
-        'address' => '지역',
-    ],
-    'purchase_promotion' => '서둘러 서비스를 구매하세요!',
-    'menu' => [
-        'helps' => '도움',
-        'home' => '메인페이지',
-        'invites' => '초대',
-        'invoices' => '주문',
-        'nodes' => '회선',
-        'referrals' => '홍보',
-        'shop' => '서비스',
-        'profile' => '설정',
-        'tickets' => '문의',
-        'admin_dashboard' => '관리',
-    ],
-    'contact' => '연락처 정보',
-    'oauth' => [
-        'bind_title' => '소셜 계정 연동',
-        'not_bind' => '연동되지않음',
-        'bind' => '연동',
-        'rebind' => '재연동',
-        'unbind' => '연동 해제',
-    ],
-    'coupon' => [
-        'discount' => '할인',
-        'error' => [
-            'unknown' => '유효하지 않은 쿠폰',
-            'used' => '이미 사용된 쿠폰',
-            'expired' => '쿠폰이 만료됨',
-            'run_out' => '쿠폰 소진',
-            'inactive' => '쿠폰이 적용되지 않음',
-            'wait' => ':time  에 활성화 됩니다. 기다려주세요!',
-            'unmet' => '사용 조건 불충족',
-            'minimum' => '本券最低使用金额为 :amount',
-            'overused' => '本券只能使用 :times 次',
-            'users' => '账户不符合促销条件',
-            'services' => '商品不符合折扣条件,请查看促销条款',
-        ],
-    ],
-    'error_response' => '오류가 발생했습니다. 나중에 시도하십시오.',
-    'invite' => [
-        'attribute' => '초대 코드',
-        'counts' => '共 <code>:num</code> 个邀请码',
-        'tips' => '<strong>: num </strong > 초대장 코드를 생성할 수 있습니다.: days일 동안 유효합니다.',
-        'logs' => '초대 기록',
-        'promotion' => '당신의 초대 코드를 통해 등록하고 활성화하면, 양쪽 모두 <mark>:traffic</mark> 데이터 사용 인센티브를 받게 됩니다. 그들이 소비할 때, 당신은 그들의 소비 금액 <mark>:referral_percent%</mark>을 보상으로 받습니다.',
-        'generate_failed' => '생성 실패: 초대코드 생성 불가',
-    ],
-    'reset_data' => [
-        'action' => '데이터 재설정',
-        'cost' => '需要<code>:amount</code>',
-        'cost_tips' => '本次重置流量将扣除余额 :amount!',
-        'lack' => '잔액 부족, 잔액을 충전해주세요',
-        'logs' => '사용자 직접 용량을 초기화',
-        'success' => '초기화 성공',
-    ],
-    'referral' => [
-        'link' => '홍보 링크',
-        'total' => '合计返利 :amount( :total 次),满 :money 可以申请提现。',
-        'logs' => '수수료 기록',
-        'failed' => '신청 실패',
-        'success' => '신청 성공',
-        'msg' => [
-            'account' => '계정이 만료됨, 다시 서비스를 구매해주세요.',
-            'applied' => '이미 신청이 존재하므로  이전 신청이 완료될 때까지 기다려주세요.',
-            'unfulfilled' => '满 :amount 才可以提现,继续努力吧',
-            'wait' => '관리자의 승인을 기다려주세요',
-            'error' => '반환 실패, 나중에 다시 시도하거나 관리자에게 문의해주세요',
-        ],
-    ],
-    'inviter' => '초대자',
-    'invitee' => '초대 받은 사람',
-    'registered_at' => '회원가입 시간',
-    'bought_at' => '구매 날짜',
-    'payment_method' => '결제 방식',
-    'pay' => '결제',
-    'input_coupon' => '쿠폰 번호를 입력해주세요',
-    'recharge' => '충전',
-    'recharge_credit' => '잔액 충전',
-    'recharging' => '충전중...',
-    'withdraw_commission' => '결산 수수료',
-    'withdraw_at' => '결산 날짜',
-    'withdraw_logs' => '출금 기록',
-    'withdraw' => '출금',
-    'scan_qrcode' => '프로그램으로 QR코드를 스캔하세요',
-    'shop' => [
-        'hot' => '인기',
-        'limited' => '한정판',
-        'change_amount' => '금액 충전',
-        'change_amount_help' => '请输入充值金额',
-        'buy' => '구매',
-        'description' => '표시',
-        'service' => '서비스',
-        'pay_credit' => '잔액 결제',
-        'pay_online' => '온라인 결제',
-        'price' => '가격',
-        'quantity' => '수량',
-        'subtotal' => '소계',
-        'total' => '합계',
-        'conflict' => '패키지 중복 존재',
-        'conflict_tips' => '< p> 현재 구매 패키지는 < code> 예약 패키지로 자동 설정됩니다. </ code> < p> <ol class="text- left" > < li> 예약 패키지는 발효 중인 패키지가 종료되면 자동으로 실행됩니다! </ li> < li> < li> > 결제 후 패키지를 수동으로 활성화할 수 있습니다! </ li> </ li>',
-        'call4help' => '관리자에게 문의하세요',
-    ],
-    'service' => [
-        'node_count' => '<code>:num</code> 条优质线路',
-        'country_count' => '覆盖 <code>:num</code> 个国家或地区',
-        'unlimited' => '속도 제한 없음',
-    ],
-    'payment' => [
-        'error' => '충전 잔액이 올바르지 않습니다',
-        'creating' => '주문서 생성 중...',
-        'redirect_stripe' => 'Stripe 결제 페이지로 이동',
-        'qrcode_tips' => '< strong class="red-600" >: software< > 을 사용하여 QR코드를 스캔하십시오.',
-        'close_tips' => '< code>: minutes분 </ code> 안에 결제를 완료해 주십시오, 그렇지 않으면 주문이 자동으로 취소됩니다.',
-        'mobile_tips' => '<strong > 모바일 사용자 </strong >:  QR코드를 길게 누름 - > 이미지 저장 - > 결제 프로그램 열기 - > 청소 - > 앨범 선택 그리고 결제하기',
-    ],
-    'invoice' => [
-        'attribute' => '주문서',
-        'detail' => '소비 기록',
-        'amount' => '금액',
-        'active_prepaid_question' => '미리 예비 결제를 신청하시겠습니까?',
-        'active_prepaid_tips' => '상품이 활성화되면: <br> 이전 상품은 바로 효력을 잃습니다! <br> 만료일은 오늘 다시 시작됩니다!',
-    ],
-    'node' => [
-        'info' => '설정 정보',
-        'setting' => '프록시 설정',
-        'unstable' => '회선 점검중',
-        'rate' => ':ratio배 데이터 소비',
-    ],
-    'subscribe' => [
-        'link' => '구독 주소',
-        'tips' => '경고: 이 구독 링크는 개인에 한해서만 사용할 수 있습니다. 이 링크를 공유하지 마십시오. 그렇지 않으면 계정에 문제가 생길 수 있습니다.',
-        'exchange_warning' => '구독 주소를 변경 시 다음과 같습니다. \n1. 이전 주소는 즉시 비활성화됩니다 \n2. 연결 비밀번호가 변경됩니다.',
-        'custom' => '自定义订阅',
-        'ss_only' => '只订阅SS',
-        'ssr_only' => '只订阅SSR (包含SS)',
-        'v2ray_only' => 'V2Ray 만 구독',
-        'trojan_only' => 'Trojan 만 구독',
-        'error' => '구독 주소 변경 오류',
-        'info' => [
-            'title' => '账号摘要 [非实时]',
-            'upload' => '上载流量',
-            'download' => '下载流量',
-            'total' => '套餐流量',
-        ],
-    ],
-    'ticket' => [
-        'attribute' => '문의',
-        'submit_tips' => '문의를 하시겠습니까?',
-        'reply_confirm' => '문의 답변을 하시겠습니까?',
-        'close_tips' => '문의를 종료하시겠습니까?',
-        'close' => '문의 닫기',
-        'failed_closed' => '오류: 문의가 이미 종료되었습니다.',
-        'reply_placeholder' => '어떤 도움이 필요한가요?',
-        'reply' => '답장',
-        'close_msg' => '문의: 사용자 ID:id 가 수동으로 닫음',
-        'title_placeholder' => '请简单表示你的问题类型,或者涉及的内容',
-        'content_placeholder' => '请详细的描述您遇到的问题,或者需要我们帮助的地方,以便我们快速帮助到您',
-        'new' => '새로 문의하기',
-        'working_hour' => '영업시간',
-        'online_hour' => '접속 시간',
-        'service_tips' => '다양한 연락처가 있습니다. 이 중 < code > 의 </ code > 로 연락하십시오! 잦은 요청 시, 처리 시간이 자동으로 지연됩니다.',
-        'error' => '알 수 없는 오류! 관리자에게 문의하세요',
-    ],
-    'traffic_logs' => [
-        '24hours' => '오늘 데이터 사용 상황',
-        '30days' => '이달 데이터 사용 상황',
-        'tips' => '알림: 데이터 통계 업데이트가 지연될 수 있습니다. 일별 통계는 다음날 갱신, 시간별 갱신은 몇 시간 뒤 적용됩니다.',
-    ],
-    'client' => '프로그램',
-    'tutorials' => '教 程',
-    'current_role' => '현재  정보',
-    'knowledge' => [
-        'title' => '知 识 库',
-        'basic' => '基 础',
-    ],
-    'manual' => [
-        'red_packet' => '支付宝领红包',
-        'hint' => '扫码支付后, 请继续点击👇【下一步】,直到👇【提 交】才算正式支付完成!!!',
-        'step_1' => '须知',
-        'step_1_title' => '如何正确人工支付',
-        'step_2' => '결제',
-        'step_2_title' => '获取支付二维码,进行支付',
-        'step_3' => '完成',
-        'step_3_title' => '等待支付被人工核对',
-        'remark' => '备注账号',
-        'remark_content' => '填入登录使用的账号,在人工核对中可以对号审核!',
-        'payment_hint' => '支付时,请充值对应金额(多不退,少要补)',
-        'pre' => '上一步',
-        'next' => '下一步',
-    ],
-];

+ 1 - 0
resources/lang/ko/validation.php

@@ -22,6 +22,7 @@ return [
         'string' => ':Attribute의 길이는 :min에서 :max 문자 사이여야 합니다.',
     ],
     'boolean' => ':Attribute은(는) true 또는 false 이어야 합니다.',
+    'can' => ':Attribute 필드에 승인되지 않은 값이 포함되어 있습니다.',
     'confirmed' => ':Attribute 확인 항목이 일치하지 않습니다.',
     'current_password' => '패스워드가 일치하지 않습니다.',
     'date' => ':Attribute은(는) 유효한 날짜가 아닙니다.',

+ 4 - 36
resources/lang/vi.json

@@ -1,72 +1,40 @@
 {
     "(and :count more error)": "(và :count lỗi khác)",
     "(and :count more errors)": "(và :count lỗi khác)",
-    "----「:job」Completed, Used :time seconds ----": "----「:job」完成, 耗时 :time 秒----",
-    "[Auto Task] Blocked service: Abnormal traffic within 1 hour": "[自动任务]封禁服务: 1小时内流量异常",
-    "[Auto Task] Blocked service: Run out of traffic": "[自动任务]封禁服务: 流量耗尽",
-    "[Auto Task] Blocked Subscription: Subscription with abnormal requests within 24 hours": "[自动任务]封禁订阅: 订阅24小时内请求异常",
-    "[Daily Task] Account Expiration: Block Login & Clear Account": "[每日任务]账号过期: 禁止登录, 清空账户",
-    "[Daily Task] Account Expiration: Stop Service": "[每日任务]账号过期: 停止服务",
-    "[Daily Task] Reset Account Traffic, Next Reset Date: :date": "[每日任务]重置账号流量, 下次重置日: :date",
-    "[Service Timer] Service Expiration": "[定时任务]服务到期",
-    "A fresh verification link has been sent to your email address.": "Một liên kết xác minh mới đã được gửi đến địa chỉ email của bạn.",
     "All rights reserved.": "Đã đăng kí bản quyền",
-    "Before proceeding, please check your email for a verification link.": "Trước khi tiếp tục, vui lòng kiểm tra email của bạn để biết liên kết xác minh.",
-    "click here to request another": "click vào đây để tạo yêu cầu khác",
-    "Confirm Password": "Xác Nhận Mật Khẩu",
-    "Daily Data Usage Report": "线路每日流量报告",
-    "E-Mail Address": "Địa chỉ E-Mail",
     "Forbidden": "Cấm Truy Cập",
-    "Forgot Your Password?": "Quên Mật Khẩu?",
-    "Go Home": "Về trang chủ",
     "Go to page :page": "Tới trang :page",
     "Hello!": "Xin chào!",
     "If you did not create an account, no further action is required.": "Nếu bạn không đăng ký tài khoản này, bạn không cần thực hiện thêm hành động nào.",
-    "If you did not receive the email": "Nếu bạn không nhận được email",
     "If you did not request a password reset, no further action is required.": "Nếu bạn không yêu cầu đặt lại mật khẩu, bạn không cần thực hiện thêm hành động nào.",
     "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "Nếu bạn gặp vấn đề khi click vào nút \":actionText\", hãy sao chép dán địa chỉ bên dưới\nvào trình duyệt web của bạn:",
-    "Invoice Detail": "订单明细",
+    "Invalid JSON was returned from the route.": "JSON không hợp lệ đã được trả về từ tuyến đường.",
     "Login": "Đăng nhập",
     "Logout": "Đăng xuất",
-    "Name": "Tên",
     "Not Found": "Không Tìm Thấy",
     "of": "trong",
-    "Oh no": "Oh, không",
     "Page Expired": "Trang Đã Hết Hạn",
     "Pagination Navigation": "Điều hướng phân trang",
-    "Password": "Mật khẩu",
-    "Payment for #:sn has been received! Total amount: :amount.": "您成功支付了订单#:sn, 总金额为 :amount.",
-    "Payment Received": "账单付款成功",
     "Payment Required": "yêu cầu thanh toán",
     "Please click the button below to verify your email address.": "Vui lòng click vào nút bên dưới để xác minh địa chỉ email của bạn.",
     "Regards": "Trân trọng",
     "Register": "Đăng ký",
-    "Remember Me": "Ghi Nhớ",
     "Reset Password": "Đặt Lại Mật Khẩu",
     "Reset Password Notification": "Thông Báo Đặt Lại Mật Khẩu",
     "results": "kết quả",
-    "Send Password Reset Link": "Gửi Đường Dẫn Đặt Lại Mật Khẩu",
     "Server Error": "Máy Chủ Gặp Sự Cố",
     "Service Unavailable": "Dịch Vụ Không Khả Dụng",
     "Showing": "Đang hiển thị",
-    "Subscription link receive abnormal access and banned by the system": "订阅链接访问异常,系统自动封禁",
-    "Thank you for signing up! Before you start, you need to verify your email by clicking on the link we have just sent to your email! If you haven't received an email, we would be happy to send another one.": "感谢您的注册! 在开始之前,您需要通过点击我们刚刚发送至您邮箱中的链接来验证您的电子邮件! 如果您没有收到电子邮件,我们很乐意再发送一封给您。",
-    "The :attribute must contain at least one letter.": "Trường :attribute phải chứa ít nhất một chữ cái.",
-    "The :attribute must contain at least one number.": "Trường :attribute phải chứa ít nhất một số.",
-    "The :attribute must contain at least one symbol.": "Trường :attribute must phải chứa ít nhất một ký hiệu.",
-    "The :attribute must contain at least one uppercase and one lowercase letter.": "Trường :attribute phải chứa ít nhất một chữ hoa và một chữ thường.",
-    "The given :attribute has appeared in a data leak. Please choose a different :attribute.": ":attribute đã cho đã xuất hiện trong một vụ rò rỉ dữ liệu. Vui lòng chọn :attribute khác.",
     "The given data was invalid.": "Dữ liệu nhận được không hợp lệ.",
+    "The response is not a streamed response.": "Phản hồi không phải là phản hồi được phát trực tuyến.",
+    "The response is not a view.": "Phản hồi không phải là một lượt xem.",
     "This password reset link will expire in :count minutes.": "Đường dẫn lấy lại mật khẩu sẽ hết hạn trong :count phút.",
     "to": "tới",
     "Toggle navigation": "Chuyển hướng điều hướng",
     "Too Many Requests": "Quá Nhiều Yêu Cầu",
     "Unauthorized": "Không Được Phép",
     "Verify Email Address": "Xác Minh Địa Chỉ Email",
-    "Verify Your Email Address": "Xác Minh Địa Chỉ Email Của Bạn",
     "Whoops!": "Rất tiếc!",
     "You are receiving this email because we received a password reset request for your account.": "Bạn nhận được email này vì chúng tôi đã nhận được yêu cầu đặt lại mật khẩu cho tài khoản của bạn.",
-    "You have not responded this ticket in :num hours, System has closed your ticket.": "超过:num小时未回复工单,系统已自动关闭了您的工单",
-    "You must have a valid subscription to view the content in this area!": "您必须拥有有效套餐才可以查看该区域的内容!",
-    "Your subscription has been disabled by the administrator, please contact the administrator to restore it": "订阅功能被禁用,请联系管理员恢复"
+    "Verify Your Email Address": "Xác Minh Địa Chỉ Email Của Bạn"
 }

+ 0 - 800
resources/lang/vi/admin.php

@@ -1,800 +0,0 @@
-<?php
-
-return [
-    'dashboard' => [
-        'users' => '总用户',
-        'available_users' => '有效用户',
-        'paid_users' => '付费用户',
-        'active_days_users' => ':days 日内活跃用户',
-        'inactive_days_users' => ':days 日以上不活跃用户',
-        'online_users' => '当前在线',
-        'expiring_users' => '临近到期',
-        'overuse_users' => '流量大户(超过90%的用户)',
-        'abnormal_users' => '1小时内流量异常',
-        'nodes' => 'Node',
-        'maintaining_nodes' => '维护中的节点',
-        'traffic_consumed' => '记录的消耗流量',
-        'traffic_days_consumed' => ':days 日内消耗流量',
-        'orders' => '总订单数',
-        'online_orders' => '在线支付订单数',
-        'succeed_orders' => '支付成功订单数',
-        'credit' => '总余额',
-        'withdrawing_commissions' => '待提现佣金',
-        'withdrawn_commissions' => '已支出佣金',
-    ],
-    'action' => [
-        'edit_item' => '编辑:attribute',
-        'add_item' => '添加:attribute',
-    ],
-    'confirm' => [
-        'delete' => [0 => '确定删除:attribute【', 1 => '】? '],
-        'continues' => '确定继续操作吗? ',
-        'export' => '确定全部导出? ',
-    ],
-    'user_dashboard' => '个人中心',
-    'menu' => [
-        'dashboard' => '管理中心',
-        'user' => [
-            'attribute' => '用户系统',
-            'list' => '用户管理',
-            'oauth' => '用户授权',
-            'group' => 'Nhóm người dùng',
-            'credit_log' => '余额变动',
-            'subscribe' => '订阅管理',
-        ],
-        'rbac' => [
-            'attribute' => '权限系统',
-            'permission' => '权限列表',
-            'role' => '角色列表',
-        ],
-        'customer_service' => [
-            'attribute' => '客服系统',
-            'ticket' => '服务工单',
-            'article' => '文章管理',
-            'push' => '消息推送',
-            'mail' => '邮件群发',
-        ],
-        'node' => [
-            'attribute' => '线路系统',
-            'list' => '线路管理',
-            'auth' => '线路授权',
-            'cert' => '证书列表',
-        ],
-        'rule' => [
-            'attribute' => '审计规则',
-            'list' => '规则列表',
-            'group' => 'Nhóm quy tắc',
-            'trigger' => '触发记录',
-        ],
-        'shop' => [
-            'attribute' => '商品系统',
-            'goods' => '商品管理',
-            'coupon' => '卡券管理',
-            'order' => '商品订单',
-        ],
-        'promotion' => [
-            'attribute' => '推广系统',
-            'invite' => '邀请管理',
-            'withdraw' => '提现管理',
-            'rebate_flow' => '返利流水',
-        ],
-        'analysis' => [
-            'attribute' => '分析报告',
-            'accounting' => '流水账簿',
-            'user_flow' => '用户分析',
-        ],
-        'log' => [
-            'attribute' => '日志系统',
-            'traffic' => 'Đã sử dụng',
-            'traffic_flow' => '流量变动',
-            'service_ban' => '封禁记录',
-            'online_logs' => '在线记录',
-            'online_monitor' => '在线监控',
-            'notify' => '通知记录',
-            'payment_callback' => '支付回调',
-            'system' => '系统日志',
-        ],
-        'tools' => [
-            'attribute' => '工具箱',
-            'decompile' => '反解析',
-            'convert' => '格式转换',
-            'import' => '数据导入',
-            'analysis' => '日志分析',
-        ],
-        'setting' => [
-            'attribute' => '设置',
-            'email_suffix' => '邮箱后缀管理',
-            'universal' => '通用配置',
-            'system' => '系统设置',
-        ],
-    ],
-    'user' => [
-        'massive' => [
-            'text' => '用户生成数量',
-            'button' => '批量生成',
-            'failed' => '批量生成账号失败',
-            'succeed' => '批量生成账号成功',
-            'note' => '后台批量生成用户',
-        ],
-        'proxy_info' => '配置信息',
-        'traffic_monitor' => '流量统计',
-        'online_monitor' => '在线巡查',
-        'reset_traffic' => '重置流量',
-        'user_view' => '用户视角',
-        'connection_test' => '联网测试',
-        'counts' => '共 <code>:num</code> 个账号',
-        'reset_confirm' => [0 => '确定重置 【', 1 => '】 的流量吗?'],
-        'info' => [
-            'account' => '账号信息',
-            'proxy' => '代理信息',
-            'switch' => '切换身份',
-            'reset_date_hint' => '账号流量下一个重置日期',
-            'expired_date_hint' => '留空默认为一年',
-            'uuid_hint' => 'V2Ray的账户ID',
-            'recharge_placeholder' => '填入负值则会扣余额',
-        ],
-        'update_help' => '更新成功,是否返回?',
-        'proxies_config' => '【:username】连接配置信息',
-        'group' => [
-            'title' => '用户分组控制<small>(同一节点可分配至多个分组,一个用户只能属于一个分组;对于用户可见/可用节点:先按分组后按等级)</small>',
-            'name' => 'Tên nhóm',
-            'counts' => '共 <code>:num</code> 个分组',
-        ],
-    ],
-    'zero_unlimited_hint' => '不设置/0,即为无限制',
-    'node' => [
-        'traffic_monitor' => '流量统计',
-        'refresh_geo' => '刷新地理',
-        'ping' => '检测延迟',
-        'connection_test' => '连通性检测',
-        'counts' => '共 <code> :num </code> 条线路',
-        'reload_all' => '重载【全部】后端',
-        'refresh_geo_all' => '刷新【全部】节点地理信息',
-        'reload_confirm' => '确定重载节点?',
-        'info' => [
-            'hint' => '<strong>注意:</strong> 添加节点后自动生成的<code>ID</code>,即为该节点部署ShadowsocksR Python版后端时<code>usermysql.json</code>中的<code>node_id</code>的值,同时也是部署V2Ray后端时的<code>nodeId</code>的值;',
-            'basic' => '基础信息',
-            'ddns_hint' => '动态IP节点需要<a href="https://github.com/NewFuture/DDNS" target="_blank">配置DDNS</a>,对此类型节点,节点阻断功能会通过域名进行检测',
-            'domain_placeholder' => '服务器域名地址,填则优先取域名地址',
-            'domain_hint' => '系统设置中开启【DDNS模式】,域名将会自动与下方IP内容进行绑定操作!无需再前往域名注册商页面修改IP信息了哟',
-            'extend' => '扩展信息',
-            'display' => [
-                'invisible' => '完全不可见',
-                'node' => '只显示于【:trans】页面',
-                'sub' => '只显示于【订 阅】',
-                'all' => '完全可见',
-                'hint' => '用户是否可以订阅/看到本节点',
-            ],
-            'ipv4_hint' => '多IP使用“, ”分割,例:1.1.1.1, 8.8.8.8',
-            'ipv6_hint' => '多IP使用“, ”分割,例:1.1.1.1, 8.8.8.8',
-            'ipv4_placeholder' => '服务器IPv4地址',
-            'ipv6_placeholder' => '服务器IPv6地址,填写则用户可见,域名无效',
-            'push_port_hint' => '必填且防火墙需放行,否则将导致消息推送异常',
-            'data_rate_hint' => '举例:0.1用100M结算10M,5用100M结算500M',
-            'level_hint' => '等级:0-无等级,全部可见',
-            'detection' => [
-                'tcp' => '只检测TCP',
-                'icmp' => '只检测ICMP',
-                'all' => '检测全部',
-                'hint' => '每30~60分钟随机进行节点阻断检测',
-            ],
-            'obfs_param_hint' => '混淆不为 [plain] 时可填入参数进行流量伪装;&#13;&#10;混淆为 [http_simple] 时,建议端口为 80;&#13;&#10;混淆为 [tls] 时,建议端口为 443;',
-            'additional_ports_hint' => '如果启用请配置服务端的<span class="red-700"><a href="javascript:showTnc();">additional_ports</a></span>信息',
-            'v2_method_hint' => '使用WebSocket传输协议时不要使用none',
-            'v2_net_hint' => '使用WebSocket传输协议时请启用TLS',
-            'v2_cover' => [
-                'none' => '无伪装',
-                'http' => 'HTTP数据流',
-                'srtp' => '视频通话数据 (SRTP)',
-                'utp' => 'BT下载数据 (uTP)',
-                'wechat' => '微信视频通话',
-                'dtls' => 'DTLS1.2数据包',
-                'wireguard' => 'WireGuard数据包',
-            ],
-            'v2_host_hint' => '伪装类型为http时多个伪装域名逗号隔开,使用WebSocket传输协议时只允许单个',
-            'v2_tls_provider_hint' => '不同后端配置不同:',
-            'single_hint' => '推荐80或443,服务端需要配置 <br> 严格模式:用户的端口无法连接,只能通过以下指定的端口进行连接(<a href="javascript:showPortsOnlyConfig();">如何配置</a>)',
-        ],
-        'proxy_info' => '*兼容 SS',
-        'proxy_info_hint' => '如果兼容请在服务端配置协议和混淆时加上<span class="red-700">_compatible</span>',
-        'reload' => '重载后端',
-        'auth' => [
-            'title' => '节点授权列表<small>WEBAPI</small>',
-            'deploy' => [
-                'title' => '部署 :type_label 后端',
-                'attribute' => '部署后端',
-                'command' => '操作命令',
-                'update' => '更新:',
-                'uninstall' => '卸载:',
-                'start' => '启动:',
-                'stop' => '停止:',
-                'status' => '状态:',
-                'recent_logs' => '近期日志:',
-                'real_time_logs' => '实时日志:',
-                'restart' => '重启:',
-                'same' => '同上',
-                'trojan_hint' => '请先<a href=":url" target="_blank">填写节点域名</a>并将域名解析到节点对应的IP上',
-            ],
-            'reset_auth' => '重置密钥',
-            'counts' => '共 <code>:num</code> 条授权',
-            'generating_all' => '确定生成所有节点的授权吗?',
-        ],
-        'cert' => [
-            'title' => '域名证书列表<small>(V2Ray节点的伪装域名)</small>',
-            'counts' => '共 <code>:num</code> 个域名证书',
-            'key_placeholder' => '域名证书的KEY值,允许为空,VNET-V2Ray后端支持自动签证书',
-            'pem_placeholder' => '域名证书的PEM值,允许为空,VNET-V2Ray后端支持自动签证书',
-        ],
-    ],
-    'hint' => '提示',
-    'oauth' => [
-        'title' => '用户OAuth授权',
-        'counts' => '共 <code>:num</code> 个授权',
-    ],
-    'select_all' => '全 选',
-    'clear' => '清 空',
-    'unselected_hint' => '待分配规则,此处可搜索',
-    'selected_hint' => '已分配规则,此处可搜索',
-    'clone' => '克隆',
-    'monitor' => [
-        'daily_chart' => '每日流量图',
-        'monthly_chart' => '月流量图',
-        'node' => '节点流量',
-        'user' => '用户流量',
-        'hint' => '<strong>提示:</strong> 如果无统计数据,请检查定时任务是否正常。',
-    ],
-    'tools' => [
-        'analysis' => [
-            'title' => 'SSR日志分析<small>仅适用于单机单节点</small>',
-            'req_url' => '近期请求地址',
-            'not_enough' => '访问记录不足15000条,无法分析数据',
-        ],
-        'convert' => [
-            'title' => '格式转换 <small>Shadowsocks 转 ShadowsocksR</small>',
-            'content_placeholder' => '请填入要转换的配置信息',
-        ],
-        'decompile' => [
-            'title' => '反解析<small>配置转换</small>',
-            'attribute' => '反解析',
-            'content_placeholder' => '请填入要反解析的ShadowsocksR链接,一行一条',
-        ],
-    ],
-    'ticket' => [
-        'title' => '工单列表',
-        'counts' => '共 <code>:num</code> 个工单',
-        'send_to' => '请填入目标用户信息!',
-        'user_info' => '用户信息',
-        'inviter_info' => '邀请人信息',
-        'close_confirm' => '确定关闭工单?',
-        'error' => '未知错误!请查看运行日志',
-    ],
-    'logs' => [
-        'subscribe' => '订阅列表',
-        'counts' => '共 <code>:num</code> 条记录',
-        'rule' => [
-            'clear_all' => '清空记录',
-            'title' => '触发记录',
-            'name' => '触发规则',
-            'reason' => '触发原因',
-            'created_at' => '触发时间',
-            'tag' => '✅ 访问非规则允许内容',
-            'clear_confirm' => '确定清空所有记录吗?',
-        ],
-        'order' => [
-            'title' => '订单列表',
-            'is_expired' => '是否过期',
-            'is_coupon' => '是否使用优惠券',
-        ],
-        'user_traffic' => [
-            'title' => '流量使用记录',
-            'choose_node' => 'Chọn Node',
-        ],
-        'user_data_modify_title' => '流量变动记录',
-        'callback' => '回调日志 <small>(在线支付)</small>',
-        'notification' => '邮件投递记录',
-        'ip_monitor' => '在线IP监控 <small>2分钟内的实时数据</small>',
-        'user_ip' => [
-            'title' => '用户在线IP列表 <small>最近10分钟</small>',
-            'connect' => '连接IP',
-        ],
-        'ban' => [
-            'title' => '用户封禁记录',
-            'time' => '时长',
-            'reason' => '理由',
-            'ban_time' => 'Thời gian chặn',
-            'last_connect_at' => '最后连接时间',
-        ],
-        'credit_title' => '余额变动记录',
-    ],
-    'start_time' => '开始区间',
-    'end_time' => '结束区间',
-    'goods' => [
-        'title' => '商品列表',
-        'type' => [
-            'top_up' => '充值',
-            'package' => '流量包',
-            'plan' => '套餐',
-        ],
-        'info' => [
-            'type_hint' => '套餐与账号有效期有关,流量包只扣可用流量,不影响有效期',
-            'period_hint' => '套餐流量会每N天重置',
-            'limit_num_hint' => '每个用户可以购买该商品次数,为 0 时代表不限购',
-            'available_date_hint' => '到期后会自动从总流量扣减对应的流量',
-            'desc_placeholder' => '商品的简单描述',
-            'list_placeholder' => '商品的自定义列表添加',
-            'list_hint' => '每行内容请以<code>&lt;li&gt;</code> 开头<code>&lt;/li&gt;</code> 结尾',
-        ],
-        'status' => [
-            'yes' => '上架',
-            'no' => '下架',
-        ],
-        'sell_and_used' => '使用 / 销售',
-        'counts' => '共 <code>:num</code> 个商品',
-    ],
-    'sort_asc' => '排序值越大排越前',
-    'yes' => '是',
-    'no' => '否',
-    'rule' => [
-        'type' => [
-            'reg' => '正则表达式',
-            'domain' => '域名',
-            'ip' => 'IP',
-            'protocol' => 'Giao thức',
-        ],
-        'counts' => '共 <code>:num</code> 条审计规则',
-        'title' => '规则列表',
-        'group' => [
-            'type' => [
-                'off' => '阻断',
-                'on' => '放行',
-            ],
-            'title' => 'Nhóm quy tắc',
-            'counts' => '共 <code>:num</code> 个分组',
-        ],
-    ],
-    'role' => [
-        'name_hint' => '唯一标识名称,例如:Administrator',
-        'description_hint' => '面板显示名称,例如:管理员',
-        'title' => '权限角色列表',
-        'permissions_all' => '全部权限',
-        'counts' => '共 <code>:num</code> 个权限角色',
-    ],
-    'report' => [
-        'monthly_accounting' => '月流水账簿',
-        'annually_accounting' => '年流水账簿',
-        'historic_accounting' => '历史流水账簿',
-        'current_month' => '本 月',
-        'last_month' => '上 月',
-        'current_year' => '今 年',
-        'last_year' => '去 年',
-        'hourly_traffic' => '每时流量',
-        'daily_traffic' => '每天流量',
-        'today' => '本 日',
-    ],
-    'permission' => [
-        'title' => '权限行为列表',
-        'description_hint' => '填写描述,例:【A系统】编辑A',
-        'name_hint' => '填写路由名称,例:admin.permission.create,update',
-        'counts' => '共 <code>:num</code> 条权限行为',
-    ],
-    'marketing' => [
-        'email' => [
-            'title' => '邮件群发列表',
-            'group_send' => '群发邮件',
-            'counts' => '共 <code>:num</code> 条消息',
-        ],
-        'send_status' => '发送状态',
-        'send_time' => '发送时间',
-        'error_message' => '错误信息',
-        'push' => [
-            'title' => '推送消息列表',
-            'send' => '推送消息',
-            'counts' => '共 <code>:num</code> 条推送消息',
-        ],
-    ],
-    'creating' => '正在添加...',
-    'article' => [
-        'type' => [
-            'knowledge' => '文章',
-            'announcement' => '公告',
-        ],
-        'category_hint' => '同一类别将归类与同一文件夹下',
-        'logo_hint' => '推荐尺寸:100x75',
-        'title' => '文章列表',
-        'counts' => '共 <code>:num</code> 篇文章',
-    ],
-    'coupon' => [
-        'title' => '卡券列表',
-        'name_hint' => '会用于前端显示',
-        'sn_hint' => '提供给用户使用卡券的卡券,留空则默认为8位随机码',
-        'type' => [
-            'voucher' => '抵用券',
-            'discount' => '折扣券',
-            'charge' => '充值券',
-        ],
-        'type_hint' => '抵用:抵扣商品金额,折扣:商品百分比打折,充值:充值用户账号余额',
-        'value' => '{1} ➖ :num|{2} :num 折|{3} ➕ :num',
-        'value_hint' => '范围为 1% ~ 99% ',
-        'priority_hint' => '同【使用券码】下,符合条件的高权重码将会被优先使用。最高为 255',
-        'minimum_hint' => '当支付金额超过 <strong>:num</strong> 值时,才能使用本优惠劵;',
-        'used_hint' => '符合条件的用户可以使用本券 <strong>:num</strong> 次;',
-        'levels_hint' => '用户等级在选定等级内,方可使用本券',
-        'groups_hint' => '选定的用户分组,方可使用本券',
-        'users_placeholder' => '输入用户ID, 再回车',
-        'user_whitelist_hint' => '涉及用户均可使用本券,留空为不使用此条件',
-        'users_blacklist_hint' => '涉及用户均不可使用本券,空为不使用此条件',
-        'services_placeholder' => '输入商品ID, 再回车',
-        'services_whitelist_hint' => '涉及商品方可使用本券,留空为不使用此条件',
-        'services_blacklist_hint' => '涉及商品不可使用本券,留空为不使用此条件',
-        'newbie' => [
-            'first_discount' => '首次用任意券',
-            'first_order' => '首单',
-            'created_days' => '创号',
-        ],
-        'created_days_hint' => '且 创号 <code>:days</code> 天',
-        'limit_hint' => '本项各条件为 <strong>并且</strong> 关系,请自行搭配使用',
-        'info_title' => '卡券信息',
-        'counts' => '共 <code>:num</code> 张优惠券',
-        'discount' => '优惠',
-        'export_title' => '卡券导出',
-        'single_use' => '一次性',
-    ],
-    'times' => '次',
-    'massive_export' => '批量导出',
-    'system_generate' => '系统生成',
-    'aff' => [
-        'rebate_title' => '返利流水记录',
-        'counts' => '共 <code>:num</code> 个申请',
-        'title' => '提现申请列表',
-        'apply_counts' => '共 <code>:num</code> 个申请',
-        'referral' => '推广返利',
-        'commission_title' => '提现申请详情',
-        'commission_counts' => '本申请共涉及 <code>:num</code> 单',
-    ],
-    'setting' => [
-        'common' => [
-            'title' => '通用配置',
-            'set_default' => '设为默认',
-            'connect_nodes' => '关联节点数',
-        ],
-        'email' => [
-            'title' => '邮箱过滤列表 <small>(用于屏蔽注册邮箱后缀)</small>',
-            'tail' => '邮箱后缀',
-            'rule' => 'Quy tắc',
-            'black' => '黑名单',
-            'white' => '白名单',
-            'tail_placeholder' => '请填入邮箱后缀',
-        ],
-        'system' => [
-            'title' => '系统配置',
-            'web' => '网站常规',
-            'account' => '账号设置',
-            'node' => '节点设置',
-            'extend' => '拓展功能',
-            'check_in' => '签到系统',
-            'promotion' => '推广系统',
-            'notify' => '通知系统',
-            'auto_job' => '自动任务',
-            'other' => 'LOGO|客服|统计',
-            'payment' => '支付系统',
-            'menu' => '菜单',
-        ],
-        'no_permission' => '您没有权限修改参数!',
-    ],
-    'system' => [
-        'account_expire_notification' => '账号过期通知',
-        'active_times' => '激活账号次数',
-        'admin_invite_days' => '管理员-邀请码有效期',
-        'aff_salt' => '邀请链接 用户信息字符化',
-        'alipay_qrcode' => '支付宝二维码',
-        'AppStore_id' => '苹果账号',
-        'AppStore_password' => '苹果密码',
-        'auto_release_port' => '端口回收机制',
-        'bark_key' => 'Bark设备号',
-        'captcha_key' => '验证码 Key',
-        'captcha_secret' => '验证码 Secret/ID',
-        'codepay_id' => '码支付ID',
-        'codepay_key' => '通信密钥',
-        'codepay_url' => '请求URL',
-        'data_anomaly_notification' => '流量异常通知',
-        'data_exhaust_notification' => '流量耗尽通知',
-        'ddns_key' => 'DNS服务商Key',
-        'ddns_mode' => 'DDNS模式',
-        'ddns_secret' => 'DNS服务商Secret',
-        'default_days' => '初始有效期',
-        'default_traffic' => '初始流量',
-        'detection_check_times' => '阻断检测提醒',
-        'dingTalk_access_token' => '钉钉自定义机器人 Access Token',
-        'dingTalk_secret' => '钉钉自定义机器人 密钥',
-        'epay_key' => '商户密钥',
-        'epay_mch_id' => '商户ID',
-        'epay_url' => '接口对接地址',
-        'expire_days' => '过期警告阈值',
-        'f2fpay_app_id' => '应用ID',
-        'f2fpay_private_key' => '应用私钥',
-        'f2fpay_public_key' => '支付宝公钥',
-        'forbid_mode' => '禁止访问模式',
-        'invite_num' => '可生成邀请码数',
-        'is_activate_account' => '激活账号',
-        'is_AliPay' => '支付宝支付',
-        'is_ban_status' => '过期自动封禁',
-        'is_captcha' => '验证码模式',
-        'is_checkin' => '签到加流量',
-        'is_clear_log' => '自动清除日志',
-        'is_custom_subscribe' => '高级订阅',
-        'is_email_filtering' => '邮箱过滤机制',
-        'is_forbid_robot' => '阻止机器人访问',
-        'is_free_code' => '免费邀请码',
-        'is_invite_register' => '邀请注册',
-        'is_otherPay' => '特殊支付',
-        'is_QQPay' => 'QQ钱包',
-        'is_rand_port' => '随机端口',
-        'is_register' => '用户注册',
-        'is_subscribe_ban' => '订阅异常自动封禁',
-        'is_traffic_ban' => '异常自动封号',
-        'is_WeChatPay' => '微信支付',
-        'iYuu_token' => 'IYUU令牌',
-        'maintenance_content' => '维护介绍内容',
-        'maintenance_mode' => 'Trạng Thái Bảo Trì',
-        'maintenance_time' => '维护结束时间',
-        'min_port' => '端口范围',
-        'min_rand_traffic' => '流量范围',
-        'node_blocked_notification' => '节点阻断提醒',
-        'node_daily_notification' => '节点使用报告',
-        'node_offline_notification' => '节点离线提醒',
-        'oauth_path' => '第三方登录平台',
-        'offline_check_times' => '离线提醒次数',
-        'password_reset_notification' => 'Đặt Lại Mật Khẩu',
-        'paybeaver_app_id' => 'App ID',
-        'paybeaver_app_secret' => 'App Secret',
-        'payjs_key' => '通信密钥',
-        'payjs_mch_id' => '商户号',
-        'payment_confirm_notification' => '人工支付确认通知',
-        'payment_received_notification' => '支付成功通知',
-        'paypal_app_id' => 'APP ID',
-        'paypal_client_id' => 'Client ID',
-        'paypal_client_secret' => 'Client Secret key',
-        'pushDeer_key' => 'PushDeer Key',
-        'pushplus_token' => 'PushPlus Token',
-        'rand_subscribe' => '随机订阅',
-        'redirect_url' => '重定向地址',
-        'referral_money' => '提现限制',
-        'referral_percent' => '返利比例',
-        'referral_status' => '推广功能',
-        'referral_traffic' => '注册送流量',
-        'referral_type' => '返利模式',
-        'register_ip_limit' => '同IP注册限制',
-        'reset_password_times' => '重置密码次数',
-        'reset_traffic' => '流量自动重置',
-        'server_chan_key' => 'ServerChan SCKEY',
-        'standard_currency' => '本位货币',
-        'stripe_public_key' => 'Public Key',
-        'stripe_secret_key' => 'Secret Key',
-        'stripe_signing_secret' => 'WebHook Signing secret',
-        'subject_name' => '自定义商品名称',
-        'subscribe_ban_times' => '订阅请求阈值',
-        'subscribe_domain' => '节点订阅地址',
-        'subscribe_max' => '订阅节点数',
-        'telegram_token' => 'Telegram Token',
-        'tg_chat_token' => 'TG酱Token',
-        'theadpay_key' => '商家密钥',
-        'theadpay_mchid' => '商家ID',
-        'theadpay_url' => '接口地址',
-        'ticket_closed_notification' => '工单关闭通知',
-        'ticket_created_notification' => '新工单通知',
-        'ticket_replied_notification' => '工单回复通知',
-        'traffic_ban_time' => '封号时长',
-        'traffic_ban_value' => '流量异常阈值',
-        'traffic_limit_time' => '时间间隔',
-        'traffic_warning_percent' => '流量警告阈值',
-        'trojan_license' => 'Trojan授权',
-        'username_type' => '账号类型',
-        'user_invite_days' => '用户-邀请码有效期',
-        'v2ray_license' => 'V2Ray授权',
-        'v2ray_tls_provider' => 'V2Ray TLS配置',
-        'webmaster_email' => '管理员邮箱',
-        'website_analytics' => '统计代码',
-        'website_callback_url' => '通用支付回调地址',
-        'website_customer_service' => '客服代码',
-        'website_home_logo' => '首页LOGO',
-        'website_logo' => '站内LOGO',
-        'website_name' => '网站名称',
-        'website_security_code' => '网站安全码',
-        'website_url' => '网站地址',
-        'web_api_url' => '授权/后端访问域名',
-        'wechat_aid' => '微信企业应用ID',
-        'wechat_cid' => '微信企业ID',
-        'wechat_encodingAESKey' => '微信企业应用EncodingAESKey',
-        'wechat_qrcode' => '微 信二维码',
-        'wechat_secret' => '微信企业应用密钥',
-        'wechat_token' => '微信企业应用TOKEN',
-        'hint' => [
-            'account_expire_notification' => '通知用户账号即将到期',
-            'active_times' => '24小时内可以通过邮件激活账号次数',
-            'admin_invite_days' => '管理员生成邀请码的有效期',
-            'aff_salt' => '留空时,邀请链接将显示用户ID;填入任意英文/数字 即可对用户链接ID进行加密',
-            'AppStore_id' => 'iOS软件设置教程中使用的苹果账号',
-            'AppStore_password' => 'iOS软件设置教程中使用的苹果密码',
-            'auto_release_port' => '被封禁/过期 <code>'.config('tasks.release_port').'</code> 天的账号端口自动释放',
-            'bark_key' => '推送消息到iOS设备,需要在iOS设备里装一个名为Bark的应用,取网址后的一长串字符串,启用Bark,请务必填入本值',
-            'captcha_key' => '浏览<a href="https://proxypanel.gitbook.io/wiki/captcha" target="_blank">设置指南</a>来设置',
-            'data_anomaly_notification' => '1小时内流量超过异常阈值通知超管',
-            'data_exhaust_notification' => '通知用户流量即将耗尽',
-            'ddns_key' => "浏览<a href='https://proxypanel.gitbook.io/wiki/ddns' target='_blank'>设置指南</a>来设置",
-            'ddns_mode' => '添加/编辑/删除节点的【域名、ipv4、ipv6】时,自动更新对应内容至DNS服务商',
-            'default_days' => '用户注册时默认账户有效期,为0即当天到期',
-            'default_traffic' => '用户注册时默认可用流量',
-            'detection_check_times' => '提醒N次后自动下线节点,为0/留空时不限制,不超过12',
-            'dingTalk_access_token' => '可以阅读<a href=https://open.dingtalk.com/document/group/custom-robot-access#title-jfe-yo9-jl2 target=_blank>钉钉手册</a>查阅步骤',
-            'dingTalk_secret' => '可选填!开启机器人[加签]就是必填项目!',
-            'expire_days' => '【账号过期通知】开始阈值,每日通知用户',
-            'f2fpay_app_id' => '即:APPID',
-            'f2fpay_private_key' => '生成秘钥软件生成时,产生的应用秘钥',
-            'f2fpay_public_key' => '注意不是应用公钥!',
-            'forbid_mode' => '依据IP对对应地区进行阻拦,非阻拦地区可正常访问',
-            'invite_num' => '用户可以生成的邀请码数',
-            'is_activate_account' => '启用后用户需要通过邮件来激活账号',
-            'is_ban_status' => '(慎重)封禁整个账号会重置账号的所有数据且会导致用户无法登录,不开启状态下只封禁用户代理',
-            'is_captcha' => '启用后 登录/注册 需要进行验证码认证',
-            'is_checkin' => '登录时将根据流量范围随机得到流量',
-            'is_clear_log' => '(推荐)启用后自动清除无用日志',
-            'is_custom_subscribe' => '启用后,订阅信息顶部将显示过期时间、剩余流量(只支持个别客户端)',
-            'is_email_filtering' => '黑名单: 用户可使用任意黑名单外的邮箱注册;白名单:用户只能选择使用白名单中的邮箱后缀注册',
-            'is_forbid_robot' => '如果是机器人、爬虫、代理访问网站则会抛出404错误',
-            'is_free_code' => '关闭后免费邀请码不可见',
-            'is_rand_port' => '注册、添加用户时随机生成端口',
-            'is_register' => '关闭后无法注册',
-            'is_subscribe_ban' => '启用后用户订阅链接请求超过设定阈值则自动封禁',
-            'is_traffic_ban' => '1小时内流量超过异常阈值则自动封号(仅禁用代理)',
-            'iYuu_token' => '启用爱语飞飞,请务必填入本值(<a href=https://iyuu.cn target=_blank>申请 IYUU令牌</a>)',
-            'maintenance_content' => '自定义维护内容信息',
-            'maintenance_mode' => "启用后,用户访问转移至维护界面 | 管理员使用 <a href='javascript:(0)'>:url</a> 登录",
-            'maintenance_time' => '用于维护界面倒计时',
-            'min_port' => '端口范围:1000 - 65535',
-            'node_blocked_notification' => '每小时检测节点是否被阻断并提醒管理员',
-            'node_daily_notification' => '报告各节点流量昨日消耗情况',
-            'node_offline_notification' => '每10分钟检测节点离线并提醒管理员',
-            'oauth_path' => '请在.ENV中添加设置,再在此处开启平台',
-            'offline_check_times' => '24小时内提醒n次后不再提醒',
-            'password_reset_notification' => '启用后用户可以重置密码',
-            'paybeaver_app_id' => '<a href="https://merchant.paybeaver.com/" target="_blank">商户中心</a> -> 开发者 -> App ID',
-            'paybeaver_app_secret' => '<a href="https://merchant.paybeaver.com/" target="_blank">商户中心</a> -> 开发者 -> App Secret',
-            'payjs_mch_id' => '在<a href="https://payjs.cn/dashboard/member" target="_blank">本界面</a>获取信息',
-            'payment_confirm_notification' => '用户使用人工支付后通知管理员处理订单',
-            'payment_received_notification' => '用户支付订单后通知用户订单状态',
-            'pushDeer_key' => '启用PushDeer,请务必填入本值(<a href=https://www.pushdeer.com/official.html target=_blank>申请 Push Key</a>)',
-            'pushplus_token' => '启用PushPlus,请务必填入本值(<a href=https://www.pushplus.plus/push1.html target=_blank>申请 Token</a>)',
-            'rand_subscribe' => '启用后,订阅时将随机返回节点信息,否则按节点排序返回',
-            'redirect_url' => '触发审计规则时访问请求被阻断并重定向至该地址',
-            'referral_money' => '满多少元才可以申请提现',
-            'referral_percent' => '根据推广链接注册的账号每笔消费推广人可以分成的比例',
-            'referral_status' => '关闭后用户不可见,但是不影响其正常邀请返利',
-            'referral_traffic' => '根据推广链接、邀请码注册则赠送相应的流量',
-            'referral_type' => '切换模式后旧数据不变,新的返利按新的模式计算',
-            'register_ip_limit' => '同IP在24小时内允许注册数量,为0/留空时不限制',
-            'reset_password_times' => '24小时内可以通过邮件重置密码次数',
-            'reset_traffic' => '用户会按其购买套餐的日期自动重置可用流量',
-            'server_chan_key' => '启用ServerChan,请务必填入本值(<a href=https://sc.ftqq.com target=_blank>申请 SCKEY</a>)',
-            'standard_currency' => '网站中涉及金钱部分的默认货币',
-            'subject_name' => '用于在支付渠道的商品标题显示',
-            'subscribe_ban_times' => '24小时内订阅链接请求次数限制',
-            'subscribe_domain' => '(推荐)防止面板域名被DNS投毒后无法正常订阅,需带http://或https://"',
-            'subscribe_max' => '客户端订阅时取得几个节点,为0/留空时返回全部节点',
-            'telegram_token' => '找 <a href=https://t.me/BotFather target=_blank>@BotFather</a> 申请机器人获取TOKEN',
-            'tg_chat_token' => '启用TG酱,请务必填入本值(<a href=https://t.me/realtgchat_bot target=_blank>申请 Token</a>)',
-            'ticket_closed_notification' => '工单关闭通知用户',
-            'ticket_created_notification' => '新工单通知管理/用户,取决于谁创建了新工单',
-            'ticket_replied_notification' => '工单回复通知对方',
-            'traffic_ban_time' => '任何异常导致用户/订阅被封禁的时长, 到期后自动解封',
-            'traffic_ban_value' => '1小时内超过该值,则触发自动封号',
-            'traffic_limit_time' => '间隔多久才可以再次签到',
-            'traffic_warning_percent' => '【流量耗尽通知】开始阈值,每日通知用户',
-            'username_type' => '规范站点用户账号的类型,默认为电子邮箱',
-            'user_invite_days' => '用户自行生成邀请的有效期',
-            'v2ray_tls_provider' => '后端自动签发/载入TLS证书时用(节点的设置值优先级高于此处)',
-            'webmaster_email' => '错误提示时会提供管理员邮箱作为联系方式',
-            'website_analytics' => '统计JS',
-            'website_callback_url' => '防止因为网站域名被DNS投毒后导致支付无法正常回调,需带http://或https://',
-            'website_customer_service' => '客服JS',
-            'website_name' => '发邮件时展示',
-            'website_security_code' => '非空时必须通过<a href=":url" target="_blank">安全入口</a>加上安全码才可访问',
-            'website_url' => '生成重置密码、在线支付必备',
-            'web_api_url' => '例:'.config('app.url'),
-            'wechat_aid' => '在<a href=https://work.weixin.qq.com/wework_admin/frame#apps arget=_blank>应用管理</a>自建中创建应用 - AgentId',
-            'wechat_cid' => '获取<a href=https://work.weixin.qq.com/wework_admin/frame#profile target=_blank>我的企业</a>中的企业ID',
-            'wechat_encodingAESKey' => '应用管理->应用->设置API接收->EncodingAESKey',
-            'wechat_secret' => '应用的Secret(可能需要下载企业微信才能查看)',
-            'wechat_token' => '应用管理->应用->设置API接收->TOKEN,URL设置::url',
-        ],
-        'placeholder' => [
-            'default_url' => '默认为 :url',
-            'server_chan_key' => '填入ServerChan的SCKEY->再点击更新',
-            'pushDeer_key' => '填入PushDeer的Push Key -> 再点击更新',
-            'iYuu_token' => '填入爱语飞飞的IYUU令牌 -> 再点击更新',
-            'bark_key' => '填入Bark的设备号 -> 再点击更新',
-            'telegram_token' => '填入Telegram的 Token -> 再点击更新',
-            'pushplus_token' => '请到ServerChan申请',
-            'dingTalk_access_token' => '自定义机器人的WebHook中的access_token',
-            'dingTalk_secret' => '自定义机器人加签后出现的的密钥',
-            'wechat_aid' => '应用的AgentId',
-            'wechat_cid' => '填入微信企业ID -> 再点击更新',
-            'wechat_secret' => '应用的Secret',
-            'tg_chat_token' => '请到Telegram申请',
-            'codepay_url' => 'https://codepay.fateqq.com/creat_order/?',
-        ],
-        'payment' => [
-            'attribute' => '支付设置',
-            'channel' => [
-                'alipay' => '支付宝F2F',
-                'codepay' => '码支付',
-                'epay' => '易支付',
-                'payjs' => 'PayJs',
-                'paypal' => 'PayPal',
-                'stripe' => 'Stripe',
-                'paybeaver' => '海狸支付',
-                'theadpay' => '平头哥支付',
-                'manual' => '人工支付',
-            ],
-            'hint' => [
-                'alipay' => '本功能需要<a href="https://open.alipay.com/platform/appManage.htm?#/create/" target="_blank">蚂蚁金服开放平台</a>申请权限及应用',
-                'codepay' => '请到 <a href="https://codepay.fateqq.com/i/377289" target="_blank">码支付</a>申请账号,然后下载登录其挂机软件',
-                'payjs' => '请到<a href="https://payjs.cn/ref/zgxjnb" target="_blank">PayJs</a> 申请账号',
-                'paypal' => '使用商家账号登录<a href="https://www.paypal.com/businessprofile/mytools/apiaccess/firstparty" target="_blank">API凭证申请页</a>, 同意并获取设置信息',
-                'paybeaver' => '请到<a href="https://merchant.paybeaver.com/?aff_code=iK4GNuX8" target="_blank">海狸支付 PayBeaver</a>申请账号',
-                'theadpay' => '请到<a href="https://theadpay.com/" target="_blank">平头哥支付 THeadPay</a>申请账号',
-                'manual' => '设置后会自动开启对应显示',
-            ],
-        ],
-        'notification' => [
-            'channel' => [
-                'telegram' => 'TG电报',
-                'wechat' => '微信企业',
-                'dingtalk' => '钉钉',
-                'email' => 'email',
-                'bark' => 'Bark',
-                'serverchan' => 'ServerChan',
-                'pushdeer' => 'PushDeer',
-                'pushplus' => 'PushPlus',
-                'iyuu' => '爱语飞飞',
-                'tg_chat' => 'TG酱',
-                'site' => '站内通知',
-            ],
-            'send_test' => '发送测试消息',
-        ],
-        'forbid' => [
-            'mainland' => '阻拦大陆',
-            'china' => '阻拦中国',
-            'oversea' => '阻拦海外',
-        ],
-        'username' => [
-            'email' => '电子邮箱',
-            'mobile' => '手机号码',
-            'any' => '任意用户名',
-        ],
-        'active_account' => [
-            'before' => '注册前激活',
-            'after' => '注册后激活',
-        ],
-        'ddns' => [
-            'namesilo' => 'Namesilo',
-            'aliyun' => '阿里云(国际&国内)',
-            'dnspod' => 'DNSPod',
-            'cloudflare' => 'CloudFlare',
-        ],
-        'captcha' => [
-            'standard' => '普通验证码',
-            'geetest' => '极 验',
-            'recaptcha' => 'Google reCaptcha',
-            'hcaptcha' => 'hCaptcha',
-        ],
-        'referral' => [
-            'once' => '首购返利',
-            'loop' => '循环返利',
-        ],
-    ],
-    'set_to' => '置 :attribute',
-    'minute' => '分钟',
-    'query' => '查 询',
-    'optional' => '可选',
-    'require' => '必须',
-];

+ 0 - 100
resources/lang/vi/auth.php

@@ -1,100 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-return [
-    'accept_term' => '我已阅读并同意遵守',
-    'active' => [
-        'attribute' => '激活',
-        'error' => [
-            'activated' => '账号已激活,无需再次激活',
-            'disable' => '本站关闭了账号激活子系统,您可以直接去登录!',
-            'throttle' => '您已触发本站激活请求限制机制,请勿频繁操作!如有问题,请联系:email',
-        ],
-        'promotion' => '账号尚未激活,请先「:action」!',
-        'sent' => '激活链接已发送至您的邮箱,请稍作等待或查看垃圾箱',
-    ],
-    'aup' => '可接受使用条款',
-    'captcha' => [
-        'attribute' => '验证码',
-        'error' => [
-            'failed' => '验证码验证失败,请重新输入',
-            'timeout' => '验证码不合法!可能已过期,请刷新后重试',
-        ],
-        'required' => '请正确完成验证码操作',
-        'sent' => '验证码已发送至您的邮箱,请稍作等待或查看垃圾箱',
-    ],
-    'email' => [
-        'error' => [
-            'banned' => '本站屏蔽了您使用的邮箱服务商,请使用其他有效邮箱',
-            'invalid' => '使用邮箱不在本站支持邮箱列表内',
-        ],
-    ],
-    'error' => [
-        'account_baned' => '您的账号已被禁止登录!',
-        'login_error' => '登录错误,请稍后重试!',
-        'login_failed' => '登录失败,请检查邮箱或密码是否输入正确!',
-        'not_found_user' => '未找到关联账号,请使用其他方式登录',
-        'repeat_request' => '请勿重复请求,请刷新后重试',
-        'url_timeout' => '链接已失效, 请重新操作',
-    ],
-    'failed' => 'Thông tin tài khoản không tìm thấy trong hệ thống.',
-    'invite' => [
-        'attribute' => '邀请码',
-        'error' => [
-            'unavailable' => '邀请码不可用,请重试',
-        ],
-        'get' => '点击获取邀请码',
-        'not_required' => '无需邀请码,可直接注册!',
-    ],
-    'login' => '登 录',
-    'logout' => '登 出',
-    'maintenance' => '维护',
-    'maintenance_tip' => '网站维护中',
-    'oauth' => [
-        'bind_failed' => '绑定失败',
-        'bind_success' => '绑定成功',
-        'login_failed' => '第三方登录失败!',
-        'rebind_success' => '重新绑定成功',
-        'register' => '快速注册',
-        'register_failed' => '注册失败',
-        'registered' => '已注册,请直接登录',
-        'unbind_failed' => '解绑失败',
-        'unbind_success' => '解绑成功',
-    ],
-    'one-click_login' => '一键登录',
-    'optional' => '可选',
-    'password' => [
-        'forget' => 'Quên Mật Khẩu?',
-        'new' => '输入新密码',
-        'original' => '原密码',
-        'reset' => [
-            'attribute' => 'Đặt Lại Mật Khẩu',
-            'error' => [
-                'demo' => '演示环境禁止修改管理员密码',
-                'disabled' => '本站关闭了密码重置子系统,有事请联系 :email ',
-                'failed' => '重设密码失败',
-                'same' => '新密码不可与旧密码一样,请重新输入',
-                'throttle' => '24小时内只能重设密码 :time 次,请勿频繁操作',
-                'wrong' => '旧密码错误,请重新输入',
-            ],
-            'sent' => '重置成功,请查看所用邮箱(邮件可能在垃圾箱中)',
-            'success' => '新密码设置成功,请前往登录页面',
-        ],
-    ],
-    'register' => [
-        'attribute' => '注 册',
-        'code' => '注册验证码',
-        'error' => [
-            'disable' => '抱歉,本站关闭了注册通道',
-            'throttle' => '防刷机制已激活,请勿频繁注册',
-        ],
-        'failed' => '注册失败,请稍后尝试',
-        'promotion' => '还没有账号?请去',
-        'success' => '注册成功',
-    ],
-    'remember_me' => 'Ghi Nhớ',
-    'request' => '获 取',
-    'throttle' => 'Vượt quá số lần đăng nhập cho phép. Vui lòng thử lại sau :seconds giây.',
-    'tos' => '用户条款',
-];

+ 0 - 147
resources/lang/vi/common.php

@@ -1,147 +0,0 @@
-<?php
-
-return [
-    'hour' => '{1} 时|{2} 点',
-    'account' => 'Tài khoản',
-    'available_date' => 'Thời gian hiệu lực',
-    'created_at' => '创建时间',
-    'expired_at' => '到期时间',
-    'updated_at' => '更新时间',
-    'latest_at' => '最近时间',
-    'back' => '返 回',
-    'cancel' => '取 消',
-    'close' => '关 闭',
-    'close_item' => '关闭:attribute',
-    'confirm' => '确 认',
-    'continues' => '继 续',
-    'open' => '打 开',
-    'send' => '发 送',
-    'view' => '查 看',
-    'reset' => '重 置',
-    'copy' => [
-        'attribute' => '复 制',
-        'success' => '复制成功',
-        'failed' => '复制失败,请手动复制',
-    ],
-    'add' => '添 加',
-    'free' => '免费',
-    'replace' => '更换',
-    'submit' => '提 交',
-    'submit_item' => '提交:attribute',
-    'generate' => '生 成',
-    'generate_item' => '生成:attribute',
-    'to_safari' => [0 => '点击右上角', 1 => ',选择在', 2 => 'Safari 中打开', 3 => '就可以正常访问本站了哟!'],
-    'update_browser' => [0 => '您正在使用', 1 => '过时', 2 => '的浏览器。 请', 3 => '升级您的浏览器', 4 => '来获得最佳的浏览体验'],
-    'apply' => '应 用',
-    'avatar' => '头像',
-    'customize' => '自定义',
-    'all' => '全部',
-    'default' => '默认',
-    'download' => '下 载',
-    'goto' => '前 往',
-    'warning' => '警 告',
-    'success' => '成功',
-    'success_item' => ':attribute成功',
-    'failed' => '失败',
-    'failed_item' => ':attribute失败',
-    'update' => '更 新',
-    'update_action' => '更新:action',
-    'none' => '无',
-    'new' => '新',
-    'sorry' => '抱歉',
-    'applied' => ':attribute生效',
-    'active_item' => '激活:attribute',
-    'error' => '错误',
-    'toggle' => '切 换',
-    'toggle_action' => '切换:action',
-    'request_url' => '请求地址',
-    'function' => [
-        'navigation' => '导航',
-        'menubar' => '菜单栏',
-        'fullscreen' => '全屏',
-    ],
-    'days' => [
-        'attribute' => '{1} 天|{2} 日',
-        'sun' => '周日',
-        'mon' => '周一',
-        'tue' => '周二',
-        'wed' => '周三',
-        'thu' => '周四',
-        'fri' => '周五',
-        'sat' => '周六',
-        'weekend' => '周末',
-        'work' => '工作日',
-        'next' => '次日',
-    ],
-    'qrcode' => ':attribute二维码',
-    'deleted' => '已删除',
-    'deleted_item' => ':attribute已删除',
-    'print' => '打印',
-    'unlimited' => '无限制',
-    'payment' => [
-        'credit' => 'Số dư',
-        'alipay' => '支付宝',
-        'qq' => 'QQ钱包',
-        'wechat' => '微信支付',
-        'crypto' => '虚拟货币',
-        'manual' => '人工支付',
-        'status' => [
-            'wait' => '待支付',
-        ],
-    ],
-    'order' => [
-        'status' => [
-            'cancel' => '取 消',
-            'complete' => '完 成',
-            'prepaid' => '预支付',
-            'ongoing' => '使用中',
-            'review' => '待确认',
-        ],
-    ],
-    'recommend' => '推荐',
-    'advance' => '进阶',
-    'action' => '操作',
-    'search' => '搜 索',
-    'edit' => '编 辑',
-    'delete' => '删 除',
-    'status' => [
-        'attribute' => '状态',
-        'inactive' => '未激活',
-        'disabled' => '停 用',
-        'banned' => '禁 用',
-        'normal' => '正 常',
-        'enabled' => '启 用',
-        'expire' => '过 期',
-        'limited' => '限 制',
-        'run_out' => '流量耗尽',
-        'unused' => '未使用',
-        'used' => '已使用',
-        'closed' => '关 闭',
-        'applying' => '申请中',
-        'withdrawn' => '已提现',
-        'unwithdrawn' => '未提现',
-        'reply' => '已回复',
-        'pending' => '待处理',
-        'unknown' => '未 知',
-        'available' => '生效中',
-        'reject' => '否 決',
-        'rejected' => '已驳回',
-        'review' => '待审核',
-        'reviewed' => '审核通过待打款',
-        'paid' => '已打款',
-        'payment_pending' => '待打款',
-        'pass' => '通 过',
-        'send_to_credit' => '打款至余额',
-        'waiting_tobe_send' => '等待投递',
-    ],
-    'stay_unchanged' => '留空为不变',
-    'random_generate' => '留空则随机生成',
-    'request_failed' => '请求错误,请重试',
-    'convert' => '转 换',
-    'import' => '导 入',
-    'or' => '或',
-    'more' => '更多',
-    'to' => 'tới',
-    'to_be_send' => '待发送',
-    'developing' => '开发中!敬请期待',
-];

+ 0 - 32
resources/lang/vi/errors.php

@@ -1,32 +0,0 @@
-<?php
-
-return [
-    'forbidden' => [
-        'access' => '检测到未知IP或使用代理访问,禁止访问',
-        'bots' => '检测到机器人访问,禁止访问',
-        'china' => '检测到中国IP或使用代理访问,禁止访问',
-        'oversea' => '检测到海外IP或代理访问,禁止访问',
-    ],
-    'log' => '日志',
-    'refresh' => '刷 新',
-    'refresh_page' => '请刷新页面后,再访问',
-    'report' => '错❌误携带了报告:',
-    'safe_enter' => '安全入口访问',
-    'safe_code' => '请输入安全码',
-    'title' => '⚠️错误触发',
-    'unsafe_enter' => '非安全入口访问',
-    'visit' => '请访问',
-    'whoops' => '哎呦!',
-    'get_ip' => '获取IP信息异常',
-    'subscribe' => [
-        'unknown' => '使用链接错误!请重新获取!',
-        'sub_baned' => '链接已被封禁,请前往官网查询原因',
-        'user' => '错误链接,账号不存在!请重新获取链接',
-        'user_disable' => '账号被禁用!',
-        'baned_until' => '账号封禁至:time,请解封后再更新!',
-        'out' => '流量耗尽!请重新购买或重置流量!',
-        'expired' => '账号过期!请续费!',
-        'question' => '账号存在问题,请前往官网查询!',
-        'none' => '无可用节点',
-    ],
-];

+ 0 - 230
resources/lang/vi/model.php

@@ -1,230 +0,0 @@
-<?php
-
-return [
-    'user' => [
-        'id' => 'ID Người dùng',
-        'attribute' => 'Người dùng',
-        'nickname' => 'Nickname',
-        'username' => 'Tài khoản',
-        'password' => 'Mật Khẩu',
-        'credit' => 'Số dư',
-        'invite_num' => 'Số lời mời',
-        'reset_date' => 'Ngày đặt lại',
-        'port' => 'Cổng',
-        'traffic_used' => 'Đã sử dụng',
-        'service' => 'Proxy',
-        'group' => 'Nhóm',
-        'account_status' => 'Trạng Thái Tài Khoản',
-        'proxy_status' => 'Trạng thái Proxy',
-        'expired_date' => 'Ngày hết hạn',
-        'role' => 'Vai trò',
-        'wechat' => 'WeChat',
-        'qq' => 'QQ',
-        'remark' => 'Ghi chú',
-        'uuid' => 'VMess UUID',
-        'proxy_passwd' => 'Mật khẩu proxy',
-        'proxy_method' => 'Mã hoá',
-        'usable_traffic' => 'Lưu lượng có sẵn',
-        'proxy_protocol' => 'Giao thức',
-        'proxy_obfs' => 'Confuse',
-        'speed_limit' => 'Giới hạn tốc độ',
-        'inviter' => 'Người mời',
-        'created_date' => 'Ngày đăng ký',
-    ],
-    'common' => [
-        'extend' => 'Mở rộng',
-        'sort' => 'Sắp xếp',
-        'description' => 'Mô tả',
-        'type' => 'Loại',
-        'level' => 'Cấp độ',
-    ],
-    'country' => [
-        'code' => 'Mã quốc gia ISO',
-        'icon' => 'Biểu tượng',
-        'name' => 'Tên quốc gia',
-    ],
-    'subscribe' => [
-        'code' => 'Subscribe code',
-        'req_times' => 'Số lượng yêu cầu',
-        'updated_at' => 'Thời gian yêu cầu cuối cùng',
-        'ban_time' => 'Thời gian chặn',
-        'ban_desc' => 'Lý do',
-        'req_ip' => 'IP yêu cầu',
-        'req_header' => 'Header',
-    ],
-    'oauth' => [
-        'type' => 'Kênh',
-        'identifier' => 'Identifier',
-    ],
-    'user_group' => [
-        'attribute' => 'Nhóm người dùng',
-        'name' => 'Tên nhóm',
-        'nodes' => 'Chọn Node',
-    ],
-    'node' => [
-        'attribute' => 'Node',
-        'id' => 'NodeID',
-        'name' => 'Tên',
-        'domain' => '域名',
-        'static' => '存活',
-        'online_user' => '在线',
-        'data_consume' => '产生流量',
-        'data_rate' => '流量比例',
-        'ddns' => 'DDNS',
-        'ipv4' => 'IPv4地址',
-        'ipv6' => 'IPv6地址',
-        'push_port' => '消息推送端口',
-        'rule_group' => '审计分组',
-        'traffic_limit' => '节点限速',
-        'client_limit' => '设备数限制',
-        'label' => '标签',
-        'country' => '国家/地区',
-        'udp' => 'UDP',
-        'display' => '显示 与 订阅',
-        'detection' => '节点阻断检测',
-        'method' => 'Mã hoá',
-        'protocol' => 'Giao thức',
-        'protocol_param' => '协议参数',
-        'obfs' => 'Confuse',
-        'obfs_param' => '混淆参数',
-        'single' => '单端口',
-        'transfer' => '中 转',
-        'service_port' => '服务端口',
-        'single_passwd' => '[单] 密码',
-        'v2_alter_id' => '额外ID',
-        'v2_net' => '传输方式',
-        'v2_cover' => '伪装类型',
-        'v2_host' => '伪装域名',
-        'v2_path' => '路径 | 密钥',
-        'v2_sni' => 'SNI',
-        'v2_tls' => '连接TLS',
-        'v2_tls_provider' => 'TLS配置',
-        'relay_port' => '中转端口',
-    ],
-    'node_auth' => [
-        'attribute' => '节点授权',
-        'key' => '通信密钥<small>节点用</small>',
-        'secret' => '反向通信密钥',
-    ],
-    'node_cert' => [
-        'attribute' => '域名证书',
-        'domain' => '域名',
-        'key' => 'KEY',
-        'pem' => 'PEM',
-        'issuer' => '签发机构',
-        'signed_date' => '签发日期',
-        'expired_date' => '到期时间',
-    ],
-    'order' => [
-        'attribute' => '订单',
-        'id' => '订单号',
-        'original_price' => '原价',
-        'price' => 'Giá',
-        'pay_way' => 'Phương thức thanh toán',
-        'status' => 'Trạng thái',
-    ],
-    'goods' => [
-        'attribute' => 'Sản phẩm',
-        'name' => 'Tên',
-        'price' => 'Giá',
-        'category' => 'Danh mục',
-        'renew' => 'Giá reset data',
-        'user_limit' => 'Giới hạn người dùng',
-        'period' => 'Chu kì',
-        'traffic' => 'Lưu lượng',
-        'invite_num' => 'Số lượng mã mời quà tặng',
-        'limit_num' => 'Giới hạn mua',
-        'available_date' => 'Thời gian hiệu lực',
-        'hot' => 'Bán chạy',
-        'color' => 'Màu',
-        'logo' => 'Hình ảnh',
-        'info' => 'Danh sách tuỳ chỉnh',
-    ],
-    'rule' => [
-        'attribute' => 'Quy tắc',
-        'name' => 'Mô tả',
-        'pattern' => 'Giá trí',
-    ],
-    'rule_group' => [
-        'attribute' => 'Nhóm quy tắc',
-        'name' => 'Tên nhóm',
-        'type' => '审计模式',
-        'rules' => '选择规则',
-    ],
-    'role' => [
-        'attribute' => '角色',
-        'name' => 'Tên',
-        'permissions' => '权限',
-    ],
-    'permission' => [
-        'attribute' => '权限行为',
-        'description' => '行为描述',
-        'name' => '路由名称',
-    ],
-    'article' => [
-        'attribute' => '文章',
-        'category' => '类别',
-        'language' => '语言',
-        'logo' => '头图',
-        'created_at' => '发布日期',
-        'updated_at' => '最后更新',
-    ],
-    'coupon' => [
-        'attribute' => '卡券',
-        'name' => '卡券名称',
-        'sn' => '使用券码',
-        'logo' => '卡券图片',
-        'value' => '优惠额度',
-        'priority' => '权重',
-        'usable_times' => '使用次数',
-        'minimum' => '满减条件',
-        'used' => '个人限用',
-        'levels' => '等级限定',
-        'groups' => '分组限定',
-        'users_whitelist' => '专属用户',
-        'users_blacklist' => '禁用用户',
-        'services_whitelist' => '许可商品',
-        'services_blacklist' => '禁用商品',
-        'newbie' => '新人专属',
-        'num' => '数量',
-    ],
-    'aff' => [
-        'invitee' => '消费者',
-        'amount' => '消费金额',
-        'commission' => '返利金额',
-        'updated_at' => '处理时间',
-        'created_at' => '下单时间',
-    ],
-    'referral' => [
-        'created_at' => '申请时间',
-        'user' => '申请账号',
-        'amount' => '申请提现金额',
-        'id' => '申请单ID',
-    ],
-    'notification' => [
-        'address' => '收信地址',
-        'created_at' => '投递时间',
-        'status' => '投递状态',
-    ],
-    'ip' => [
-        'network_type' => '通讯类型',
-        'info' => '归属地',
-    ],
-    'user_traffic' => [
-        'upload' => '上传流量',
-        'download' => '下载流量',
-        'total' => '总流量',
-        'log_time' => '记录时间',
-    ],
-    'user_data_modify' => [
-        'before' => '变动前流量',
-        'after' => '变动后流量',
-        'created_at' => '发生时间',
-    ],
-    'user_credit' => [
-        'before' => '操作前余额',
-        'after' => '操作后金额',
-        'amount' => '发生金额',
-        'created_at' => '发生时间',
-    ],
-];

+ 0 - 35
resources/lang/vi/notification.php

@@ -1,35 +0,0 @@
-<?php
-
-return [
-    'attribute' => '通知',
-    'new' => ':num条新消息',
-    'empty' => '目前未收到新消息',
-    'payment_received' => '订单支付成功,金额::amount,查看详情',
-    'account_expired' => '账号过期提醒',
-    'account_expired_content' => '您的账号将在【:days】天后过期,为了确保您可以继续正常使用我们的服务,请及时续费。',
-    'account_expired_blade' => '账号将于【:days天】后过期,请及时续费',
-    'active_email' => '请在30分钟内完成操作',
-    'close_ticket' => '工单【:id】:title关闭',
-    'view_web' => '访问官网',
-    'view_ticket' => '访问工单',
-    'new_ticket' => '收到新工单::title',
-    'reply_ticket' => '工单回复::title',
-    'ticket_content' => '工单内容:',
-    'node_block' => '节点阻断警告',
-    'node_offline' => '节点离线警告',
-    'node_offline_content' => '以下节点存在异常:心跳异常,可能离线了:',
-    'block_report' => '阻断日志:',
-    'traffic_warning' => '流量提醒',
-    'traffic_remain' => '流量已使用::percent%,请保持关注。',
-    'traffic_tips' => '请注意套餐流量重置日,合理分配流量使用或在流量耗尽后,付费重置套餐流量',
-    'verification_account' => '账号验证',
-    'verification' => '您的验证码:',
-    'verification_limit' => '请在:minutes分钟内完成验证操作',
-    'data_anomaly' => '流量异常用户提醒',
-    'data_anomaly_content' => '用户:id:最近1小时 [上行流量::upload | 下行流量::download | 共计::total]',
-    'node' => [
-        'upload' => '上传',
-        'download' => '下载',
-        'total' => '总计',
-    ],
-];

+ 0 - 235
resources/lang/vi/user.php

@@ -1,235 +0,0 @@
-<?php
-
-return [
-    'account' => [
-        'credit' => '账户余额',
-        'status' => 'Trạng Thái Tài Khoản',
-        'level' => '账号等级',
-        'group' => '所属分组',
-        'speed_limit' => '限速',
-        'remain' => '剩余流量',
-        'time' => '套餐时长',
-        'last_login' => '最近登录',
-        'reset' => '{0} 还有 <code id="restTime">:days</code> 重置流量|[1,*] 还有 :days 天重置流量',
-        'connect_password' => '连接密码',
-        'reason' => [
-            'normal' => '账号一切正常',
-            'expired' => '您的账号套餐已过期',
-            'overused' => '本时段使用流量超过 <code>:data</code> GB触发系统限制<br/> <code id="banedTime">:min</code> 后解除限制',
-            'traffic_exhausted' => '您的账号[流量]消耗殆尽',
-            'unknown' => '未知原因,请尝试[刷新]你的浏览器!多次无果后再请开工单联系管理',
-        ],
-    ],
-    'home' => [
-        'attendance' => [
-            'attribute' => '签 到',
-            'disable' => '系统未开启签到功能',
-            'done' => '已经签到过了,明天再来吧!',
-            'success' => '您获得了 :data 流量',
-            'failed' => '系统❌异常',
-        ],
-        'traffic_logs' => '流量记录',
-        'announcement' => '公告',
-        'wechat_push' => '微信公告推送',
-        'chat_group' => '聊天群',
-        'empty_announcement' => '暂无公告',
-    ],
-    'purchase_to_unlock' => '购买服务后解锁',
-    'purchase_required' => '本功能对非付费用户禁用!请',
-    'attribute' => [
-        'node' => '线路',
-        'data' => '流量',
-        'ip' => 'IP地址',
-        'isp' => '运营商',
-        'address' => '地区',
-    ],
-    'purchase_promotion' => '快 来 购 买 服 务 吧!',
-    'menu' => [
-        'helps' => '帮 助',
-        'home' => '主 页',
-        'invites' => '邀 请',
-        'invoices' => '账 单',
-        'nodes' => '线 路',
-        'referrals' => '推 广',
-        'shop' => '服 务',
-        'profile' => '设 置',
-        'tickets' => '工 单',
-        'admin_dashboard' => '管 理',
-    ],
-    'contact' => '联系方式',
-    'oauth' => [
-        'bind_title' => '绑定社交账号',
-        'not_bind' => '尚未绑定',
-        'bind' => '绑 定',
-        'rebind' => '重新绑定',
-        'unbind' => '解 绑',
-    ],
-    'coupon' => [
-        'discount' => '优惠',
-        'error' => [
-            'unknown' => '无效优惠券',
-            'used' => '优惠券已被使用',
-            'expired' => '优惠券已过期',
-            'run_out' => '优惠券耗尽',
-            'inactive' => '优惠券尚未生效',
-            'wait' => '活动将于:time生效,请耐心等待!',
-            'unmet' => '使用条件未满足',
-            'minimum' => '本券最低使用金额为 :amount',
-            'overused' => '本券只能使用 :times 次',
-            'users' => '账户不符合促销条件',
-            'services' => '商品不符合折扣条件,请查看促销条款',
-        ],
-    ],
-    'error_response' => '出现了错误,请稍后再试。',
-    'invite' => [
-        'attribute' => '邀请码',
-        'counts' => '共 <code>:num</code> 个邀请码',
-        'tips' => '可生成<strong> :num </strong>枚邀请码,:days 日内有效',
-        'logs' => '邀请记录',
-        'promotion' => '通过您的邀请码注册并激活,你们双方都将获得<mark>:traffic</mark>流量奖励;当他们消费时,您将获得他们消费金额的<mark>:referral_percent%</mark>作为奖励。',
-        'generate_failed' => '生成失败:已无邀请码生成名额',
-    ],
-    'reset_data' => [
-        'action' => '重置流量',
-        'cost' => '需要<code>:amount</code>',
-        'cost_tips' => '本次重置流量将扣除余额 :amount!',
-        'lack' => '余额不足,请充值余额',
-        'logs' => '用户自行重置流量',
-        'success' => '重置成功',
-    ],
-    'referral' => [
-        'link' => '推广链接',
-        'total' => '合计返利 :amount( :total 次),满 :money 可以申请提现。',
-        'logs' => '佣金记录',
-        'failed' => '申请失败',
-        'success' => '申请成功',
-        'msg' => [
-            'account' => '账号已过期,请先购买服务吧',
-            'applied' => '已存在申请,请等待之前的申请处理完',
-            'unfulfilled' => '满 :amount 才可以提现,继续努力吧',
-            'wait' => '请等待管理员审核',
-            'error' => '返利单建立失败,请稍后尝试或通知管理员',
-        ],
-    ],
-    'inviter' => '邀请者',
-    'invitee' => '受邀者',
-    'registered_at' => 'Ngày đăng ký',
-    'bought_at' => '购买日期',
-    'payment_method' => 'Phương thức thanh toán',
-    'pay' => '支付',
-    'input_coupon' => '请输入充值券码',
-    'recharge' => '充值',
-    'recharge_credit' => '余额充值',
-    'recharging' => '充值中...',
-    'withdraw_commission' => '结算佣金',
-    'withdraw_at' => '结算日期',
-    'withdraw_logs' => '提现记录',
-    'withdraw' => '提 现',
-    'scan_qrcode' => '请使用客户端扫描二维码',
-    'shop' => [
-        'hot' => '热 销',
-        'limited' => '限 购',
-        'change_amount' => '充值金额',
-        'change_amount_help' => '请输入充值金额',
-        'buy' => '购买',
-        'description' => 'Mô tả',
-        'service' => '服务',
-        'pay_credit' => '余额支付',
-        'pay_online' => '在线支付',
-        'price' => '价格',
-        'quantity' => '数量',
-        'subtotal' => '小计',
-        'total' => '合计',
-        'conflict' => '套餐存在冲突',
-        'conflict_tips' => '<p>当前购买套餐将自动设置为 <code>预支付套餐</code><p><ol class="text-left"><li> 预支付套餐会在生效中的套餐失效后自动开通!</li><li> 您可以在支付后手动激活套餐!</li></ol>',
-        'call4help' => '请开工单通知客服',
-    ],
-    'service' => [
-        'node_count' => '<code>:num</code> 条优质线路',
-        'country_count' => '覆盖 <code>:num</code> 个国家或地区',
-        'unlimited' => '不限速',
-    ],
-    'payment' => [
-        'error' => '充值余额不合规',
-        'creating' => '创建支付单中...',
-        'redirect_stripe' => '转跳至Stripe支付界面',
-        'qrcode_tips' => '请使用<strong class="red-600">:software</strong>扫描二维码',
-        'close_tips' => '请在<code>:minutes分钟</code>内完成支付,否则订单将会自动关闭',
-        'mobile_tips' => '<strong>手机用户</strong>:长按二维码 -> 保存图片 ->打开支付软件 -> 扫一扫 -> 选择相册 进行付款',
-    ],
-    'invoice' => [
-        'attribute' => '订单',
-        'detail' => '消费记录',
-        'amount' => '金额',
-        'active_prepaid_question' => '是否提前激活预支付套餐?',
-        'active_prepaid_tips' => '套餐激活后:<br>先前套餐将直接失效!<br>过期日期将由本日重新开始计算!',
-    ],
-    'node' => [
-        'info' => '配置信息',
-        'setting' => '代理设置',
-        'unstable' => '线路波动/维护中',
-        'rate' => ':ratio倍流量消耗',
-    ],
-    'subscribe' => [
-        'link' => '订阅链接',
-        'tips' => '警告:该订阅链接仅限个人使用,请勿传播该链接,否则会导致您的账号流量使用情况异常触发自动封号机制。',
-        'exchange_warning' => '更换订阅地址将导致:\n1.旧地址立即失效\n2.连接密码被更改',
-        'custom' => '自定义订阅',
-        'ss_only' => '只订阅SS',
-        'ssr_only' => '只订阅SSR (包含SS)',
-        'v2ray_only' => '只订阅V2Ray',
-        'trojan_only' => '只订阅Trojan',
-        'error' => '更换订阅地址异常',
-        'info' => [
-            'title' => '账号摘要 [非实时]',
-            'upload' => '上载流量',
-            'download' => '下载流量',
-            'total' => '套餐流量',
-        ],
-    ],
-    'ticket' => [
-        'attribute' => '工单',
-        'submit_tips' => '确定提交工单?',
-        'reply_confirm' => '确定回复工单?',
-        'close_tips' => '您确定要关闭该工单吗?',
-        'close' => '关闭工单',
-        'failed_closed' => '错误:该工单已关闭',
-        'reply_placeholder' => '说些什么呢?',
-        'reply' => '回复',
-        'close_msg' => '工单:ID:id用户已手动关闭',
-        'title_placeholder' => '请简单表示你的问题类型,或者涉及的内容',
-        'content_placeholder' => '请详细的描述您遇到的问题,或者需要我们帮助的地方,以便我们快速帮助到您',
-        'new' => '创建新的工单',
-        'working_hour' => '客服工作时间',
-        'online_hour' => '在线时间',
-        'service_tips' => '本站有多种联系方式,请使用其中<code>一种</code>联系客服! <br>重复请求,将会自动延迟处理时间',
-        'error' => '未知错误!请通知客服',
-    ],
-    'traffic_logs' => [
-        '24hours' => '今日流量使用情况',
-        '30days' => '本月流量使用情况',
-        'tips' => '提示:流量统计更新会有延迟。按天统计于次日更新,按小时统计于次小时更新。',
-    ],
-    'client' => '客户端',
-    'tutorials' => '教 程',
-    'current_role' => '当前身份',
-    'knowledge' => [
-        'title' => '知 识 库',
-        'basic' => '基 础',
-    ],
-    'manual' => [
-        'red_packet' => '支付宝领红包',
-        'hint' => '扫码支付后, 请继续点击👇【下一步】,直到👇【提 交】才算正式支付完成!!!',
-        'step_1' => '须知',
-        'step_1_title' => '如何正确人工支付',
-        'step_2' => '支付',
-        'step_2_title' => '获取支付二维码,进行支付',
-        'step_3' => '完成',
-        'step_3_title' => '等待支付被人工核对',
-        'remark' => '备注账号',
-        'remark_content' => '填入登录使用的账号,在人工核对中可以对号审核!',
-        'payment_hint' => '支付时,请充值对应金额(多不退,少要补)',
-        'pre' => '上一步',
-        'next' => '下一步',
-    ],
-];

+ 1 - 0
resources/lang/vi/validation.php

@@ -22,6 +22,7 @@ return [
         'string' => 'Trường :attribute phải từ :min - :max kí tự.',
     ],
     'boolean' => 'Trường :attribute phải là true hoặc false.',
+    'can' => 'Trường :attribute chứa một giá trị trái phép.',
     'confirmed' => 'Giá trị xác nhận trong trường :attribute không khớp.',
     'current_password' => 'Mật khẩu không đúng.',
     'date' => 'Trường :attribute không phải là định dạng của ngày-tháng.',

+ 20 - 34
resources/lang/zh_CN.json

@@ -1,71 +1,57 @@
 {
     "(and :count more error)": "(还有 :count 个错误)",
-    "(and :count more errors)": "(还有 :count 个错误)",
-    "----「:job」Completed, Used :time seconds ----": "----「:job」完成, 耗时 :time 秒----",
-    "[Auto Task] Blocked service: Abnormal traffic within 1 hour": "[自动任务]封禁服务: 1小时内流量异常",
-    "[Auto Task] Blocked service: Run out of traffic": "[自动任务]封禁服务: 流量耗尽",
-    "[Auto Task] Blocked Subscription: Subscription with abnormal requests within 24 hours": "[自动任务]封禁订阅: 订阅24小时内请求异常",
-    "[Daily Task] Account Expiration: Block Login & Clear Account": "[每日任务]账号过期: 禁止登录, 清空账户",
-    "[Daily Task] Account Expiration: Stop Service": "[每日任务]账号过期: 停止服务",
-    "[Daily Task] Reset Account Traffic, Next Reset Date: :date": "[每日任务]重置账号流量, 下次重置日: :date",
-    "[Service Timer] Service Expiration": "[定时任务]服务到期",
-    "A fresh verification link has been sent to your email address.": "一个新的验证链接已发送到您的电子邮件地址。",
+    "(and :count more errors)": "(以及另外 :count 个错误)",
     "All rights reserved.": "版权所有。",
-    "Before proceeding, please check your email for a verification link.": "在继续之前,请检查您的电子邮件以获取验证链接。",
-    "click here to request another": "单击此处请求另一个",
-    "Confirm Password": "确认密码",
-    "Daily Data Usage Report": "线路每日流量报告",
-    "E-Mail Address": "电子邮件地址",
     "Forbidden": "访问被拒绝",
-    "Forgot Your Password?": "忘记密码?",
-    "Go Home": "回首页",
     "Go to page :page": "前往第 :page 页",
     "Hello!": "您好!",
     "If you did not create an account, no further action is required.": "如果您未注册帐号,请忽略此邮件。",
-    "If you did not receive the email": "如果您没有收到电子邮件",
     "If you did not request a password reset, no further action is required.": "如果您未申请重设密码,请忽略此邮件。",
     "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "如果您单击「:actionText」按钮时遇到问题,请复制下方链接到浏览器中访问:",
-    "Invoice Detail": "订单明细",
+    "Invalid JSON was returned from the route.": "从路由返回无效的 JSON。",
     "Login": "登录",
     "Logout": "登出",
-    "Name": "姓名",
     "Not Found": "页面不存在",
     "of": "于",
-    "Oh no": "不好了",
     "Page Expired": "页面会话已超时",
     "Pagination Navigation": "分页导航",
-    "Password": "密码",
-    "Payment for #:sn has been received! Total amount: :amount.": "您成功支付了订单#:sn, 总金额为 :amount.",
-    "Payment Received": "账单付款成功",
     "Payment Required": "需要付款",
     "Please click the button below to verify your email address.": "请点击下面按钮验证您的 E-mail:",
     "Regards": "致敬",
     "Register": "注册",
-    "Remember Me": "记住我",
     "Reset Password": "重置密码",
     "Reset Password Notification": "重置密码通知",
     "results": "结果",
-    "Send Password Reset Link": "发送重设密码链接",
     "Server Error": "服务器错误",
     "Service Unavailable": "服务不可用",
     "Showing": "显示中",
-    "Subscription link receive abnormal access and banned by the system": "订阅链接访问异常,系统自动封禁",
-    "Thank you for signing up! Before you start, you need to verify your email by clicking on the link we have just sent to your email! If you haven't received an email, we would be happy to send another one.": "感谢您的注册! 在开始之前,您需要通过点击我们刚刚发送至您邮箱中的链接来验证您的电子邮件! 如果您没有收到电子邮件,我们很乐意再发送一封给您。",
-    "The :attribute must contain at least one letter.": ":attribute 至少包含一个字母。",
-    "The :attribute must contain at least one number.": ":attribute 至少包含一个数字。",
-    "The :attribute must contain at least one symbol.": ":attribute 至少包含一个符号。",
-    "The :attribute must contain at least one uppercase and one lowercase letter.": ":attribute 至少包含一个大写字母和一个小写字母。",
-    "The given :attribute has appeared in a data leak. Please choose a different :attribute.": "给定的 :attribute 出现在数据泄漏中。请选择不同的 :attribute。",
     "The given data was invalid.": "给定的数据无效。",
+    "The response is not a streamed response.": "该响应不是流式响应。",
+    "The response is not a view.": "响应不是视图。",
     "This password reset link will expire in :count minutes.": "这个重设密码链接将会在 :count 分钟后失效。",
     "to": "至",
     "Toggle navigation": "切换导航",
     "Too Many Requests": "请求次数过多。",
     "Unauthorized": "未授权",
     "Verify Email Address": "验证 E-mail",
-    "Verify Your Email Address": "验证您的邮件地址",
     "Whoops!": "哎呀!",
     "You are receiving this email because we received a password reset request for your account.": "您收到此电子邮件是因为我们收到了您帐户的密码重设请求。",
+
+    "----「:job」Completed, Used :time seconds ----": "----「:job」完成, 耗时 :time 秒----",
+    "[Auto Task] Blocked service: Abnormal traffic within 1 hour": "[自动任务]封禁服务: 1小时内流量异常",
+    "[Auto Task] Blocked service: Run out of traffic": "[自动任务]封禁服务: 流量耗尽",
+    "[Auto Task] Blocked Subscription: Subscription with abnormal requests within 24 hours": "[自动任务]封禁订阅: 订阅24小时内请求异常",
+    "[Daily Task] Account Expiration: Block Login & Clear Account": "[每日任务]账号过期: 禁止登录, 清空账户",
+    "[Daily Task] Account Expiration: Stop Service": "[每日任务]账号过期: 停止服务",
+    "[Daily Task] Reset Account Traffic, Next Reset Date: :date": "[每日任务]重置账号流量, 下次重置日: :date",
+    "[Service Timer] Service Expiration": "[定时任务]服务到期",
+    "Daily Data Usage Report": "线路每日流量报告",
+    "Invoice Detail": "订单明细",
+    "Payment for #:sn has been received! Total amount: :amount.": "您成功支付了订单#:sn, 总金额为 :amount.",
+    "Payment Received": "账单付款成功",
+    "Subscription link receive abnormal access and banned by the system": "订阅链接访问异常,系统自动封禁",
+    "Thank you for signing up! Before you start, you need to verify your email by clicking on the link we have just sent to your email! If you haven't received an email, we would be happy to send another one.": "感谢您的注册! 在开始之前,您需要通过点击我们刚刚发送至您邮箱中的链接来验证您的电子邮件! 如果您没有收到电子邮件,我们很乐意再发送一封给您。",
+    "Verify Your Email Address": "验证您的邮件地址",
     "You have not responded this ticket in :num hours, System has closed your ticket.": "超过:num小时未回复工单,系统已自动关闭了您的工单",
     "You must have a valid subscription to view the content in this area!": "您必须拥有有效套餐才可以查看该区域的内容!",
     "Your subscription has been disabled by the administrator, please contact the administrator to restore it": "订阅功能被禁用,请联系管理员恢复"

+ 2 - 2
resources/lang/zh_CN/admin.php

@@ -13,8 +13,8 @@ return [
         'abnormal_users' => '1小时内流量异常',
         'nodes' => '节点',
         'maintaining_nodes' => '维护中的节点',
-        'traffic_consumed' => '记录的消耗流量',
-        'traffic_days_consumed' => ':days 日内消耗流量',
+        'current_month_traffic_consumed' => '本月消耗流量',
+        'days_traffic_consumed' => ':days 天消耗流量',
         'orders' => '总订单数',
         'online_orders' => '在线支付订单数',
         'succeed_orders' => '支付成功订单数',

+ 1 - 0
resources/lang/zh_CN/common.php

@@ -9,6 +9,7 @@ return [
     'updated_at' => '更新时间',
     'latest_at' => '最近时间',
     'back' => '返 回',
+    'back_to' => '返回至:page',
     'cancel' => '取 消',
     'close' => '关 闭',
     'close_item' => '关闭:attribute',

+ 2 - 1
resources/lang/zh_CN/validation.php

@@ -22,6 +22,7 @@ return [
         'string' => ':Attribute 必须介于 :min - :max 个字符之间。',
     ],
     'boolean' => ':Attribute 必须为布尔值。',
+    'can' => ':Attribute 字段包含未经授权的值。',
     'confirmed' => ':Attribute 两次输入不一致。',
     'current_password' => '密码错误。',
     'date' => ':Attribute 不是一个有效的日期。',
@@ -107,7 +108,7 @@ return [
         'mixed' => ':Attribute 必须至少包含一个大写字母和一个小写字母。',
         'numbers' => ':Attribute 必须至少包含一个数字。',
         'symbols' => ':Attribute 必须至少包含一个符号。',
-        'uncompromised' => '给定的 :attribute 出现在数据泄漏中。请选择不同的 :attribute。',
+        'uncompromised' => '给定的 :attribute 出现在已经泄漏的密码中。请选择不同的 :attribute。',
     ],
     'present' => ':Attribute 必须存在。',
     'prohibited' => ':Attribute 字段被禁止。',

+ 1 - 1
resources/views/admin/logs/userBanHistory.blade.php

@@ -46,7 +46,7 @@
                                     【{{trans('common.deleted_item', ['attribute' => trans('common.account')])}}】
                                 @endif
                             </td>
-                            <td> {{$log->time}}{{ trans('admin.minute') }}</td>
+                            <td> {{$log->time}} {{ trans('admin.minute') }}</td>
                             <td> {{$log->description}} </td>
                             <td> {{$log->created_at}} </td>
                             <td> {{date('Y-m-d H:i:s', $log->user->t)}} </td>

+ 4 - 4
resources/views/admin/logs/userMonitor.blade.php

@@ -35,7 +35,7 @@
             x: {
               ticks: {
                 callback: function(value) {
-                  return this.getLabelForValue(value) + tail;
+                  return this.getLabelForValue(value) + ' ' + tail;
                 },
               },
               grid: {
@@ -62,7 +62,7 @@
               intersect: false,
               callbacks: {
                 title: function(context) {
-                  return context[0].label + tail;
+                  return context[0].label + ' ' + tail;
                 },
                 label: function(context) {
                   return context.parsed.y + ' GB';
@@ -89,13 +89,13 @@
       new Chart(document.getElementById('dailyChart'), {
         type: 'line',
         data: datasets(@json($dayHours), @json($trafficHourly)),
-        options: common_options(' {{trans_choice('common.hour', 2)}}'),
+        options: common_options(@json(trans_choice('common.hour', 2))),
       });
 
       new Chart(document.getElementById('monthlyChart'), {
         type: 'line',
         data: datasets(@json($monthDays), @json($trafficDaily)),
-        options: common_options(' {{trans_choice('common.days.attribute', 2)}}'),
+        options: common_options(@json(trans_choice('common.days.attribute', 2))),
       });
     </script>
 @endsection

+ 4 - 4
resources/views/admin/node/monitor.blade.php

@@ -37,7 +37,7 @@
             x: {
               ticks: {
                 callback: function(value) {
-                  return this.getLabelForValue(value) + tail;
+                  return this.getLabelForValue(value) + ' ' + tail;
                 },
               },
               grid: {
@@ -64,7 +64,7 @@
               intersect: false,
               callbacks: {
                 title: function(context) {
-                  return context[0].label + tail;
+                  return context[0].label + ' ' + tail;
                 },
                 label: function(context) {
                   return context.parsed.y + ' GB';
@@ -91,13 +91,13 @@
       new Chart(document.getElementById('dailyChart'), {
         type: 'line',
         data: datasets(@json($dayHours), @json($trafficHourly)),
-        options: common_options(' {{trans_choice('common.hour', 2)}}'),
+        options: common_options(@json(trans_choice('common.hour', 2))),
       });
 
       new Chart(document.getElementById('monthlyChart'), {
         type: 'line',
         data: datasets(@json($monthDays), @json($trafficDaily)),
-        options: common_options(' {{trans_choice('common.days.attribute', 2)}}'),
+        options: common_options(@json(trans_choice('common.days.attribute', 2))),
       });
     </script>
 @endsection

+ 3 - 3
resources/views/admin/report/userDataAnalysis.blade.php

@@ -53,7 +53,7 @@
               intersect: false,
               callbacks: {
                 title: function(context) {
-                  return context[0].label + tail;
+                  return context[0].label + ' ' + tail;
                 },
                 label: function(context) {
                   let label = context.dataset.label || '';
@@ -114,7 +114,7 @@
                             font: {size: 14},
                         },
                     },
-                    tooltip: label_callbacks(' {{ trans_choice('common.hour', 2) }}'),
+                    tooltip: label_callbacks(@json(trans_choice('common.hour', 2))),
                 },
             },
           });
@@ -149,7 +149,7 @@
                             font: {size: 14},
                         },
                     },
-                    tooltip: label_callbacks(' {{ trans_choice('common.days.attribute', 1) }}'),
+                    tooltip: label_callbacks(@json(trans_choice('common.days.attribute', 2))),
                 },
             },
           });

+ 2 - 2
resources/views/auth/maintenance.blade.php

@@ -23,8 +23,8 @@
             const hours = Math.floor(distance % 86400000 / 3600000);
             const minutes = Math.floor(distance % 3600000 / 60000);
             const seconds = Math.floor(distance % 60000 / 1000);
-            document.getElementById('countdown').innerHTML = '<h2>' + days + ' <span> {{trans_choice('common.days.attribute', 1)}} </span>: ' +
-                hours + ' <span>{{trans_choice('common.hour', 1)}}</span>: ' + minutes + ' <span>{{trans('validation.attributes.minute')}} </span>: ' +
+            document.getElementById('countdown').innerHTML = '<h2>' + days + ' <span> ' + @json(trans_choice('common.days.attribute', 1)) + ' </span>: ' +
+                hours + ' <span>' + @json(trans_choice('common.hour', 1)) + '</span>: ' + minutes + ' <span>{{trans('validation.attributes.minute')}} </span>: ' +
                 seconds + '<span> {{trans('validation.attributes.second')}}</span> </h2>';
             if (distance <= 0) {
                 clearInterval(x);

+ 7 - 7
resources/views/user/index.blade.php

@@ -359,7 +359,7 @@
             x: {
               ticks: {
                 callback: function(value) {
-                  return this.getLabelForValue(value) + tail;
+                  return this.getLabelForValue(value) + ' ' + tail;
                 },
               },
               grid: {
@@ -385,7 +385,7 @@
               intersect: false,
               callbacks: {
                 title: function(context) {
-                  return context[0].label + tail;
+                  return context[0].label + ' ' + tail;
                 },
                 label: function(context) {
                   return context.parsed.y + ' GB';
@@ -412,13 +412,13 @@
       new Chart(document.getElementById('dailyChart'), {
         type: 'line',
         data: datasets(@json($dayHours), @json($trafficHourly)),
-        options: common_options(' {{trans_choice('common.hour', 2)}}'),
+        options: common_options(@json(trans_choice('common.hour', 2))),
       });
 
       new Chart(document.getElementById('monthlyChart'), {
         type: 'line',
         data: datasets(@json($monthDays), @json($trafficDaily)),
-        options: common_options(' {{trans_choice('common.days.attribute', 2)}}'),
+        options: common_options(@json(trans_choice('common.days.attribute', 2))),
       });
 
       @if($banedTime) // 封禁倒计时
@@ -443,13 +443,13 @@
         const minute = Math.floor((distance % 3600000) / 60000);
         let string = '';
         if (hour) {
-          string += hour + '{{ trans_choice('common.hour', 1) }} ';
+          string += hour + ' ' + @json(trans_choice('common.hour', 1));
         }
         if (minute) {
-          string += minute + '{{ trans('validation.attributes.minute') }}';
+          string += ' ' + minute + ' ' + @json(trans('validation.attributes.minute'));
         }
         if (seconds) {
-          string += ' ' + Math.floor((distance % 60000) / 1000) + '{{trans('validation.attributes.second')}}';
+          string += ' ' + Math.floor((distance % 60000) / 1000) + ' ' + @json(trans('validation.attributes.second'));
         }
         document.getElementById(id).innerHTML = string;
 

Some files were not shown because too many files changed in this diff