ZBrettonYe 2 лет назад
Родитель
Сommit
a9f1b74506
72 измененных файлов с 2264 добавлено и 695 удалено
  1. 1 1
      app/Channels/Library/WeChat.php
  2. 1 1
      app/Components/CurrencyExchange.php
  3. 1 1
      app/Components/DDNS/Aliyun.php
  4. 1 1
      app/Components/DDNS/CloudFlare.php
  5. 1 1
      app/Components/DDNS/DNSPod.php
  6. 2 2
      app/Components/DDNS/Namesilo.php
  7. 1 1
      app/Console/Commands/AutoClearLogs.php
  8. 1 1
      app/Console/Commands/AutoJob.php
  9. 1 1
      app/Console/Commands/DailyJob.php
  10. 1 1
      app/Console/Commands/DailyNodeReport.php
  11. 1 1
      app/Console/Commands/NodeDailyTrafficStatistics.php
  12. 1 1
      app/Console/Commands/NodeHourlyTrafficStatistics.php
  13. 1 1
      app/Console/Commands/NodeStatusDetection.php
  14. 1 1
      app/Console/Commands/PanelInstallation.php
  15. 3 1
      app/Console/Commands/ServiceTimer.php
  16. 1 1
      app/Console/Commands/UpdateUserSpeedLimit.php
  17. 1 1
      app/Console/Commands/UserDailyTrafficStatistics.php
  18. 1 1
      app/Console/Commands/UserExpireWarning.php
  19. 1 1
      app/Console/Commands/UserHourlyTrafficMonitoring.php
  20. 1 1
      app/Console/Commands/UserTrafficWarning.php
  21. 1 1
      app/Console/Commands/VNetReload.php
  22. 2 2
      app/Console/Kernel.php
  23. 3 2
      app/Http/Controllers/Api/Client/AuthController.php
  24. 2 1
      app/Http/Controllers/Api/Client/ClientController.php
  25. 2 2
      app/Http/Controllers/AuthController.php
  26. 1 1
      app/Http/Controllers/PaymentController.php
  27. 1 1
      app/Models/Payment.php
  28. 5 5
      app/Models/Rule.php
  29. 1 1
      app/Models/User.php
  30. 1 1
      app/Notifications/AccountActivation.php
  31. 3 3
      app/Notifications/NodeDailyReport.php
  32. 1 1
      app/Notifications/PasswordReset.php
  33. 1 1
      app/Notifications/TicketClosed.php
  34. 3 3
      app/Payments/Stripe.php
  35. 0 2
      app/Services/CouponService.php
  36. 2 2
      database/migrations/2020_11_06_145018_create_permission_tables.php
  37. 118 158
      resources/lang/en/admin.php
  38. 1 1
      resources/lang/en/auth.php
  39. 7 7
      resources/lang/en/common.php
  40. 91 92
      resources/lang/en/model.php
  41. 7 7
      resources/lang/en/notification.php
  42. 12 12
      resources/lang/en/user.php
  43. 74 74
      resources/lang/en/validation.php
  44. 27 0
      resources/lang/ja.json
  45. 804 0
      resources/lang/ja/admin.php
  46. 84 0
      resources/lang/ja/auth.php
  47. 144 0
      resources/lang/ja/common.php
  48. 36 0
      resources/lang/ja/errors.php
  49. 238 0
      resources/lang/ja/model.php
  50. 35 0
      resources/lang/ja/notification.php
  51. 6 0
      resources/lang/ja/pagination.php
  52. 9 0
      resources/lang/ja/passwords.php
  53. 219 0
      resources/lang/ja/user.php
  54. 137 0
      resources/lang/ja/validation.php
  55. 5 6
      resources/lang/ko.json
  56. 11 53
      resources/lang/ko/admin.php
  57. 3 4
      resources/lang/ko/model.php
  58. 1 1
      resources/lang/ko/notification.php
  59. 5 6
      resources/lang/vi.json
  60. 21 63
      resources/lang/vi/admin.php
  61. 5 5
      resources/lang/vi/common.php
  62. 85 86
      resources/lang/vi/model.php
  63. 1 1
      resources/lang/vi/notification.php
  64. 5 5
      resources/lang/zh_CN.json
  65. 11 53
      resources/lang/zh_CN/admin.php
  66. 1 1
      resources/lang/zh_CN/common.php
  67. 3 4
      resources/lang/zh_CN/model.php
  68. 1 1
      resources/views/admin/aff/detail.blade.php
  69. 1 1
      resources/views/admin/aff/rebate.blade.php
  70. 2 2
      resources/views/admin/logs/order.blade.php
  71. 1 1
      resources/views/user/invoiceDetail.blade.php
  72. 1 1
      resources/views/user/invoices.blade.php

+ 1 - 1
app/Channels/Library/WeChat.php

@@ -183,7 +183,7 @@ class PKCS7Encoder
             $pad = 0;
         }
 
-        return substr($text, 0, (strlen($text) - $pad));
+        return substr($text, 0, strlen($text) - $pad);
     }
 }
 

+ 1 - 1
app/Components/CurrencyExchange.php

@@ -61,7 +61,7 @@ class CurrencyExchange
                 return $rate;
             }
 
-            return round(($amount * $rate), 2);
+            return round($amount * $rate, 2);
         }
 
         return false;

+ 1 - 1
app/Components/DDNS/Aliyun.php

@@ -33,7 +33,7 @@ class Aliyun
         if ($domainList) {
             foreach ($domainList as $domain) {
                 if (str_contains(self::$subDomain, $domain)) {
-                    return [$domain, rtrim(substr(self::$subDomain, 0, -(strlen($domain))), '.')];
+                    return [$domain, rtrim(substr(self::$subDomain, 0, -strlen($domain)), '.')];
                 }
             }
         }

+ 1 - 1
app/Components/DDNS/CloudFlare.php

@@ -26,7 +26,7 @@ class CloudFlare
         if ($zoneInfo && Arr::has($zoneInfo, 'result.0.id')) {
             foreach ($zoneInfo['result'] as $zone) {
                 if (str_contains(self::$subDomain, $zone['name'])) {
-                    return [$zone['name'], rtrim(substr(self::$subDomain, 0, -(strlen($zone['name']))), '.'), $zone['id']];
+                    return [$zone['name'], rtrim(substr(self::$subDomain, 0, -strlen($zone['name'])), '.'), $zone['id']];
                 }
             }
         }

+ 1 - 1
app/Components/DDNS/DNSPod.php

@@ -39,7 +39,7 @@ class DNSPod
         if ($domainList) {
             foreach ($domainList as $key => $domain) {
                 if (str_contains(self::$subDomain, $domain)) {
-                    return [$domain, rtrim(substr(self::$subDomain, 0, -(strlen($domain))), '.'), $key];
+                    return [$domain, rtrim(substr(self::$subDomain, 0, -strlen($domain)), '.'), $key];
                 }
             }
         }

+ 2 - 2
app/Components/DDNS/Namesilo.php

@@ -38,11 +38,11 @@ class Namesilo
             if (is_array($domainList)) {
                 foreach ($domainList as $domain) {
                     if (str_contains(self::$subDomain, $domain)) {
-                        return [$domain, rtrim(substr(self::$subDomain, 0, -(strlen($domain))), '.')];
+                        return [$domain, rtrim(substr(self::$subDomain, 0, -strlen($domain)), '.')];
                     }
                 }
             } elseif (str_contains(self::$subDomain, $domainList)) {
-                return [$domainList, rtrim(substr(self::$subDomain, 0, -(strlen($domainList))), '.')];
+                return [$domainList, rtrim(substr(self::$subDomain, 0, -strlen($domainList)), '.')];
             }
         }
 

+ 1 - 1
app/Console/Commands/AutoClearLogs.php

@@ -34,7 +34,7 @@ class AutoClearLogs extends Command
             $this->clearLog();
         }
 
-        $jobTime = round((microtime(true) - $jobTime), 4);
+        $jobTime = round(microtime(true) - $jobTime, 4);
 
         Log::info('---【'.$this->description.'】完成---,耗时'.$jobTime.'秒');
     }

+ 1 - 1
app/Console/Commands/AutoJob.php

@@ -50,7 +50,7 @@ class AutoJob extends Command
             Config::whereIn('name', ['maintenance_mode', 'maintenance_content', 'maintenance_time'])->update(['value' => null]);
         }
 
-        $jobTime = round((microtime(true) - $jobTime), 4);
+        $jobTime = round(microtime(true) - $jobTime, 4);
 
         Log::info('---【'.$this->description.'】完成---,耗时'.$jobTime.'秒');
     }

+ 1 - 1
app/Console/Commands/DailyJob.php

@@ -26,7 +26,7 @@ class DailyJob extends Command
             $this->resetUserTraffic();
         }
 
-        $jobTime = round((microtime(true) - $jobTime), 4);
+        $jobTime = round(microtime(true) - $jobTime, 4);
 
         Log::info('---【'.$this->description.'】完成---,耗时'.$jobTime.'秒');
     }

+ 1 - 1
app/Console/Commands/DailyNodeReport.php

@@ -48,7 +48,7 @@ class DailyNodeReport extends Command
             }
         }
 
-        $jobTime = round((microtime(true) - $jobTime), 4);
+        $jobTime = round(microtime(true) - $jobTime, 4);
 
         Log::info('---【'.$this->description.'】完成---,耗时'.$jobTime.'秒');
     }

+ 1 - 1
app/Console/Commands/NodeDailyTrafficStatistics.php

@@ -19,7 +19,7 @@ class NodeDailyTrafficStatistics extends Command
             $this->statisticsByNode($node);
         }
 
-        $jobTime = round((microtime(true) - $jobTime), 4);
+        $jobTime = round(microtime(true) - $jobTime, 4);
 
         Log::info('---【'.$this->description.'】完成---,耗时'.$jobTime.'秒');
     }

+ 1 - 1
app/Console/Commands/NodeHourlyTrafficStatistics.php

@@ -19,7 +19,7 @@ class NodeHourlyTrafficStatistics extends Command
             $this->statisticsByNode($node);
         }
 
-        $jobTime = round((microtime(true) - $jobTime), 4);
+        $jobTime = round(microtime(true) - $jobTime, 4);
 
         Log::info('---【'.$this->description.'】完成---,耗时'.$jobTime.'秒');
     }

+ 1 - 1
app/Console/Commands/NodeStatusDetection.php

@@ -34,7 +34,7 @@ class NodeStatusDetection extends Command
             }
         }
 
-        $jobTime = round((microtime(true) - $jobTime), 4);
+        $jobTime = round(microtime(true) - $jobTime, 4);
 
         Log::info("---【{$this->description}】完成---,耗时 {$jobTime} 秒");
     }

+ 1 - 1
app/Console/Commands/PanelInstallation.php

@@ -118,7 +118,7 @@ class PanelInstallation extends Command
             $oldValue = count($matches) ? $matches[0] : '';
 
             if ($oldValue) {
-                $contents = str_replace((string) ($oldValue), "{$key}={$value}", $contents);
+                $contents = str_replace((string) $oldValue, "{$key}={$value}", $contents);
             } else {
                 $contents .= "\n{$key}={$value}\n";
             }

+ 3 - 1
app/Console/Commands/ServiceTimer.php

@@ -18,7 +18,7 @@ class ServiceTimer extends Command
 
         $this->decGoodsTraffic(); // 扣减用户到期商品的流量
 
-        $jobTime = round((microtime(true) - $jobTime), 4);
+        $jobTime = round(microtime(true) - $jobTime, 4);
 
         Log::info('---【'.$this->description.'】完成---,耗时'.$jobTime.'秒');
     }
@@ -43,6 +43,8 @@ class ServiceTimer extends Command
                     ]);
                     Helpers::addUserTrafficModifyLog($user->id, $order->id, $user->transfer_enable, 0, '[定时任务]用户所购商品到期,扣减商品对应的流量');
 
+                    sleep(1); // 保证一切都已经更新到位
+
                     $order->update(['is_expire' => 1]); // 过期本订单
                 }
             });

+ 1 - 1
app/Console/Commands/UpdateUserSpeedLimit.php

@@ -19,7 +19,7 @@ class UpdateUserSpeedLimit extends Command
             $order->user->update(['speed_limit' => $order->goods->speed_limit]);
         }
 
-        $jobTime = round((microtime(true) - $jobTime), 4);
+        $jobTime = round(microtime(true) - $jobTime, 4);
 
         Log::info('---【'.$this->description.'】完成---,耗时'.$jobTime.'秒');
     }

+ 1 - 1
app/Console/Commands/UserDailyTrafficStatistics.php

@@ -19,7 +19,7 @@ class UserDailyTrafficStatistics extends Command
                 $this->statisticsByUser($user);
             }
         });
-        $jobTime = round((microtime(true) - $jobTime), 4);
+        $jobTime = round(microtime(true) - $jobTime, 4);
 
         Log::info('---【'.$this->description.'】完成---,耗时'.$jobTime.'秒');
     }

+ 1 - 1
app/Console/Commands/UserExpireWarning.php

@@ -20,7 +20,7 @@ class UserExpireWarning extends Command
             $this->userExpireWarning();
         }
 
-        $jobTime = round((microtime(true) - $jobTime), 4);
+        $jobTime = round(microtime(true) - $jobTime, 4);
 
         Log::info('---【'.$this->description.'】完成---,耗时'.$jobTime.'秒');
     }

+ 1 - 1
app/Console/Commands/UserHourlyTrafficMonitoring.php

@@ -27,7 +27,7 @@ class UserHourlyTrafficMonitoring extends Command
             }
         });
 
-        $jobTime = round((microtime(true) - $jobTime), 4);
+        $jobTime = round(microtime(true) - $jobTime, 4);
 
         Log::info('---【'.$this->description.'】完成---,耗时'.$jobTime.'秒');
     }

+ 1 - 1
app/Console/Commands/UserTrafficWarning.php

@@ -20,7 +20,7 @@ class UserTrafficWarning extends Command
             $this->userTrafficWarning();
         }
 
-        $jobTime = round((microtime(true) - $jobTime), 4);
+        $jobTime = round(microtime(true) - $jobTime, 4);
 
         Log::info('---【'.$this->description.'】完成---,耗时'.$jobTime.'秒');
     }

+ 1 - 1
app/Console/Commands/VNetReload.php

@@ -21,7 +21,7 @@ class VNetReload extends Command
             reloadNode::dispatchNow($nodes);
         }
 
-        $jobTime = round((microtime(true) - $startTime), 4);
+        $jobTime = round(microtime(true) - $startTime, 4);
 
         Log::info('---【'.$this->description.'】完成---,耗时'.$jobTime.'秒');
     }

+ 2 - 2
app/Console/Kernel.php

@@ -47,9 +47,8 @@ class Kernel extends ConsoleKernel
      */
     protected function schedule(Schedule $schedule)
     {
-        $schedule->command('autoJob')->everyMinute();
-        $schedule->command('nodeStatusDetection')->everyTenMinutes();
         $schedule->command('serviceTimer')->everyTenMinutes();
+        $schedule->command('nodeStatusDetection')->everyTenMinutes();
         $schedule->command('autoClearLogs')->everyThirtyMinutes();
         $schedule->command('nodeHourlyTrafficStatistics')->hourly();
         $schedule->command('userHourlyTrafficMonitoring')->hourly();
@@ -59,6 +58,7 @@ class Kernel extends ConsoleKernel
         $schedule->command('userExpireWarning')->dailyAt('20:00');
         $schedule->command('userDailyTrafficStatistics')->daily();
         $schedule->command('nodeDailyTrafficStatistics')->daily();
+        $schedule->command('autoJob')->everyMinute();
     }
 
     /**

+ 3 - 2
app/Http/Controllers/Api/Client/AuthController.php

@@ -6,13 +6,14 @@ use App\Components\Helpers;
 use App\Helpers\ClientApiResponse;
 use App\Helpers\ResponseEnum;
 use App\Services\UserService;
-use function auth;
-use function config;
 use Illuminate\Http\JsonResponse;
 use Illuminate\Http\Request;
 use Illuminate\Routing\Controller;
 use Validator;
 
+use function auth;
+use function config;
+
 class AuthController extends Controller
 {
     use ClientApiResponse;

+ 2 - 1
app/Http/Controllers/Api/Client/ClientController.php

@@ -14,13 +14,14 @@ use App\Services\ProxyService;
 use App\Services\UserService;
 use Arr;
 use Artisan;
-use function config;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Http\JsonResponse;
 use Illuminate\Http\Request;
 use Illuminate\Routing\Controller;
 use Illuminate\Support\Facades\Cache;
 
+use function config;
+
 class ClientController extends Controller
 {
     use ClientApiResponse;

+ 2 - 2
app/Http/Controllers/AuthController.php

@@ -269,7 +269,7 @@ class AuthController extends Controller
             $user->notifyNow(new AccountActivation($activeUserUrl));
 
             Session::flash('successMsg',
-                __("Thanks for signing up! Before getting started, could you verify your email address by clicking on the link we just emailed to you? If you didn't receive the email, we will gladly send you another."));
+                __("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."));
         } else {
             // 则直接给推荐人加流量
             if ($inviter_id) {
@@ -307,7 +307,7 @@ class AuthController extends Controller
                         return Response::json(['status' => 'fail', 'message' => trans('auth.email.error.banned')]);
                     }
                     break;
-                //白名单
+                    //白名单
                 case 2:
                     if (! in_array(strtolower($emailSuffix[1]), $emailFilterList, true)) {
                         if ($returnType) {

+ 1 - 1
app/Http/Controllers/PaymentController.php

@@ -63,7 +63,7 @@ class PaymentController extends Controller
                 return new Manual();
             default:
                 Log::emergency('未知支付:'.self::$method);
-                exit();
+                exit;
         }
     }
 

+ 1 - 1
app/Models/Payment.php

@@ -65,7 +65,7 @@ class Payment extends Model
     {
         switch ($this->attributes['status']) {
             case -1:
-                $status_label =  trans('common.payment.status.fail');
+                $status_label = trans('common.payment.status.fail');
                 break;
             case 1:
                 $status_label = trans('common.payment.status.success');

+ 5 - 5
app/Models/Rule.php

@@ -16,11 +16,11 @@ class Rule extends Model
     public function getTypeLabelAttribute(): string
     {
         return [
-            1 => '正则表达式',
-            2 => '域 名',
-            3 => 'I P',
-            4 => '协 议',
-        ][$this->attributes['type']] ?? '未 知';
+            1 => trans('admin.rule.type.reg'),
+            2 => trans('admin.rule.type.domain'),
+            3 => trans('admin.rule.type.ip'),
+            4 => trans('admin.rule.type.protocol'),
+        ][$this->attributes['type']] ?? trans('common.status.unknown');
     }
 
     public function getTypeApiLabelAttribute(): string

+ 1 - 1
app/Models/User.php

@@ -33,7 +33,7 @@ class User extends Authenticatable
 
     public function usedTrafficPercentage()
     {
-        return round(($this->used_traffic) / $this->transfer_enable, 2);
+        return round($this->used_traffic / $this->transfer_enable, 2);
     }
 
     public function getUsedTrafficAttribute(): int

+ 1 - 1
app/Notifications/AccountActivation.php

@@ -28,6 +28,6 @@ class AccountActivation extends Notification
             ->subject(__('Verify Email Address'))
             ->line(__('Please click the button below to verify your email address.'))
             ->action(__('Verify Your Email Address'), $this->url)
-            ->line(__('If you did not create an account, no further action is required.'));
+            ->line(__('If you did not request a password reset, please ignore this email.'));
     }
 }

+ 3 - 3
app/Notifications/NodeDailyReport.php

@@ -27,8 +27,8 @@ class NodeDailyReport extends Notification implements ShouldQueue
     public function toMail($notifiable)
     {
         return (new MailMessage)
-            ->subject(__('Nodes Daily Report'))
-            ->markdown('mail.simpleMarkdown', ['title' => __('Nodes Daily Report'), 'content' => $this->markdownMessage(), 'url' => route('admin.node.index')]);
+            ->subject(__('Daily Data Usage Report'))
+            ->markdown('mail.simpleMarkdown', ['title' => __('Daily Data Usage Report'), 'content' => $this->markdownMessage(), 'url' => route('admin.node.index')]);
     }
 
     private function markdownMessage()
@@ -44,7 +44,7 @@ class NodeDailyReport extends Notification implements ShouldQueue
     public function toCustom($notifiable)
     {
         return [
-            'title'   => __('Nodes Daily Report'),
+            'title'   => __('Daily Data Usage Report'),
             'content' => $this->markdownMessage(),
             'url_type' => 'markdown',
         ];

+ 1 - 1
app/Notifications/PasswordReset.php

@@ -26,7 +26,7 @@ class PasswordReset extends Notification
     {
         return (new MailMessage)
             ->subject(__('Reset Password Notification'))
-            ->line(__('Please click the button below to reset your password.'))
+            ->line(__('Please click on the button below to reset your password.'))
             ->action(__('Reset Password'), $this->url)
             ->line(__('You are receiving this email because we received a password reset request for your account.'))
             ->line(__('If you did not request a password reset, no further action is required.'));

+ 1 - 1
app/Notifications/TicketClosed.php

@@ -38,7 +38,7 @@ class TicketClosed extends Notification implements ShouldQueue
             ->subject(trans('notification.close_ticket', ['id' => $this->ticketId, 'title' => $this->title]))
             ->line($this->reason)
             ->action(trans('notification.view_ticket'), $this->url)
-            ->line(__('If your problem has not been solved, Feel free to open other one.'));
+            ->line(__('If your issue is not resolved, please create another ticket.'));
     }
 
     public function toCustom($notifiable)

+ 3 - 3
app/Payments/Stripe.php

@@ -96,11 +96,11 @@ class Stripe extends Gateway
         } catch (UnexpectedValueException $e) {
             // Invalid payload
             http_response_code(400);
-            exit();
+            exit;
         } catch (SignatureVerificationException $e) {
             // Invalid signature
             http_response_code(400);
-            exit();
+            exit;
         }
 
         Log::info('【Stripe】Passed signature verification!');
@@ -133,7 +133,7 @@ class Stripe extends Gateway
         }
 
         http_response_code(200);
-        exit();
+        exit;
     }
 
     public function failedPayment(Session $session)

+ 0 - 2
app/Services/CouponService.php

@@ -96,13 +96,11 @@ class CouponService
             }
 
             if (isset($coupon->limit['users']['newbie']['order']) && $this->user->orders()->exists()) { // 第一个套餐订单
-
                 return $this->failedReturn(trans('user.coupon.error.unmet'), trans('user.coupon.error.users'));
             }
 
             if (isset($coupon->limit['users']['newbie']['days']) && (time() > strtotime($this->user->created_at.' +'.$coupon->limit['users']['newbie']['days'].' days') ||
                     $this->user->orders()->whereCouponId($coupon->id)->exists())) { // 创号N天内, 且第一次用优惠券
-
                 return $this->failedReturn(trans('user.coupon.error.unmet'), trans('user.coupon.error.users'));
             }
         }

+ 2 - 2
database/migrations/2020_11_06_145018_create_permission_tables.php

@@ -47,7 +47,7 @@ class CreatePermissionTables extends Migration
                 ->onDelete('cascade');
 
             $table->primary(['permission_id', $columnNames['model_morph_key'], 'model_type'],
-                    'model_has_permissions_permission_model_type_primary');
+                'model_has_permissions_permission_model_type_primary');
         });
 
         Schema::create($tableNames['model_has_roles'], function (Blueprint $table) use ($tableNames, $columnNames) {
@@ -63,7 +63,7 @@ class CreatePermissionTables extends Migration
                 ->onDelete('cascade');
 
             $table->primary(['role_id', $columnNames['model_morph_key'], 'model_type'],
-                    'model_has_roles_role_model_type_primary');
+                'model_has_roles_role_model_type_primary');
         });
 
         Schema::create($tableNames['role_has_permissions'], function (Blueprint $table) use ($tableNames) {

+ 118 - 158
resources/lang/en/admin.php

@@ -2,24 +2,24 @@
 
 return [
     'dashboard'           => [
-        'users'                   => 'Users',
-        'available_users'         => 'Available Users',
+        'users'                   => 'All Users',
+        'available_users'         => 'Active Users',
         'paid_users'              => 'Paying Users',
         'active_days_users'       => 'Active Users Within :days Days',
         'inactive_days_users'     => 'Inactive Users Over :days Days',
-        'online_users'            => 'Current Online Users',
-        'expiring_users'          => 'Near-Expiring Users',
-        'overuse_users'           => 'Overusered Users (Traffic consumed ≥ 90%)',
-        'abnormal_users'          => 'Hourly Traffic Abnormal Users',
+        'online_users'            => 'Currently Online Users',
+        'expiring_users'          => 'Near Due Date',
+        'overuse_users'           => 'Overusing Users (Traffic consumed ≥ 90%)',
+        'abnormal_users'          => 'Abnormal Traffic (last 1 hour)',
         'nodes'                   => 'Nodes',
         'maintaining_nodes'       => 'Nodes Under Maintenance',
         'traffic_consumed'        => 'Traffic Consumed',
         'traffic_days_consumed'   => 'Traffic Consumed Within :days Days',
         'orders'                  => 'Orders',
         'online_orders'           => 'Online Orders',
-        'succeed_orders'          => 'Succeed Orders',
-        'credit'                  => 'Credit',
-        'withdrawing_commissions' => 'Withdrawing Commissions',
+        'succeed_orders'          => 'Successful Orders',
+        'credit'                  => 'Total Balance',
+        'withdrawing_commissions' => 'Pending Commissions Withdrawal',
         'withdrawn_commissions'   => 'Withdrawn Commissions',
     ],
     'action'              => [
@@ -27,19 +27,19 @@ return [
         'add_item'  => 'Add :attribute',
     ],
     'confirm'             => [
-        'delete'    => [0 => 'Are you sure you want to delete :attribute_envelope', 1 => '】? '],
-        'continues' => 'Are you sure you want to continue? ',
-        'export'    => 'Are you sure you want to export all? ',
+        'delete'    => [0 => 'Do you want to delete :attribute [', 1 => '] ?'],
+        'continues' => 'Do you want to continue?',
+        'export'    => 'Do you want to export all?',
     ],
     'user_dashboard'      => 'User Dashboard',
     'menu'                => [
         'dashboard'        => 'Dashboard',
         'user'             => [
-            'attribute'  => 'User',
+            'attribute'  => 'Users',
             'list'       => 'User Management',
             'oauth'      => 'OAuth',
             'group'      => 'User Group',
-            'credit_log' => 'Credit Log',
+            'credit_log' => 'Balance History',
             'subscribe'  => 'Subscription',
         ],
         'rbac'             => [
@@ -48,23 +48,23 @@ return [
             'role'       => 'Roles',
         ],
         'customer_service' => [
-            'attribute' => 'Chat & Note',
-            'ticket'    => 'Ticket Management',
+            'attribute' => 'Helpdesk',
+            'ticket'    => 'Support Tickets',
             'article'   => 'Article Management',
-            'push'      => 'Push Notification',
+            'push'      => 'Push Notifications',
             'mail'      => 'Mass Mailing',
         ],
         'node'             => [
-            'attribute' => 'Node',
+            'attribute' => 'Nodes',
             'list'      => 'Node Management',
-            'auth'      => 'Api Authorization',
+            'auth'      => 'API Authorization',
             'cert'      => 'Certificate',
         ],
         'rule'             => [
-            'attribute' => 'Audit Rule',
+            'attribute' => 'Audit',
             'list'      => 'Rule Management',
             'group'     => 'Rule Group',
-            'trigger'   => 'Trigger Log',
+            'trigger'   => 'Trigger Logs',
         ],
         'shop'             => [
             'attribute' => 'Shop',
@@ -73,10 +73,10 @@ return [
             'order'     => 'Orders',
         ],
         'promotion'        => [
-            'attribute'   => 'Promotion',
-            'invite'      => 'Invitation Management',
-            'withdraw'    => 'Withdrawal Management',
-            'rebate_flow' => 'Rebate Flow',
+            'attribute'   => 'Promotions',
+            'invite'      => 'Referral Management',
+            'withdraw'    => 'Commission Withdrawal Management',
+            'rebate_flow' => 'Rebate History',
         ],
         'analysis'         => [
             'attribute'  => 'Report',
@@ -85,12 +85,12 @@ return [
         ],
         'log'              => [
             'attribute'        => 'Logs',
-            'traffic'          => 'Traffic Usage',
-            'traffic_flow'     => 'Traffic Flow',
-            'service_ban'      => 'Service Ban',
-            'online_logs'      => 'Online Log',
+            'traffic'          => 'Data Usage',
+            'traffic_flow'     => 'Data Flow',
+            'service_ban'      => 'Ban Records',
+            'online_logs'      => 'Online Logs',
             'online_monitor'   => 'Online Monitoring',
-            'notify'           => 'Notification Log',
+            'notify'           => 'Notification Logs',
             'payment_callback' => 'Payment Callback',
             'system'           => 'System Report',
         ],
@@ -99,97 +99,97 @@ return [
             'decompile' => 'Decompile',
             'convert'   => 'Convert',
             'import'    => 'Import',
-            'analysis'  => 'Analysis',
+            'analysis'  => 'Log Analysis',
         ],
         'setting'          => [
-            'attribute'    => 'Setting',
+            'attribute'    => 'Settings',
             'email_suffix' => 'Email Suffix Management',
-            'universal'    => 'Universal Setting',
-            'system'       => 'System Setting',
+            'universal'    => 'General Settings',
+            'system'       => 'System Settings',
         ],
     ],
     'user'                => [
         'massive'         => [
             'text'    => 'Number of User Generated',
-            'button'  => 'Bulk Spawn',
+            'button'  => 'Bulk Generation',
             'failed'  => 'Bulk generation failed',
-            'succeed' => 'Bulk generated account successfully',
-            'note'    => 'Batch generate users in background',
+            'succeed' => 'Bulk accounts generated successfully',
+            'note'    => 'Bulk users generated in background',
         ],
         'proxy_info'      => 'Configuration information',
-        'traffic_monitor' => 'Traffic Statistics',
-        'online_monitor'  => 'Online Patrols',
+        'traffic_monitor' => 'Data Statistics',
+        'online_monitor'  => 'Online Monitoring',
         'reset_traffic'   => 'Reset Data',
-        'user_view'       => 'User View',
-        'connection_test' => 'Web test',
+        'user_view'       => 'Switch to User Profile',
+        'connection_test' => 'Network test',
         'counts'          => 'out of <code>:num</code> accounts',
-        'reset_confirm'   => [0 => 'Are you sure you want to reset the package', 1 => '\'s traffic?'],
+        'reset_confirm'   => [0 => 'Do you want to reset [', 1 => ']\'s data?'],
         'info'            => [
             'account'              => 'Account Information',
             'proxy'                => 'Proxy Information',
             'switch'               => 'Switch Identity',
-            'reset_date_hint'      => 'Account traffic next reset date',
-            'expired_date_hint'    => 'Leave empty to be one year by default',
-            'uuid_hint'            => 'Account ID for V2Ray',
-            'recharge_placeholder' => 'Fill in negative values to deduct balance',
+            'reset_date_hint'      => 'Next data reset date',
+            'expired_date_hint'    => 'Leave empty for one year by default',
+            'uuid_hint'            => 'UUID for V2Ray',
+            'recharge_placeholder' => 'Filling in a negative value will deduct the balance',
         ],
         'update_help'     => 'Successfully updated, do you want to return?',
         'proxies_config'  => ':username connection configuration information',
         'group'           => [
             'title'  => 'User Group Control<small>(same node can be assigned to more than one group, One user can only belong to one group; For visible / available nodes: filter by level first, then group)</small>',
             'name'   => 'Group Name',
-            'counts' => ' out of <code>:num</code> groups',
+            'counts' => 'out of <code>:num</code> groups',
         ],
     ],
-    'zero_unlimited_hint' => 'Unset /0, as unlimited',
+    'zero_unlimited_hint' => 'Unset / 0, as unlimited',
     'node'                => [
-        'traffic_monitor' => 'Traffic Statistics',
-        'refresh_geo'     => 'Refresh geography',
-        'ping'            => 'Detect delay',
-        'connection_test' => 'Connectivity detection',
-        'counts'          => 'out of <code> :num </code> circuits',
-        'reload_all'      => 'Reload Backend',
-        'refresh_geo_all' => 'Refresh all nodes',
-        'reload_confirm'  => 'Are you sure you want to reload the node?',
+        'traffic_monitor' => 'Data Statistics',
+        'refresh_geo'     => 'Refresh Geography',
+        'ping'            => 'Detect Delay',
+        'connection_test' => 'Connectivity Test',
+        'counts'          => 'out of <code>:num </code> circuits',
+        'reload_all'      => 'Reload All Backend',
+        'refresh_geo_all' => 'Refresh All Nodes\' Geographies',
+        'reload_confirm'  => 'Do you want to reload the node?',
         'info'            => [
-            'hint'                  => '<strong>Note:</strong> the automatically generated<code>ID</code>when adding a node is deployed<code>usermysql.json</code>the value of<code>node_id</code>and the<code>nodeId</code>when V2Ray backend is deployed;',
+            'hint'                  => '<strong>Note: </strong> Nodes page\'s <code>ID</code> is used in ShadowsocksR Python backend as <code>node_id</code> in usermysql.json, in V2Ray backend as <code>nodeId</code>.',
             'basic'                 => 'Basic Information',
-            'ddns_hint'             => 'Dynamic IP nodes require<a href="https://github.com/NewFuture/DDNS" target="_blank">to configure DDDNS</a>for this type of node, nodes block will be detected by domain name',
-            'domain_placeholder'    => 'Server domain address with priority domain address',
-            'domain_hint'           => 'Enable DNS mode in System Settings. Domain will be automatically bound to IP content below! No longer need to go to the DNS registrant page to modify IP information.',
+            'ddns_hint'             => 'Dynamic IP nodes require<a href="https://github.com/NewFuture/DDNS" target="_blank">to configure DDNS</a>, for this type of node, Connectivity Test will test by domain name',
+            'domain_placeholder'    => 'Server domain address',
+            'domain_hint'           => 'Enable DDNS in System Settings. Domain will be automatically create/bound to IP address! No longer need to go to the DNS registrant page to modify IP information.',
             'extend'                => 'Extended Information',
             'display'               => [
-                'invisible' => 'is completely invisible',
-                'node'      => 'Show only on \':trans\' page',
-                'sub'       => 'Show only',
-                'all'       => 'Fully visible',
-                'hint'      => 'Whether users can subscriber/see this node',
+                'invisible' => 'Completely invisible',
+                'node'      => 'Show only on :trans page',
+                'sub'       => 'Show by Subscription only',
+                'all'       => 'Visible for all',
+                'hint'      => 'Whether users can subscribe/see this node',
             ],
-            'ipv4_hint'             => 'Multi-IP uses \',\' partition, example:1.1.1.1, 8.8.8.8',
-            'ipv6_hint'             => 'Multi-IP uses \',\' partition, example:1.1.1.1, 8.8.8.8',
+            'ipv4_hint'             => 'Multi-IP uses \',\' partition; ex: 1.1.1.1, 8.8.8.8',
+            'ipv6_hint'             => 'Multi-IP uses \',\' partition; ex: 1.1.1.1, 8.8.8.8',
             'ipv4_placeholder'      => 'Server IPv4 Address',
-            'ipv6_placeholder'      => 'Server IPv6 address, field is visible to user and domain name is invalid',
-            'push_port_hint'        => 'Required and firewall needs to be loaded, otherwise the message will cause an exception',
-            'data_rate_hint'        => 'Example:.1 Checkout 10M with 100M and 500M with 100M',
-            'level_hint'            => 'Level:- No ratings, all visible',
+            'ipv6_placeholder'      => 'Server IPv6 address',
+            'push_port_hint'        => 'Required and server firewall needs to be loaded, otherwise it will cause an exception',
+            'data_rate_hint'        => 'Ex: set to 0.1, 10M will be count as 100M and 500M count as 100M',
+            'level_hint'            => 'Level: 0 = No ratings, all visible',
             'detection'             => [
                 'tcp'  => 'TCP only',
-                'icmp' => 'Detect ICMP only',
+                'icmp' => 'ICMP only',
                 'all'  => 'Detect All',
-                'hint' => 'Random node block detection every 30-60 minutes',
+                'hint' => 'Nodes will be tested every 30-60 minutes',
             ],
             'obfs_param_hint'       => 'While obfs is not [plain], fill in parameters to traffic masquerading; &#13;&#10; While obfs is [http_simple], suggest set port to 80; &#13;&#10; While obfs is [tls], suggest set port to 443;',
             'additional_ports_hint' => 'If enabled, please configure server<span class="red-700"><a href="javascript:showTnc();">additional_ports</a></span>information',
             'v2_method_hint'        => 'Do not use none when using WebSocket',
             'v2_net_hint'           => 'Enable TLS when using WebSocket Transfer Protocol',
             'v2_cover'              => [
-                'none'      => 'No cover',
-                'http'      => 'HTTP data stream',
+                'none'      => 'none',
+                'http'      => 'HTTP Transport',
                 'srtp'      => 'Video call data (SRTP)',
                 'utp'       => 'BT download data (uTP)',
-                'wechat'    => 'Micromessage video call',
+                'wechat'    => 'WeChat video call',
                 'dtls'      => 'DTLS1.2 packets',
-                'wireguard' => 'Wire Guard packets',
+                'wireguard' => 'WireGuard packets',
             ],
             'v2_host_hint'          => 'Use WebSocket transfer protocol only for single commas separated from multiple camouflage types',
             'v2_tls_provider_hint'  => 'Different backend configurations are different:',
@@ -298,9 +298,9 @@ return [
             'connect' => 'Connect IP',
         ],
         'ban'                    => [
-            'title'           => 'User Blocked Records',
+            'title'           => 'Users Ban Records',
             'time'            => 'Duration',
-            'reason'          => 'Rationale',
+            'reason'          => 'Reason',
             'ban_time'        => 'Banned Time',
             'last_connect_at' => 'Last connection time',
         ],
@@ -325,8 +325,8 @@ return [
             'list_hint'           => 'Please start with<code>&lt;li&gt;</code> each line of content<code>&lt;/li&gt;</code>',
         ],
         'status'        => [
-            'yes' => 'Listing',
-            'no'  => 'Next shelf',
+            'yes' => 'Active',
+            'no'  => 'Inactive',
         ],
         'sell_and_used' => 'Use / Sale',
         'counts'        => 'out of <code>:num</code> products',
@@ -360,14 +360,14 @@ return [
         'counts'           => 'out of <code>:num</code> permissions role',
     ],
     'report'              => [
-        'monthly_accounting'  => 'Monthly Waterbook',
-        'annually_accounting' => 'Annual Watershed Book',
-        'historic_accounting' => 'Historical Watershed Book',
+        'monthly_accounting'  => 'Monthly Income',
+        'annually_accounting' => 'Annual Income',
+        'historic_accounting' => 'Historical Income',
         'current_month'       => ' This month ',
         'last_month'          => ' Last Month',
-        'current_year'        => ' current year ',
-        'last_year'           => ' Go to year ',
-        'hourly_traffic'      => 'traffic per hour',
+        'current_year'        => ' Current year ',
+        'last_year'           => ' Last year ',
+        'hourly_traffic'      => 'Traffic per hour',
         'daily_traffic'       => 'Daily traffic',
         'today'               => ' Japan ',
     ],
@@ -396,7 +396,7 @@ return [
     'article'             => [
         'type'          => [
             'knowledge'    => 'Articles',
-            'announcement' => 'Announcement',
+            'announcement' => 'Announcements',
         ],
         'category_hint' => 'The same category will be grouped under the same folder',
         'logo_hint'     => 'Recommended size:100x75',
@@ -443,7 +443,7 @@ return [
     'massive_export'      => 'Bulk Export',
     'system_generate'     => 'System generation',
     'aff'                 => [
-        'rebate_title'      => 'Return flow records',
+        'rebate_title'      => 'Referral Rebate History',
         'counts'            => 'out of <code>:num</code> applications',
         'title'             => 'List of cash out applications',
         'apply_counts'      => 'out of <code>:num</code> applications',
@@ -470,8 +470,8 @@ return [
             'web'       => 'Website General',
             'account'   => 'Account Settings',
             'node'      => 'Node Settings',
-            'extend'    => 'Expansion',
-            'check_in'  => 'Sign To System',
+            'extend'    => 'Advanced',
+            'check_in'  => 'Signing in',
             'promotion' => 'Extension system',
             'notify'    => 'Notification System',
             'auto_job'  => 'Auto Task',
@@ -491,7 +491,6 @@ return [
         'AppStore_password'             => 'Apple Password',
         'auto_release_port'             => 'Port recovery mechanisms',
         'bark_key'                      => 'Bark Device Number',
-        'bitpay_secret',
         'captcha_key'                   => 'Captcha Key',
         'captcha_secret'                => 'Captcha Secret/ID',
         'codepay_id'                    => 'Code Payment ID',
@@ -514,33 +513,30 @@ return [
         'f2fpay_app_id'                 => 'Application ID',
         'f2fpay_private_key'            => 'Apply private key',
         'f2fpay_public_key'             => 'PayPal Public Key',
-        'forbid_mode'                   => 'Disable access mode',
+        'forbid_mode'                   => 'Ban Access',
         'invite_num'                    => 'Number of invitations to generate',
         'is_activate_account'           => 'Activate Account',
         'is_AliPay'                     => 'PayPal Payment',
         'is_ban_status'                 => 'Expire auto-ban',
         'is_captcha'                    => 'Verification Code Mode',
-        'is_checkin'                    => 'Checking to plus traffic',
+        'is_checkin'                    => 'User gets addition traffic for signing in',
         'is_clear_log'                  => 'Auto-clear log',
         'is_custom_subscribe'           => 'Premium Subscription',
         'is_email_filtering'            => 'Email filtering mechanism',
-        'is_forbid_robot'               => 'Block robot access',
+        'is_forbid_robot'               => 'Block robots',
         'is_free_code'                  => 'Free invitation code',
         'is_invite_register'            => 'Invite to Register',
         'is_otherPay'                   => 'Special Payment',
-        'is_push_bear',
         'is_QQPay'                      => 'QQ Wallet',
         'is_rand_port'                  => 'Random Port',
         'is_register'                   => 'User Registration',
         'is_subscribe_ban'              => 'Subscription exception auto-ban',
         'is_traffic_ban'                => 'Exception auto-seal number',
-        'is_WeChatPay'                  => 'Micromessage payment',
+        'is_WeChatPay'                  => 'WeChat Pay',
         'iYuu_token'                    => 'IYUU Token',
         'maintenance_content'           => 'Maintain Description',
         'maintenance_mode'              => 'Maintenance mode',
         'maintenance_time'              => 'Maintenance End Time',
-        'max_port',
-        'max_rand_traffic',
         'min_port'                      => 'Port range',
         'min_rand_traffic'              => 'Data range',
         'node_blocked_notification'     => 'Node block alarm',
@@ -567,7 +563,7 @@ return [
         'referral_money'                => 'Cash out Limit',
         'referral_percent'              => 'Return Ratio',
         'referral_status'               => 'Promotion features',
-        'referral_traffic'              => 'Register traffic',
+        'referral_traffic'              => 'Traffic for signing up',
         'referral_type'                 => 'Return Mode',
         'register_ip_limit'             => 'Registration limit with IP',
         'reset_password_times'          => 'Reset Password Count',
@@ -580,8 +576,8 @@ return [
         'subject_name'                  => 'Custom Product Name',
         'subscribe_ban_times'           => 'Subscription request threshold
 ',
-        'subscribe_domain'              => 'Node Subscription Address',
-        'subscribe_max'                 => 'Subscribe to Nodes',
+        'subscribe_domain'              => 'Node Subscription URL',
+        'subscribe_max'                 => 'Number of available nodes',
         'telegram_token'                => 'Telegram Token',
         'tg_chat_token'                 => 'TG Jam Token',
         'theadpay_key'                  => 'Merchant Key',
@@ -621,84 +617,59 @@ return [
             'active_times'                  => 'Number of accounts that can be activated by email within 24 hours',
             'admin_invite_days'             => 'Expiration of administrator-generated invitation code',
             'aff_salt'                      => 'When left blank, the invite link will show the user ID; enter any English/number to encrypt the user link ID',
-            'alipa_qrcode',
             'AppStore_id'                   => 'Apple account used in iOS settings tutorials',
             'AppStore_password'             => 'Apple password used in iOS settings tutorials',
-            'auto_release_port'             => 'Banned/Expires <code>'.config('tasks.release_port').'The port of the </code> day account is automatically released',
+            'auto_release_port'             => 'Banned/Expired <code>'.config('tasks.release_port').'Auto-release of account port after </code> days',
             'bark_key'                      => 'Push messages to iOS device. Requires an app called Bark to be installed on iOS device, a long string of URLs from the site. Enable Bark. Make sure to fill in this value',
-            'bitpay_secret',
-            'captcha_key'                   => 'Browse<a href="https://proxypanel.gitbook.io/wiki/captcha" target="_blank">Setup Guide</a>to set up',
-            'captcha_secret',
-            'codepay_id',
-            'codepay_key',
-            'codepay_url',
-            'data_anomaly_notification'     => 'Inner traffic exceeding abnormal threshold notification overtube',
+            'captcha_key'                   => 'Browse <a href="https://proxypanel.gitbook.io/wiki/captcha" target="_blank">Setup Guide</a> to set up',
+            'data_anomaly_notification'     => 'User hourly traffic exceeding abnormal threshold notification to admin',
             'data_exhaust_notification'     => 'Notify users that traffic will be exhausted',
-            'ddns_key'                      => "Browse<a href='https://proxypanel.gitbook.io/wiki/ddns' target='_blank'>Setup Guide</a>to set up",
+            'ddns_key'                      => "Browse <a href='https://proxypanel.gitbook.io/wiki/ddns' target='_blank'>Setup Guide</a> to set up",
             'ddns_mode'                     => 'Automatically update content to DNS Provider when adding/editing/deleting node\'s domain name, ipv4, ipv6',
-            'ddns_secret',
             'default_days'                  => 'Default account validity period when user is registered, 0 is due that day',
             'default_traffic'               => 'Default traffic available when registering users',
             'detection_check_times'         => 'Automatically disconnect nodes after N and no limit for 0/empty and no more than 12',
-            'dingTalk_access_token'         => 'Ready to read the<a href=https://open.dingtalk.com/document/group/custom-robot-access#title-jfe-yo9-jl2 target=_blank>nailing manual</a>to review steps',
+            'dingTalk_access_token'         => 'Read the<a href=https://open.dingtalk.com/document/group/custom-robot-access#title-jfe-yo9-jl2 target=_blank>DingTalk manual</a>to see the set up steps',
             'dingTalk_secret'               => 'Optional! Enabling robot[加签]is required!',
-            'epa_key',
-            'epa_mch_id',
-            'epa_url',
             'expire_days'                   => '[Account Expiry Notice] Start Thresholder, Daily Notifications',
-            'f2fpay_app_id'                 => 'Use:APPID',
+            'f2fpay_app_id'                 => 'Alipay\'s APPID',
             'f2fpay_private_key'            => 'Application key generated when generated',
             'f2fpay_public_key'             => 'Note that the public key is not applied!',
             'forbid_mode'                   => 'Block the corresponding area by IP, non-block access',
             'invite_num'                    => 'Number of invitations that users can generate',
             'is_activate_account'           => 'When enabled, users need email to activate their account',
-            'is_AliPay',
-            'is_ban_status'                 => '(prudent) Blocking the entire account will reset all data on the account and prevent users from logging in, and disable user agent only on status',
-            'is_captcha'                    => 'Authentication code is required for login/registration after enabled.',
+            'is_ban_status'                 => '(Caution!) Blocking the entire account will reset all data on the account and prevent users from logging in. Deactivate this to disable the user agent only.',
+            'is_captcha'                    => 'If enabled, a verification code will be required for login/registration',
             'is_checkin'                    => 'When logging in, traffic will be randomly obtained according to traffic range',
             'is_clear_log'                  => 'Auto-clear unused logs when enabled (recommended)',
-            'is_custom_subscribe'           => 'When enabled, the top of the subscription information will show the expiration time, the amount of traffic left (only individual clients are supported)',
+            'is_custom_subscribe'           => 'When enabled, the top of the subscription list will show the account expiration date, the amount of traffic left (only some clients are supported)',
             'is_email_filtering'            => 'Blacklist: Users can register with emails other than any blacklist; whitelist: Users can only choose to register using whitelisted email suffixes',
             'is_forbid_robot'               => '404 errors if you are robot, creep, and proxy access to the website',
-            'is_free_code'                  => 'Free invite code is not visible after closing',
-            'is_invite_register',
-            'is_otherPay',
-            'is_push_bear',
-            'is_QQPay',
-            'is_rand_port'                  => 'Random port when registering, adding user',
-            'is_register'                   => 'Cannot register after closing',
+            'is_free_code'                  => 'Free invitation code will not be visible if disabled',
+            'is_rand_port'                  => 'Generates a random port when registering a user',
+            'is_register'                   => 'Cannot register if disabled',
             'is_subscribe_ban'              => 'Automatically block user subscription requests beyond the set threshold when enabled',
             'is_traffic_ban'                => 'Auto-envelope number after 1 hour traffic above the abnormal threshold (disable proxy only)',
-            'is_WeChatPay',
-            'iYuu_token'                    => 'Enables flying. Make sure to fill in this value (<a href=http://iyuu.cn target=_blank>to apply for IYUU tok</a>)',
+            'iYuu_token'                    => 'Before enabling IYUU, Please M=make sure to fill in token that (<a href=http://iyuu.cn target=_blank>apply from IYUU</a>)',
             'maintenance_content'           => 'Custom maintenance information',
-            'maintenance_mode'              => "When enabled, user access migration to maintenance interface | Admin login using <a href='javascript:(0)'>:url</a>",
+            'maintenance_mode'              => "When enabled, user access will redirect to maintenance page| For Admin access using <a href='javascript:(0)'>:url</a>",
             'maintenance_time'              => 'Used to maintain interface countdown',
-            'max_port',
-            'max_rand_traffic',
             'min_port'                      => 'Port range:1000 - 65535',
-            'min_rand_traffic',
             'node_blocked_notification'     => 'Hourly check if the node is blocked and alerts the administrator',
-            'node_daily_notification'       => 'Report consumption yesterday by node traffic',
+            'node_daily_notification'       => 'Report traffic consumption data per node',
             'node_offline_notification'     => 'Detect node offline every 10 minutes and remind administrator',
             'oauth_path'                    => 'Please add settings in .ENV to open the platform here',
             'offline_check_times'           => 'Don\'t remind again within 24 hours',
             'password_reset_notification'   => 'When enabled users can reset their password',
             'paybeaver_app_id'              => '<a href="https://merchant.paybeaver.com/" target="_blank">Merchant Center</a> -> Developer -> App ID',
             'paybeaver_app_secret'          => '<a href="https://merchant.paybeaver.com/" target="_blank">Merchant Center</a> -> Developer -> App Secret',
-            'payjs_key',
             'payjs_mch_id'                  => 'Get information on<a href="https://payjs.cn/dashboard/member" target="_blank">interface</a>',
             'payment_confirm_notification'  => 'User notifies the administrator of the order after manual payment',
             'payment_received_notification' => 'Notify user order status after payment of order',
-            'paypal_app_id',
-            'paypal_certificate',
-            'paypal_password',
-            'paypal_secret',
-            'paypal_username',
             'pushDeer_key'                  => 'Enable PushDeer, make sure to enter this value (<a href=http://www.pushdeer.com/official.html
                                     target=_blank>to apply for Push Key</a>)',
             'pushplus_token'                => 'Enable PushPlus, make sure to enter this value (<a href=https://www.pushplus.plus/push1.html target=_blank>to apply Token</a>)',
-            'rand_subscribe'                => 'When enabled, you will return the node information randomly, otherwise you will return it in order of the node',
+            'rand_subscribe'                => 'When enabled, the system returns the node list randomly, otherwise, it will be available based on Node list order',
             'redirect_url'                  => 'Access request was blocked and redirected to the address when triggering the audit rule',
             'referral_money'                => 'How many dollars to apply for cashout',
             'referral_percent'              => 'Percentage of shares per consumer promoter per account registered by promotion link',
@@ -708,38 +679,28 @@ return [
             'register_ip_limit'             => 'Number of registrations allowed with IP within 24 hours, no limit for 0/empty',
             'reset_password_times'          => 'Number of times you can reset your password by email within 24 hours',
             'reset_traffic'                 => 'Users will automatically reset available traffic according to their purchase date',
-            'server_chan_key'               => "Enable ServerChan, please enter this value (<a href=https://sc.ftqq.com target=_blank>to apply SCKEY</a>)",
+            'server_chan_key'               => 'Enable ServerChan, please enter this value (<a href=https://sc.ftqq.com target=_blank>to apply SCKEY</a>)',
             'standard_currency'             => 'Default currency for the money section of the site',
-            'stripe_public_key',
-            'stripe_secret_key',
-            'stripe_signing_secret',
             'subject_name'                  => 'Display product title for payment channel',
             'subscribe_ban_times'           => 'Subscription link request limit within 24 hours',
             'subscribe_domain'              => '(recommended) To prevent DNS poisoning of DNS domains from being subscribed properly by http:// or https://"',
             'subscribe_max'                 => 'Get several nodes on client subscription, return all nodes on 0/empty',
             'telegram_token'                => 'Find <a href=https://t.me/BotFather target=_blank>@Bother</a> to apply for robots to get TOKEN',
             'tg_chat_token'                 => 'Enable TG jamma. Make sure to enter this value (<a href=https://t.me/realtgchat_bot target=_blank>to apply token</a>)',
-            'theadpay_key',
-            'theadpay_mchid',
-            'theadpay_url',
             'ticket_closed_notification'    => 'Notify user about ticket shutdown',
             'ticket_created_notification'   => 'New ticket notification manager/user depending on who created the new ticket',
             'ticket_replied_notification'   => 'Ticket reply notification each other',
             'traffic_ban_time'              => 'Trigger traffic abnormalities cause users to be banned for long periods of time and automatically unblock when they expire',
             'traffic_ban_value'             => 'This value exceeds in 1 hour, triggering auto-seal',
-            'traffic_limit_time'            => 'How long to sign again',
+            'traffic_limit_time'            => 'Interval of signing in again',
             'traffic_warning_percent'       => '[Notification Duration of traffic threshold] to notify users daily',
-            'control_license',
             'username_type'                 => 'Specify the type of site user account, default to email',
             'user_invite_days'              => 'Expiration of user self-generated invitations',
-            'v2ray_license',
             'v2ray_tls_provider'            => 'Use backend autoissue/load TLS certificate (node\'s settings value is higher than here)',
             'webmaster_email'               => 'An administrator email will be provided for contact information when an error is prompted',
             'website_analytics'             => 'Stats JS',
             'website_callback_url'          => 'Prevent payment from being backsliding due to a DNS poisoning of a website domain, with http://',
             'website_customer_service'      => 'Support JS',
-            'website_home_logo',
-            'website_logo',
             'website_name'                  => 'Show On Mail',
             'website_security_code'         => 'You must add a security code to the<a href=":url" target="_blank">security entry</a>when not empty',
             'website_url'                   => 'Generate password reset and pay online',
@@ -747,7 +708,6 @@ return [
             'wechat_aid'                    => 'Create an app in<a href=https://work.weixin.qq.com/wework_admin/frame#apps arget=_blank>app management</a>- AgentId',
             'wechat_cid'                    => 'Get the enterprise ID in<a href=https://work.weixin.qq.com/wework_admin/frame#profile target=_blank>my enterprise</a>',
             'wechat_encodingAESKey'         => 'App Management -> Application -> Set API Receive -> EncodingAESKey',
-            'wechat_qrcode',
             'wechat_secret'                 => 'App Secretariats (may need to download company micromessages to view)',
             'wechat_token'                  => 'App Management -> Application -> Set API Receive -> TOKEN, URL Settings::url',
         ],
@@ -837,8 +797,8 @@ return [
         ],
     ],
     'set_to'              => 'The :attribute',
-    'minute'              => 'minutes',
+    'minute'              => ' minutes',
     'query'               => 'Question',
     'optional'            => 'Optional',
     'require'             => 'Required',
-];
+];

+ 1 - 1
resources/lang/en/auth.php

@@ -55,7 +55,7 @@ return [
     'password'        => [
         'forget'   => 'Forgot password?',
         'new'      => 'Enter a new password',
-        'original' => 'Original Password',
+        'original' => 'Current Password',
         'reset'    => [
             'attribute' => 'Reset Password',
             'error'     => [

+ 7 - 7
resources/lang/en/common.php

@@ -4,7 +4,7 @@ return [
     'account'         => 'Account',
     'available_date'  => 'Available Until/Period',
     'created_at'      => 'Created At',
-    'expired_at'      => 'Expired At',
+    'expired_at'      => 'Expiration Date',
     'updated_at'      => 'Updated At',
     'latest_at'       => 'Latest At',
     'back'            => 'Back',
@@ -24,7 +24,7 @@ return [
     ],
     'add'             => 'Add',
     'free'            => 'Free',
-    'replace'         => 'Change',
+    'replace'         => 'Replace',
     'submit'          => 'Submit',
     'submit_item'     => 'Submit :attribute',
     'generate'        => 'Generate',
@@ -75,11 +75,11 @@ return [
     'print'           => 'Print',
     'unlimited'       => 'Unlimited',
     'payment'         => [
-        'credit' => 'Credit',
+        'credit' => 'Balance',
         'wechat' => 'Wechat',
         'alipay' => 'Alipay',
         'crypto' => 'Cryptocurrency',
-        'manual' => 'Manual Pay',
+        'manual' => 'Manual Payment',
         'status' => [
             'wait'    => 'Awaiting payment',
             'fail'    => 'Payment Failed',
@@ -103,11 +103,11 @@ return [
     'delete'          => 'Deletions',
     'status'          => [
         'attribute'         => 'Status',
-        'inactive'          => 'Not activated',
+        'inactive'          => 'Inactive',
         'disabled'          => 'Stop using',
         'banned'            => 'Banned',
-        'normal'            => 'Regular',
-        'enabled'           => 'Reuse',
+        'normal'            => 'Normal',
+        'enabled'           => 'Active',
         'expire'            => 'Expiration',
         'limited'           => 'Limitations',
         'run_out'           => 'Out of traffic',

+ 91 - 92
resources/lang/en/model.php

@@ -7,53 +7,53 @@ return [
         'nickname'       => 'Nickname',
         'username'       => 'Account',
         'password'       => 'Password',
-        'credit'         => 'Credit',
+        'credit'         => 'Balance',
         'invite_num'     => 'Available Invitation Code',
-        'reset_date'     => 'Reset day',
+        'reset_date'     => 'Reset date',
         'port'           => 'Port',
-        'traffic_used'   => 'Traffic Usage',
+        'traffic_used'   => 'Data Usage',
         'service'        => 'Proxy',
         'group'          => 'Group',
-        'level'          => 'Rank',
-        'account_status' => 'Status',
+        'level'          => 'Level',
+        'account_status' => 'Account Status',
         'proxy_status'   => 'Proxy Status',
         'expired_date'   => 'Expiration Date',
         'role'           => 'Role Permissions',
-        'wechat'         => 'Wechat',
+        'wechat'         => 'WeChat',
         'qq'             => 'QQ',
-        'remark'         => 'Remarks',
+        'remark'         => 'Remark',
         'uuid'           => 'VMess UUID',
-        'proxy_passwd'   => 'Password',
+        'proxy_passwd'   => 'Proxy Password',
         'proxy_method'   => 'Encryption Method',
-        'usable_traffic' => 'Available traffic',
+        'usable_traffic' => 'Available Data',
         'proxy_protocol' => 'Protocol',
-        'proxy_obfs'     => 'Obsolete',
-        'speed_limit'    => 'User limit',
-        'inviter'        => 'invitees',
-        'created_date'   => 'Registration at',
+        'proxy_obfs'     => 'Obfuscation',
+        'speed_limit'    => 'Speed limit',
+        'inviter'        => 'Inviter',
+        'created_date'   => 'Registered at',
     ],
     'common'           => [
-        'extend'      => 'Extended',
-        'sort'        => 'Sort by',
+        'extend'      => 'Extension',
+        'sort'        => 'Priority',
         'description' => 'Description',
     ],
     'country'          => [
-        'code' => 'ISO country code',
-        'icon' => 'Character',
-        'name' => 'Country name',
+        'code' => 'ISO Territory Code',
+        'icon' => 'ICON',
+        'name' => 'Territory name',
     ],
     'subscribe'        => [
         'code'       => 'Subscription Code',
         'req_times'  => 'Number of requests',
         'updated_at' => 'Last Request Time',
         'ban_time'   => 'Banned Time',
-        'ban_desc'   => 'Ban reason',
+        'ban_desc'   => 'Banned reason',
         'req_ip'     => 'Request IP',
-        'req_header' => 'Visits',
+        'req_header' => 'Access Header',
     ],
     'oauth'            => [
         'type'       => 'Channels',
-        'identifier' => ' Unique ID',
+        'identifier' => 'Unique identifier',
     ],
     'user_group'       => [
         'attribute' => 'User Group',
@@ -66,45 +66,45 @@ return [
         'type'            => 'Type',
         'name'            => 'Name',
         'domain'          => 'Domain Name',
-        'static'          => 'Survive',
+        'static'          => 'Alive',
         'online_user'     => 'Online',
-        'data_consume'    => 'Generate traffic',
-        'data_rate'       => 'Data Ratio',
-        'ddns'            => 'DNS',
+        'data_consume'    => 'Consumption Data',
+        'data_rate'       => 'Data Consumption Ratio',
+        'ddns'            => 'DDNS',
         'ipv4'            => 'IPv4 Address',
         'ipv6'            => 'IPv6 Address',
         'push_port'       => 'Message Push Port',
         'level'           => 'Rank',
         'rule_group'      => 'Audit Group',
-        'traffic_limit'   => 'Node Speed',
-        'client_limit'    => 'Device Limit',
+        'traffic_limit'   => 'Speed Limit',
+        'client_limit'    => 'Devices Limit',
         'label'           => 'Tags',
-        'country'         => 'Country/region',
+        'country'         => 'Territory',
         'udp'             => 'UDP',
         'display'         => 'Display & Subscription',
-        'detection'       => 'Node block detection',
+        'detection'       => 'Node Network Detection',
         'method'          => 'Encryption Method',
         'protocol'        => 'Protocol',
         'protocol_param'  => 'Protocol parameters',
-        'obfs'            => 'Obsolete',
-        'obfs_param'      => 'obfuscate parameters',
-        'single'          => 'Single Port',
+        'obfs'            => 'Obfuscation',
+        'obfs_param'      => 'Obfuscation parameters',
+        'single'          => 'Only Port',
         'transfer'        => 'Transit',
         'service_port'    => 'Service Port',
-        'single_passwd'   => '[] Password',
-        'v2_alter_id'     => 'Extra ID',
-        'v2_net'          => 'Transfer Method',
-        'v2_cover'        => 'disguised type',
-        'v2_host'         => 'camouflage domain',
+        'single_passwd'   => '[Only] Password',
+        'v2_alter_id'     => 'Alter ID',
+        'v2_net'          => 'Transport',
+        'v2_cover'        => 'Camouflage type',
+        'v2_host'         => 'Camouflage domain',
         'v2_path'         => 'Path | Key',
         'v2_sni'          => 'SNI',
-        'v2_tls'          => 'Connect to TLS',
+        'v2_tls'          => 'TLS',
         'v2_tls_provider' => 'TLS Configuration',
         'relay_port'      => 'Transit Port',
     ],
     'node_auth'        => [
         'attribute' => 'Node Authorization',
-        'key'       => 'Communication key<small>node uses</small>',
+        'key'       => 'Communication key <small>For nodes</small>',
         'secret'    => 'Reverse Communication Key',
     ],
     'node_cert'        => [
@@ -113,50 +113,50 @@ return [
         'key'          => 'KEY',
         'pem'          => 'PEM',
         'issuer'       => 'Issuing agency',
-        'signed_date'  => 'Issued on',
-        'expired_date' => 'Expired At',
+        'signed_date'  => 'Issue Date',
+        'expired_date' => 'Expiration Date',
     ],
     'order'            => [
         'attribute'      => 'Order',
         'id'             => 'Order ID',
         'original_price' => 'Original price',
-        'price'          => 'Real Price',
-        'pay_way'        => 'payment method',
+        'price'          => 'Actual Price',
+        'pay_way'        => 'Payment method',
         'status'         => 'Order Status',
     ],
     'goods'            => [
-        'attribute'      => 'Commodities',
+        'attribute'      => 'Product',
         'type'           => 'Type',
         'name'           => 'Name',
-        'price'          => 'Sale Price',
-        'category'       => 'Categories',
+        'price'          => 'Price',
+        'category'       => 'Category',
         'level'          => 'Rank',
         'renew'          => 'Data Reset Price',
-        'user_limit'     => 'User limit',
+        'user_limit'     => 'Speed limit',
         'period'         => 'Reset period',
-        'traffic'        => 'Traffic limit',
-        'invite_num'     => 'Send Invitation Number',
+        'traffic'        => 'Data limit',
+        'invite_num'     => 'Gift Invitation Number',
         'limit_num'      => 'Limit purchase quantity',
-        'available_date' => 'Available Until/Period',
-        'hot'            => 'Hot',
+        'available_date' => 'Available Period',
+        'hot'            => 'Best-selling',
         'color'          => 'Colors',
         'logo'           => 'Product Image',
-        'info'           => 'Custom List',
+        'info'           => 'Custom Info List',
     ],
     'rule'             => [
-        'attribute' => 'Rules',
+        'attribute' => 'Audit Rule',
         'type'      => 'Type',
         'name'      => 'Description',
         'pattern'   => 'Value',
     ],
     'rule_group'       => [
-        'attribute' => 'Rule Group',
+        'attribute' => 'Audit Group',
         'name'      => 'Group Name',
         'type'      => 'Audit mode',
-        'rules'     => 'Select Rule',
+        'rules'     => 'Select Audit Rule',
     ],
     'role'             => [
-        'attribute'   => 'Roles',
+        'attribute'   => 'Role',
         'name'        => 'Name',
         'permissions' => 'Permissions',
     ],
@@ -166,74 +166,73 @@ return [
         'name'        => 'Route Name',
     ],
     'article'          => [
-        'attribute'  => 'Articles',
-        'type'       => 'Class',
-        'category'   => 'Categories',
-        'language'   => 'Languages',
-        'logo'       => 'Header',
+        'attribute'  => 'Article',
+        'type'       => 'Type',
+        'category'   => 'Category',
+        'language'   => 'Language',
+        'logo'       => 'Image',
         'created_at' => 'Published Date',
-        'updated_at' => 'Last updated',
+        'updated_at' => 'Last Update',
     ],
     'coupon'           => [
-        'attribute'          => 'Voucher',
-        'name'               => 'Card Name',
-        'sn'                 => 'Use voucher code',
-        'logo'               => 'Card Image',
+        'attribute'          => 'Coupon',
+        'name'               => 'Coupon Name',
+        'sn'                 => 'Coupon Code',
+        'logo'               => 'Coupon Image',
         'type'               => 'Type',
-        'value'              => 'Quote limit',
-        'priority'           => 'Rights',
+        'value'              => 'Amount of preference',
+        'priority'           => 'Priority',
         'usable_times'       => 'Usage Count',
         'minimum'            => 'Discount condition',
-        'used'               => 'Personal Usage',
+        'used'               => 'Personal Usage limit',
         'levels'             => 'Ranking limit',
         'groups'             => 'Group Limit',
-        'users_whitelist'    => 'Exclusive User',
-        'users_blacklist'    => 'Disable User',
-        'services_whitelist' => 'License Item',
-        'services_blacklist' => 'Disable products',
+        'users_whitelist'    => 'Licensed User',
+        'users_blacklist'    => 'Forbid User',
+        'services_whitelist' => 'Licensed Product',
+        'services_blacklist' => 'Forbid product',
         'newbie'             => 'Newcomer Exclusive',
         'num'                => 'Quantity',
     ],
     'aff'              => [
         'invitee'    => 'Consumer',
-        'order_id'   => 'Order number',
-        'amount'     => 'Spend amount',
+        'amount'     => 'Consumption Amount',
         'commission' => 'Rebate amount',
-        'updated_at' => 'Processing time',
+        'updated_at' => 'Processed at',
         'created_at' => 'Order Time',
     ],
     'referral'         => [
-        'created_at' => 'Request Time',
+        'created_at' => 'Application Time',
         'user'       => 'Request Account',
-        'amount'     => 'Amount requested to cash out',
-        'id'         => 'Request ID',
+        'amount'     => 'Amount to cash-out',
+        'id'         => 'Referral ID',
     ],
     'notification'     => [
         'type'       => 'Type',
-        'address'    => 'Incoming Address',
+        'address'    => 'Receive Address',
         'created_at' => 'Delivery Time',
         'status'     => 'Delivery Status',
     ],
     'ip'               => [
-        'network_type' => 'Newsletter Type',
-        'info'         => 'Dependencies',
+        'network_type' => 'Protocol Type',
+        'info'         => 'Location Info',
     ],
     'user_traffic'     => [
-        'upload'   => 'Upload traffic',
-        'download' => 'Download traffic',
-        'total'    => 'Total traffic',
+        'upload'   => 'Upload',
+        'download' => 'Download',
+        'total'    => 'Total',
         'log_time' => 'Record Time',
     ],
     'user_data_modify' => [
-        'before'      => 'Pre-change traffic',
-        'after'       => 'Traffic after change',
+        'before'      => 'Pre-change Data',
+        'after'       => 'Data after change',
         'description' => 'Description',
-        'created_at'  => 'Time of occurrence',
+        'created_at'  => 'Operation Date/Time',
     ],
     'user_credit'      => [
         'before'     => 'Balance before operation',
-        'after'      => 'Amount after operation',
-        'amount'     => 'Amount occurs',
-        'created_at' => 'Time of occurrence',
+        'after'      => 'Balance after operation',
+        'amount'     => 'Amount of change',
+        'created_at' => 'Occurrence time',
     ],
-];
+];

+ 7 - 7
resources/lang/en/notification.php

@@ -4,11 +4,11 @@ return [
     'attribute'               => 'NOTIFICATIONS',
     'new'                     => ':num new message|:num new messages',
     'empty'                   => 'No new message',
-    'payment_received'        => 'Order has paid, Amount:amount! Click me to view the detail',
-    'account_expired'         => 'Account Going to Expired',
-    'account_expired_content' => 'Your account will be expired after【:days】days. For your server experience, please renew your account ahead of time.',
+    'payment_received'        => 'Order has paid, Amount: :amount! Click me to view the detail',
+    'account_expired'         => 'Account Going to Expire',
+    'account_expired_content' => 'Your account will be expired after [:days] days. For your server experience, please renew your account ahead of time.',
     'account_expired_blade'   => 'Account will be expired after【:days】days, Please renew',
-    'active_email'            => 'Please completed this action in 30 minutes',
+    'active_email'            => 'Please complete this action in 30 minutes',
     'close_ticket'            => 'Ticket #【:id】 - :title Closed',
     'view_web'                => 'View Our Website',
     'view_ticket'             => 'View The Ticket',
@@ -17,16 +17,16 @@ return [
     'ticket_content'          => 'Ticket Content: ',
     'node_block'              => 'Node Blocked Warning',
     'node_offline'            => 'Node maybe offline!',
-    'node_offline_content'    => 'Following Nodes abnormal: return heartbeats information are abnormal, Please pay attention.',
+    'node_offline_content'    => 'Following Nodes abnormal: return heartbeats\' information are abnormal, Please pay attention.',
     'block_report'            => 'Blocked Report: ',
     'traffic_warning'         => 'Data Traffic Waring: ',
     'traffic_remain'          => 'Data Traffic Consumption: :percent%',
     'traffic_tips'            => 'Please pay attention on the service reset day. You may also cloud consider reset your data before the reset day.',
     'verification_account'    => 'Account Verification',
     'verification'            => 'Your verification code: ',
-    'verification_limit'      => 'Please completed this action in :minutes minutes',
+    'verification_limit'      => 'Please complete this action in :minutes minutes',
     'data_anomaly'            => 'User Data Traffic Abnormal Warning',
-    'data_anomaly_content'    => 'User :idRecent Hourly Data Usage [Upload: :upload | Download: :download | Total: :total]',
+    'data_anomaly_content'    => 'User :id: Recent Hourly Data Usage [Upload: :upload | Download: :download | Total: :total]',
     'node'                    => [
         'upload'   => 'Upload',
         'download' => 'download',

+ 12 - 12
resources/lang/en/user.php

@@ -2,13 +2,13 @@
 
 return [
     'account'             => [
-        'credit'           => 'Credit',
+        'credit'           => 'Balance',
         'status'           => 'Status',
         'level'            => 'Level',
         'group'            => 'Group',
         'speed_limit'      => 'Speed Limit',
-        'remain'           => 'Remain Data',
-        'time'             => 'Period',
+        'remain'           => 'Remaining Data',
+        'time'             => 'Package Validity',
         'last_login'       => 'Last Login',
         'reset'            => '{0}Data will be reset in <code id="restTime">:days</code>|{1} Data will be reset in :days day|restTime|[2,*] Data will be reset in :days days',
         'connect_password' => 'Proxy Connect Password',
@@ -29,7 +29,7 @@ return [
             'failed'    => 'System ❌ Error',
         ],
         'traffic_logs'       => 'Data Records',
-        'announcement'       => 'Announcement',
+        'announcement'       => 'Announcements',
         'wechat_push'        => 'WeChat Notification Service',
         'chat_group'         => 'Chat Group',
         'empty_announcement' => 'No Announcement',
@@ -73,7 +73,7 @@ return [
         'error'     => [
             'unknown'  => 'unKnown Coupon',
             'used'     => 'This Coupon has been used.',
-            'expired'  => 'Out of Date',
+            'expired'  => 'Expired',
             'run_out'  => 'Run Out of Usage',
             'inactive' => 'Coupon Inactive yet',
             'wait'     => 'The Event will begin until :time, Please wait',
@@ -97,7 +97,7 @@ return [
         ''          => 'Reset Data',
         'required'  => 'Required',
         'cost_tips' => 'This following action will cost :amount!',
-        'lack'      => 'No enough Credit!',
+        'lack'      => 'Insufficient balance. Please recharge!',
         'logs'      => 'User purchase reset data',
         'success'   => 'Reset Successfully',
     ],
@@ -119,7 +119,7 @@ return [
     'invitee'             => 'Invitee',
     'registered_at'       => 'Registration at',
     'bought_at'           => 'Purchased at',
-    'payment_method'      => 'payment method',
+    'payment_method'      => 'Payment method',
     'pay'                 => 'Pay',
     'input_coupon'        => 'Please enter the gift code',
     'recharge'            => 'Pay',
@@ -176,7 +176,7 @@ return [
     ],
     'subscribe'           => [
         'baned'            => 'Your subscription function is disabled, please contact the administrator to restore',
-        'link'             => 'Subscribe Link',
+        'link'             => 'Subscription Link',
         'tips'             => 'Warning:Subscribe Link is for personal used only, Please do not show to anyone else. Otherwise, they may using your service without your permission',
         'exchange_warning' => 'Exchange Link:\n1. Old Link will be disabled\n2. Proxy connection password will be reset',
         'custom'           => 'Custom Subscribe',
@@ -201,15 +201,15 @@ return [
         'new'                 => 'Create Ticket',
         'working_hour'        => 'Customer Service',
         'online_hour'         => 'Working Hours',
-        'service_tips'        => 'We have many way to contact, please choose <code> ONE </code> of them! <br> Duplicate request will cost the service to delay',
+        'service_tips'        => 'We have different channels to contact, please choose <code> ONE </code> of them! <br> Duplicate requests cause further service delays',
         'error'               => 'Error!Please contact Customer Service',
     ],
     'traffic_logs'        => [
-        '24hours' => 'Today Traffic Usage',
+        '24hours' => 'Today\'s usage',
         '30days'  => 'Daily Traffic Usage',
-        'tips'    => 'Tips: Traffic logs has delays!',
+        'tips'    => 'Tip: Traffic logs are updated with delays!',
     ],
-    'client'              => 'Clients',
+    'client'              => 'Client ',
     'tutorials'           => 'Tutorials',
     'current_role'        => 'Current Role as',
     'knowledge'           => [

+ 74 - 74
resources/lang/en/validation.php

@@ -1,90 +1,90 @@
 <?php
 
 return [
-    'accepted'             => 'The :attribute must be accepted.',
-    'active_url'           => 'The :attribute is not a valid URL.',
-    'after'                => 'The :attribute must be a date after :date.',
-    'after_or_equal'       => 'The :attribute must be a date after or equal to :date.',
-    'alpha'                => 'The :attribute may only contain letters.',
-    'alpha_dash'           => 'The :attribute may only contain letters, numbers, dashes and underscores.',
-    'alpha_num'            => 'The :attribute may only contain letters and numbers.',
-    'array'                => 'The :attribute must be an array.',
-    'before'               => 'The :attribute must be a date before :date.',
-    'before_or_equal'      => 'The :attribute must be a date before or equal to :date.',
+    'accepted'             => 'The :attribute field must be accepted.',
+    'active_url'           => 'The :attribute field must be a valid URL.',
+    'after'                => 'The :attribute field must be a date after :date.',
+    'after_or_equal'       => 'The :attribute field must be a date after or equal to :date.',
+    'alpha'                => 'The :attribute field must only contain letters.',
+    'alpha_dash'           => 'The :attribute field must only contain letters, numbers, dashes, and underscores.',
+    'alpha_num'            => 'The :attribute field must only contain letters and numbers.',
+    'array'                => 'The :attribute field must be an array.',
+    'before'               => 'The :attribute field must be a date before :date.',
+    'before_or_equal'      => 'The :attribute field must be a date before or equal to :date.',
     'between'              => [
-        'numeric' => 'The :attribute must be between :min and :max.',
-        'file'    => 'The :attribute must be between :min and :max kilobytes.',
-        'string'  => 'The :attribute must be between :min and :max characters.',
-        'array'   => 'The :attribute must have between :min and :max items.',
+        'numeric' => 'The :attribute field must be between :min and :max.',
+        'file'    => 'The :attribute field must be between :min and :max kilobytes.',
+        'string'  => 'The :attribute field must be between :min and :max characters.',
+        'array'   => 'The :attribute field must have between :min and :max items.',
     ],
     'boolean'              => 'The :attribute field must be true or false.',
-    'confirmed'            => 'The :attribute confirmation does not match.',
-    'date'                 => 'The :attribute is not a valid date.',
-    'date_equals'          => 'The :attribute must be a date equal to :date.',
-    'date_format'          => 'The :attribute does not match the format :format.',
-    'different'            => 'The :attribute and :other must be different.',
-    'digits'               => 'The :attribute must be :digits digits.',
-    'digits_between'       => 'The :attribute must be between :min and :max digits.',
-    'dimensions'           => 'The :attribute has invalid image dimensions.',
+    'confirmed'            => 'The :attribute field confirmation does not match.',
+    'date'                 => 'The :attribute field must be a valid date.',
+    'date_equals'          => 'The :attribute field must be a date equal to :date.',
+    'date_format'          => 'The :attribute field must match the format :format.',
+    'different'            => 'The :attribute field and :other must be different.',
+    'digits'               => 'The :attribute field must be :digits digits.',
+    'digits_between'       => 'The :attribute field must be between :min and :max digits.',
+    'dimensions'           => 'The :attribute field has invalid image dimensions.',
     'distinct'             => 'The :attribute field has a duplicate value.',
-    'email'                => 'The :attribute must be a valid email address.',
-    'ends_with'            => 'The :attribute must end with one of the following: :values.',
+    'email'                => 'The :attribute field must be a valid email address.',
+    'ends_with'            => 'The :attribute field must end with one of the following: :values.',
     'exists'               => 'The selected :attribute is invalid.',
-    'file'                 => 'The :attribute must be a file.',
+    'file'                 => 'The :attribute field must be a file.',
     'filled'               => 'The :attribute field must have a value.',
     'gt'                   => [
-        'numeric' => 'The :attribute must be greater than :value.',
-        'file'    => 'The :attribute must be greater than :value kilobytes.',
-        'string'  => 'The :attribute must be greater than :value characters.',
-        'array'   => 'The :attribute must have more than :value items.',
+        'numeric' => 'The :attribute field must be greater than :value.',
+        'file'    => 'The :attribute field must be greater than :value kilobytes.',
+        'string'  => 'The :attribute field must be greater than :value characters.',
+        'array'   => 'The :attribute field must have more than :value items.',
     ],
     'gte'                  => [
-        'numeric' => 'The :attribute must be greater than or equal :value.',
-        'file'    => 'The :attribute must be greater than or equal :value kilobytes.',
-        'string'  => 'The :attribute must be greater than or equal :value characters.',
-        'array'   => 'The :attribute must have :value items or more.',
+        'numeric' => 'The :attribute field must be greater than or equal to :value.',
+        'file'    => 'The :attribute field must be greater than or equal to :value kilobytes.',
+        'string'  => 'The :attribute field must be greater than or equal to :value characters.',
+        'array'   => 'The :attribute field must have :value items or more.',
     ],
-    'image'                => 'The :attribute must be an image.',
+    'image'                => 'The :attribute field must be an image.',
     'in'                   => 'The selected :attribute is invalid.',
-    'in_array'             => 'The :attribute field does not exist in :other.',
-    'integer'              => 'The :attribute must be an integer.',
-    'ip'                   => 'The :attribute must be a valid IP address.',
-    'ipv4'                 => 'The :attribute must be a valid IPv4 address.',
-    'ipv6'                 => 'The :attribute must be a valid IPv6 address.',
-    'json'                 => 'The :attribute must be a valid JSON string.',
+    'in_array'             => 'The :attribute field must exist in :other.',
+    'integer'              => 'The :attribute field must be an integer.',
+    'ip'                   => 'The :attribute field must be a valid IP address.',
+    'ipv4'                 => 'The :attribute field must be a valid IPv4 address.',
+    'ipv6'                 => 'The :attribute field must be a valid IPv6 address.',
+    'json'                 => 'The :attribute field must be a valid JSON string.',
     'lt'                   => [
-        'numeric' => 'The :attribute must be less than :value.',
-        'file'    => 'The :attribute must be less than :value kilobytes.',
-        'string'  => 'The :attribute must be less than :value characters.',
-        'array'   => 'The :attribute must have less than :value items.',
+        'numeric' => 'The :attribute field must be less than :value.',
+        'file'    => 'The :attribute field must be less than :value kilobytes.',
+        'string'  => 'The :attribute field must be less than :value characters.',
+        'array'   => 'The :attribute field must have less than :value items.',
     ],
     'lte'                  => [
-        'numeric' => 'The :attribute must be less than or equal :value.',
-        'file'    => 'The :attribute must be less than or equal :value kilobytes.',
-        'string'  => 'The :attribute must be less than or equal :value characters.',
-        'array'   => 'The :attribute must not have more than :value items.',
+        'numeric' => 'The :attribute field must be less than or equal to :value.',
+        'file'    => 'The :attribute field must be less than or equal to :value kilobytes.',
+        'string'  => 'The :attribute field must be less than or equal to :value characters.',
+        'array'   => 'The :attribute field must not have more than :value items.',
     ],
     'max'                  => [
-        'numeric' => 'The :attribute may not be greater than :max.',
-        'file'    => 'The :attribute may not be greater than :max kilobytes.',
-        'string'  => 'The :attribute may not be greater than :max characters.',
-        'array'   => 'The :attribute may not have more than :max items.',
+        'numeric' => 'The :attribute field must not be greater than :max.',
+        'file'    => 'The :attribute field must not be greater than :max kilobytes.',
+        'string'  => 'The :attribute field must not be greater than :max characters.',
+        'array'   => 'The :attribute field must not have more than :max items.',
     ],
-    'mimes'                => 'The :attribute must be a file of type: :values.',
-    'mimetypes'            => 'The :attribute must be a file of type: :values.',
+    'mimes'                => 'The :attribute field must be a file of type: :values.',
+    'mimetypes'            => 'The :attribute field must be a file of type: :values.',
     'min'                  => [
-        'numeric' => 'The :attribute must be at least :min.',
-        'file'    => 'The :attribute must be at least :min kilobytes.',
-        'string'  => 'The :attribute must be at least :min characters.',
-        'array'   => 'The :attribute must have at least :min items.',
+        'numeric' => 'The :attribute field must be at least :min.',
+        'file'    => 'The :attribute field must be at least :min kilobytes.',
+        'string'  => 'The :attribute field must be at least :min characters.',
+        'array'   => 'The :attribute field must have at least :min items.',
     ],
-    'multiple_of'          => 'The :attribute must be a multiple of :value',
+    'multiple_of'          => 'The :attribute field must be a multiple of :value.',
     'not_in'               => 'The selected :attribute is invalid.',
-    'not_regex'            => 'The :attribute format is invalid.',
-    'numeric'              => 'The :attribute must be a number.',
+    'not_regex'            => 'The :attribute field format is invalid.',
+    'numeric'              => 'The :attribute field must be a number.',
     'password'             => 'The password is incorrect.',
     'present'              => 'The :attribute field must be present.',
-    'regex'                => 'The :attribute format is invalid.',
+    'regex'                => 'The :attribute field format is invalid.',
     'required'             => 'The :attribute field is required.',
     'required_if'          => 'The :attribute field is required when :other is :value.',
     'required_unless'      => 'The :attribute field is required unless :other is in :values.',
@@ -92,20 +92,20 @@ return [
     'required_with_all'    => 'The :attribute field is required when :values are present.',
     'required_without'     => 'The :attribute field is required when :values is not present.',
     'required_without_all' => 'The :attribute field is required when none of :values are present.',
-    'same'                 => 'The :attribute and :other must match.',
+    'same'                 => 'The :attribute field must match :other.',
     'size'                 => [
-        'numeric' => 'The :attribute must be :size.',
-        'file'    => 'The :attribute must be :size kilobytes.',
-        'string'  => 'The :attribute must be :size characters.',
-        'array'   => 'The :attribute must contain :size items.',
+        'numeric' => 'The :attribute field must be :size.',
+        'file'    => 'The :attribute field must be :size kilobytes.',
+        'string'  => 'The :attribute field must be :size characters.',
+        'array'   => 'The :attribute field must contain :size items.',
     ],
-    'starts_with'          => 'The :attribute must start with one of the following: :values.',
-    'string'               => 'The :attribute must be a string.',
-    'timezone'             => 'The :attribute must be a valid zone.',
+    'starts_with'          => 'The :attribute field must start with one of the following: :values.',
+    'string'               => 'The :attribute field must be a string.',
+    'timezone'             => 'The :attribute field must be a valid timezone.',
     'unique'               => 'The :attribute has already been taken.',
     'uploaded'             => 'The :attribute failed to upload.',
-    'url'                  => 'The :attribute format is invalid.',
-    'uuid'                 => 'The :attribute must be a valid UUID.',
+    'url'                  => 'The :attribute field must be a valid URL.',
+    'uuid'                 => 'The :attribute field must be a valid UUID.',
 
     'custom' => [
         'attribute-name' => [
@@ -121,10 +121,10 @@ return [
         'password'              => 'Password',
         'password_confirmation' => 'Password Confirmation',
         'phone'                 => 'Phone',
-        'day'                   => '{1} Day|{2} Day',
+        'day'                   => '{1} Day | Day {2}',
         'month'                 => 'Month',
         'year'                  => 'Year',
-        'hour'                  => '{1} Hour|{2} O Clock',
+        'hour'                  => '{1} Hour | {2} Clock',
         'minute'                => 'Minute',
         'second'                => 'Second',
         'title'                 => 'Title',

+ 27 - 0
resources/lang/ja.json

@@ -0,0 +1,27 @@
+{
+  "All rights reserved.": "利用可能な全てだ",
+  "Hello!": "こんにちは:",
+  "If you did not request a password reset, please ignore this email.": "パスワードのリセットを申請しなかった場合は、このメールは無視してください。",
+  "If you’re having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "「:actionText」ボタンのクリック時に問題がありました。下記のリンクをコピーしてください:",
+  "If your issue is not resolved, please create another ticket.": "問題が解決されない場合は、別のチケットを開くようにしてください。",
+  "Invoice Detail": "注文詳細",
+  "Daily Data Usage Report": "回線毎日のトラフィックレポート",
+  "Payment for #:sn has been received! Total amount: :amount.": "ご注文番号#:snnn,総額は :amountです。",
+  "Payment Received": "請求書の支払いが完了しました",
+  "Please click the button below to verify your email address.": "下のボタンをクリックしてメールアドレスを認証してください:",
+  "Please click on the button below to reset your password.": "下のボタンをクリックしてパスワードをリセットしてください:",
+  "Regards": "敬礼",
+  "Reset Password Notification": "パスワード通知をリセット",
+  "Reset Password": "パスワードをリセット",
+  "Send Password Reset Link": "パスワード再設定リンクの送信",
+  "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.": "ご登録ありがとうございます! メールアドレスを確認するため、あなたのメールボックスに送信リンクをクリックしてあなたのメールを送信してください。もしメールが届かない場合は再度メールを送信してください。",
+  "Too Many Attempts.": "試行回数が多すぎます",
+  "Too Many Requests": "リクエストが多すぎます",
+  "Verify Email Address": "メールアドレスの確認",
+  "Verify Your Email Address": "メールアドレスの確認",
+  "We won't ask for your password again for a few hours.": "確認が完了してから数時間以内にパスワードを入力する必要があります。",
+  "You are receiving this email because we received a password reset request for your account.": "お客様のアカウントのパスワード再設定リクエストを受信したため、このメールを受信しています。",
+  "Your email address is not verified.": "あなたのメールアドレスは確認されていません",
+  "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!": "この地域のコンテンツを表示するには、利用可能なプランが必要です。"
+}

+ 804 - 0
resources/lang/ja/admin.php

@@ -0,0 +1,804 @@
+<?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'      => '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'               => 'IDを切り替え',
+            'reset_date_hint'      => 'アカウントの次回のリセット日',
+            'expired_date_hint'    => '既定の設定に進んでください',
+            'uuid_hint'            => 'V2 RayアカウントID',
+            'recharge_placeholder' => '負の値を埋めるが首残高になります',
+        ],
+        'update_help'     => '成功の更新は完了しましたか?',
+        'proxies_config'  => '【:username】接続設定',
+        'group'           => [
+            'title'  => 'ユーザグループ制御<small>(1 つのノードで複数のグループに割り当てることができます).またユーザに表示可能なノード:はグループ毎にグループ化されたランクでグループ化できます</small>',
+            'name'   => 'グループ名',
+            'counts' => ' 合計 <code>:num</code> のグループ',
+        ],
+    ],
+    'zero_unlimited_hint' => '無限に /0 の制限なし',
+    'node'                => [
+        'traffic_monitor' => 'トラフィックの統計情報',
+        'refresh_geo'     => '更新',
+        'ping'            => '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'           => 'ドメイン名「DNS」モードをオンにすると、自動的に次のIPコンテンツをリンクさせます! また、ドメインを登録している時にIPを変更する必要はありません。またドメイン名登録のビジネスページに進みます。',
+            'extend'                => 'その他の情報',
+            'display'               => [
+                'invisible' => '非表示',
+                'node'      => '【trans】のページのみ',
+                'sub'       => '受刑者のみを表示',
+                'all'       => 'グローバル表示',
+                'hint'      => 'ユーザーはフィードの所有者/表示できるかどうか',
+            ],
+            'ipv4_hint'             => 'マルチIPは、分割、例:1.1.1、8.8.8.8.8',
+            'ipv6_hint'             => 'マルチIPは、分割、例:1.1.1、8.8.8.8.8',
+            'ipv4_placeholder'      => 'サーバーIPv4アドレス',
+            'ipv6_placeholder'      => 'サーバのIPv6アドレス、これは使用者が見える、無効なドメイン名です',
+            'push_port_hint'        => '必要で Firewall がボードに接続されていない場合メッセージング例.',
+            'data_rate_hint'        => '例:0.1Mを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] と推奨ポートが推奨されます。',
+            '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'    => 'WeChatとビデオ通話',
+                'dtls'      => 'DTLS1.2データパッケージ',
+                'wireguard' => 'Wire Guardのデータパック',
+            ],
+            '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値はnull 、VNET-V2 Rayバックエンドをサポートした自動署名証明書です',
+            'pem_placeholder' => 'VNET-V2 Rayバックエンドをサポートするための自動署名証明書は、ドメイン証明書を推奨する PEM値です。',
+        ],
+    ],
+    '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'      => '1ユーザーが購入可能商品の購入回数、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'  => 'Modding帳簿',
+        'annually_accounting' => '年造帳簿',
+        'historic_accounting' => '取引の帳簿',
+        'current_month'       => ' 今月 ',
+        'last_month'          => ' 先月',
+        'current_year'        => ' 累積 ',
+        'last_year'           => ' 過去 年 ',
+        'hourly_traffic'      => '通信量',
+        'daily_traffic'       => '1日あたりのトラフィック',
+        'today'               => ' ベン ',
+    ],
+    'permission'          => [
+        'title'            => '権限アクション一覧',
+        'description_hint' => '説明にテキストを書いてください:【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'             => 'Eメールサフィックス',
+            'rule'             => 'ルール',
+            'black'            => 'ブラックリスト',
+            'white'            => 'ホワイトリスト',
+            'tail_placeholder' => 'メールアドレスを記入してください。',
+        ],
+        'system'        => [
+            'title'     => 'システム設定',
+            'web'       => 'サイト全体',
+            'account'   => 'アカウント設定',
+            'node'      => 'ノード設定',
+            'extend'    => '拡張機能機能',
+            'check_in'  => 'サインインシステム',
+            'promotion' => 'プロモーションシステム',
+            'notify'    => 'システム通知',
+            'auto_job'  => 'Autoタスク',
+            'other'     => 'LOGO|サポート|統計情報',
+            'payment'   => '決済システム',
+            'menu'      => 'メニュー',
+        ],
+        'no_permission' => 'パラメーターを変更する権限がありません。',
+    ],
+    'system'              => [
+        'account_expire_notification'   => 'アカウントの期限が過ぎているお知らせ',
+        'active_times'                  => '発動したアカウント回数',
+        'admin_invite_days'             => '管理者-招待コード有効期限',
+        'aff_salt'                      => 'ユーザ情報のテキスト化への招待',
+        'alipay_qrcode'                 => 'PayPalQRコードを支払い',
+        'AppStore_id'                   => 'Apple アカウント',
+        'AppStore_password'             => 'Appleのパスワード',
+        'auto_release_port'             => 'ポートリメカニクス',
+        'bark_key'                      => 'Bark のデバイス番号',
+        'captcha_key'                   => '認証キー',
+        'captcha_secret'                => 'シークレットキーID',
+        'codepay_id'                    => '決済ID',
+        'codepay_key'                   => '通信キー',
+        'codepay_url'                   => 'URLをリクエスト',
+        'data_anomaly_notification'     => 'トラフィックの異常な通知',
+        'data_exhaust_notification'     => 'トラフィック使用時の通知',
+        'ddns_key'                      => 'DNSサービス商Key',
+        'ddns_mode'                     => 'DNSモード',
+        'ddns_secret'                   => 'DNSサービスSecret',
+        'default_days'                  => '初期有効期間',
+        'default_traffic'               => '初期データ',
+        'detection_check_times'         => '停止通知をブロックする',
+        'dingTalk_access_token'         => 'Token をピン留めしてカスタムアクセストークン',
+        'dingTalk_secret'               => 'カスタムロボットを釘付けにする',
+        'epay_key'                      => 'マーチャントキー',
+        'epay_mch_id'                   => 'マーチャント ID',
+        'epay_url'                      => 'インターフェースの対アドレス',
+        'expire_days'                   => '有効期限警告のしきい値',
+        'f2fpay_app_id'                 => 'アプリID',
+        'f2fpay_private_key'            => 'アプリの秘密鍵',
+        'f2fpay_public_key'             => 'PayPal公開鍵',
+        'forbid_mode'                   => 'アクセス禁止モード',
+        'invite_num'                    => '招待状コードを生成する',
+        'is_activate_account'           => 'アカウントを認証',
+        'is_AliPay'                     => 'PayPal決済',
+        'is_ban_status'                 => '有効期限付きオーバー',
+        'is_captcha'                    => 'Captcha モード',
+        'is_checkin'                    => 'ログインして、データを追加します',
+        'is_clear_log'                  => 'ログの自動消去',
+        'is_custom_subscribe'           => 'プレミアムサブスクリプション',
+        'is_email_filtering'            => 'Eメールフィルター メカニクス',
+        'is_forbid_robot'               => 'Botをブロック',
+        'is_free_code'                  => '無料招待コード',
+        'is_invite_register'            => 'サインアップを招待',
+        'is_otherPay'                   => 'スペシャル支払い',
+        'is_QQPay'                      => 'QQウォレット',
+        'is_rand_port'                  => 'ランダムポート',
+        'is_register'                   => 'ユーザー登録',
+        'is_subscribe_ban'              => '例外自動BAN',
+        'is_traffic_ban'                => '例外自動トークン',
+        'is_WeChatPay'                  => 'WeChat 支払う',
+        'iYuu_token'                    => 'IYUU トークン',
+        'maintenance_content'           => '紹介内容を保持',
+        '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'              => 'アプリID',
+        'paybeaver_app_secret'          => 'App Secret',
+        'payjs_key'                     => '通信キー',
+        'payjs_mch_id'                  => 'コメントの入力',
+        'payment_confirm_notification'  => '手動で支払いの確認通知',
+        'payment_received_notification' => '支払が正常に通知します',
+        'paypal_app_id'                 => 'アプリID',
+        'paypal_certificate'            => '証明書',
+        'paypal_password'               => 'API パスワード',
+        'paypal_secret'                 => '署名',
+        'paypal_username'               => 'API ユーザー名',
+        'pushDeer_key'                  => 'PushDeer キー',
+        'pushplus_token'                => 'PushPlus Toトークン',
+        '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 SKEY',
+        'standard_currency'             => '現在の通貨',
+        'stripe_public_key'             => 'Public キー',
+        'stripe_secret_key'             => '秘密キー',
+        'stripe_signing_secret'         => 'WebHook Signing secret',
+        'subject_name'                  => '商品コード名',
+        'subscribe_ban_times'           => 'フィード閾値
+',
+        'subscribe_domain'              => 'ノード購読アドレス',
+        'subscribe_max'                 => '購読しているノード数',
+        'telegram_token'                => 'Telegram トークン',
+        'tg_chat_token'                 => 'TGソースをトークン',
+        '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'                 => 'V2 Ray認証',
+        'v2ray_tls_provider'            => 'V2Ray TLSの設定',
+        'webmaster_email'               => '管理者の電子メール',
+        'website_analytics'             => '統計コード',
+        'website_callback_url'          => '一般的な支払いコールバックアドレス',
+        'website_customer_service'      => 'サポート コード',
+        'website_home_logo'             => 'ホームページのロゴ',
+        'website_logo'                  => '拠点情報',
+        'website_name'                  => 'サイト名',
+        'website_security_code'         => 'サイトのセキュリティコード',
+        'website_url'                   => 'Webサイトアドレス',
+        'web_api_url'                   => '認証/バックエンドへのアクセスドメイン',
+        'wechat_aid'                    => 'WeChat企業アプリID',
+        'wechat_cid'                    => 'WeChat企業ID',
+        'wechat_encodingAESKey'         => 'WeekoldはEncodingAESKey',
+        'wechat_qrcode'                 => 'やみのQRコード',
+        'wechat_secret'                 => 'WeChat アプリキー',
+        'wechat_token'                  => 'WeChat AppEN',
+
+        'hint'           => [
+            'account_expire_notification'   => 'ユーザーに通知して締め切られます',
+            'active_times'                  => '24時間、メールからアカウントを使用した回数',
+            'admin_invite_days'             => '管理者により招待コードを生成する有効期間',
+            'aff_salt'                      => '空のときは招待リンクでユーザーIDが表示される。英語の/番号の入力欄を入力すると、ユーザーのリンクIDを暗号化できます',
+            'AppStore_id'                   => 'iOSソフトウェアセットアップ用の Apple アカウント',
+            'AppStore_password'             => 'iOSソフトウェア設定チュートリアルでAppleのパスワード',
+            'auto_release_port'             => '禁止/期限 <code>'.config('tasks.release_port').'</code> とのアカウントポートで自動解放',
+            'bark_key'                      => 'iOSデバイスへのプッシュメッセージは、iOSデバイス用のBarkアプリのURLを用意する必要があります。頼後の長い文字列は、返事が必要です。',
+            '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'                  => 'ユーザーの登録有効期限は、当日の期限までに有効です。',
+            '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'                 => '(注意) アカウントのすべてのデータをブロックすると、アカウントのすべてのアカウントをブロックし、ユーザーが 既定のユーザーをBANすることになります。',
+            '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=http://iyuu.cn target=_blank>IYUUトークンをリクエストしてください</a>',
+            'maintenance_content'           => 'カスタムメッセージ',
+            'maintenance_mode'              => "ユーザーがメンテナンスUIに移動する|マネージャーでサインインする <a href='javascript:(0)'>:url</a>",
+            'maintenance_time'              => 'メンテナンス表示カウントダウン',
+            'min_port'                      => 'ポートの範囲は:1000 - 65535',
+            'node_blocked_notification'     => '1時間後にノードをブロックしたり、管理者に警告する',
+            'node_daily_notification'       => 'ノードの砂漠利用開始日',
+            'node_offline_notification'     => '10分ごとにオフラインノードを検出し、管理者に通知する',
+            'oauth_path'                    => '.ENVでセットアップを編集してください。ここでマーケットプレイスをオンにします',
+            'offline_check_times'           => '24時間以内に通知しない',
+            'password_reset_notification'   => 'ユーザーがパスワードをリセットするのを有効にする',
+            'paybeaver_app_id'              => '<a href="https://merchant.paybeaver.com/" target="_blank">マーキュン ・ センター</a> -> デベロッパー 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=http://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'               => 'サーバーChanonを有効にする必要があります(<a href=https://sc.ftqq.com target=_blank>SKEY</a>に変更してください)',
+            'standard_currency'             => 'ウェブサイトに基本通貨を含むデフォルト通貨',
+            'subject_name'                  => 'チャンネル登録されている商品タイトルを表示する',
+            'subscribe_ban_times'           => '24時間以内にサブスクリプション法が要求できる回数制限',
+            'subscribe_domain'              => '(優先)パネルドメインがDNSに投毒された後にサブスクリプションが無効になります。http://またはhttps://を使用する必要があります',
+            'subscribe_max'                 => 'クライアントサブスクリプションを取得中にノードを 0/空白にしたときにすべてのノードを返します。',
+            'telegram_token'                => 'ボットがTOKEN を得る <a href=https://t.me/BotFather target=_blank>@BotFather</a> 候補者を探します',
+            'tg_chat_token'                 => 'TGソースを有効にするには英数字(<a href=https://t.me/realtgchat_bot target=_blank>トークン</a>入力してください)',
+            'ticket_closed_notification'    => 'チケットクローズしたユーザ通知',
+            'ticket_created_notification'   => '新しいチケット通知管理/ユーザーにより作成された新しいチケット',
+            'ticket_replied_notification'   => 'チケット返信に関する通知',
+            'traffic_ban_time'              => 'トラフィックの増加によりユーザーの禁止期間がブロックされるまでの時間。期限が終了すると自動的にBANされます。',
+            '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'                   => '例:https://demo.proxypanel.cf',
+            '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'       => 'サーバーChant の「SCKEY-」ボタンを押す',
+            'pushDeer_key'          => 'プッシュ型付きのPush Key ->更新をタップ',
+            'iYuu_token'            => 'エリオットを飛ばす IYUU のトークン->更新をタップ',
+            'bark_key'              => 'あなたのデバイスを Bark でどうぞ > 更新してください',
+            'telegram_token'        => 'Telegramの Token を押してください-> 更新します。',
+            'pushplus_token'        => 'ServerChanをリクエスト',
+            'dingTalk_access_token' => 'BotのWebHooks の access_tol をカスタマイズする',
+            'dingTalk_secret'       => 'Botをブロックしたあとに出した鍵をカスタマイズする',
+            'wechat_aid'            => 'アプリケーションのAgentId',
+            'wechat_cid'            => 'WeChatコート ID をタップ - 更新してください',
+            'wechat_secret'         => 'アプリの秘密鍵',
+            'tg_chat_token'         => 'Telegram にアクセスする',
+            'codepay_url'           => 'https://codepay.fateq.com/creat_order/?',
+        ],
+        'payment'        => [
+            'attribute' => '支払い設定',
+            'channel'   => [
+                'alipay'    => 'PayPalF2F',
+                'codepay'   => 'コードを支払う',
+                'epay'      => '易しい支払い',
+                'payjs'     => 'PayJs',
+                'paypal'    => 'PayPal語',
+                '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">ビーバー</a>に応募してくださいよ Paybaver</a>',
+                'theadpay'  => '<a href="https://theadpay.com/" target="_blank">フラットヘッドルーム</a>でアカウント登録リクエストしてください',
+                'manual'    => '対応する画面を表示するように変更する',
+            ],
+        ],
+        'notification'   => [
+            'channel' => [
+                'telegram'   => 'TGテレックス',
+                'wechat'     => 'マイクロ信企業',
+                'dingtalk'   => 'ピン留め',
+                'email'      => 'メール',
+                'bark'       => 'Bark',
+                'serverchan' => 'ServerChan',
+                'pushdeer'   => 'PushDeer',
+                'pushplus'   => 'PushPlus',
+                'iyuu'       => '愛語飛行',
+                'tg_chat'    => 'TGジャム',
+                'site'       => '通知',
+            ],
+        ],
+        'forbid'         => [
+            'mainland' => '連合の排除',
+            'china'    => '中国をブロックする',
+            'oversea'  => 'ブロックを消す',
+        ],
+        'username'       => [
+            'email'  => 'メールアドレス',
+            'mobile' => '携帯電話番号',
+            'any'    => 'ユーザー名',
+        ],
+        'active_account' => [
+            'before' => '登録する前にアクティブにする',
+            'after'  => '登録後にアクティブにする',
+        ],
+        'ddns'           => [
+            'namesilo'   => 'Namesiilo',
+            'aliyun'     => 'Aliyun (国際&国内)',
+            'dnspod'     => 'DNS Pod',
+            'cloudflare' => 'CloudFlarare',
+        ],
+        'captcha'        => [
+            'standard'  => '平均サイズ',
+            'geetest'   => 'ベストプラス',
+            'recaptcha' => 'Google reCaptcha',
+            'hcaptcha'  => 'hCaptcha',
+        ],
+        'referral'       => [
+            'once' => '初回購入',
+            'loop' => 'ループ還元',
+        ],
+    ],
+    'set_to'              => ':attribute は :attribute です。',
+    'minute'              => '分間',
+    'query'               => 'アンケート名',
+    'optional'            => 'オプション',
+    'require'             => '必須',
+];

+ 84 - 0
resources/lang/ja/auth.php

@@ -0,0 +1,84 @@
+<?php
+
+return [
+    'accept_term'     => 'ルールを読んで同意します',
+    'active'          => [
+        'attribute' => '有効',
+        'error'     => [
+            'activated' => 'アカウントのアクティブです。もうアカウントは行われていません。',
+            'disable'   => 'アカウントのサブシステムを無効化しました。すぐにログインできます!',
+            'throttle'  => '本サイトのアクティベーションにより、頻繁なアクセスを行います。問題がある場合は: Email にご連絡ください。',
+        ],
+        'sent'      => 'アクティベーションリンクがあなたのメール アドレスに送信されました。少々お待ち下さい。',
+        'promotion' => ['0' => 'アカウントがまだ有効にされていません。クリックしてください', '1' => '起動!'],
+    ],
+    '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'    => 'リンクは無効になっています。再度実行してください',
+    ],
+    'invite'          => [
+        'attribute'    => '招待コード',
+        'error'        => ['unavailable' => '招待コードは利用できません。再試行してください'],
+        'get'          => 'クリックして招待コードを獲得',
+        'not_required' => '招待コードは必要ありません。直接サインアップ!',
+    ],
+    'login'           => 'ログイン',
+    'logout'          => 'ログイン',
+    'maintenance'     => 'メンテナンス',
+    'maintenance_tip' => 'サイトのメンテナンス中です',
+    'oauth'           => [
+        'bind_success'    => '正常にバインドされました。',
+        'bind_failed'     => 'リンク失敗',
+        'login_failed'    => 'サードパーティ のサインインに失敗しました!',
+        'register'        => 'クイック登録',
+        'registered'      => 'すでにご登録いただいていますので、すぐにログインしてください。',
+        'register_failed' => '登録できませんでした',
+        'rebind_success'  => '正常にバインドされました。',
+        'unbind_success'  => '解除成功',
+        'unbind_failed'   => '失敗',
+    ],
+    'optional'        => 'オプション',
+    'password'        => [
+        'forget'   => 'パスワードをお忘れですか?',
+        'new'      => '新しいパスワードを入力してください',
+        'original' => '古いパスワード',
+        'reset'    => [
+            'attribute' => 'パスワードをリセット',
+            'error'     => [
+                'disabled' => 'パスワードリセットのシステムを無効にしました:メール) ',
+                'failed'   => 'パスワードのリセットに失敗しました',
+                'throttle' => '24時間以内にパスワードを変更できます :time 回数, 頻繁で行わないでください',
+                'same'     => '新しいパスワードを古いパスワードと同じにできません。もう一度入力してください',
+                'wrong'    => '古いパスワードが正しくありません。再度入力してください',
+                'demo'     => 'デモ版では管理者パスワードの変更はできません。',
+            ],
+            'sent'      => 'リセットに成功しました。メールメールをゴミ箱に確認する可能性があります)',
+            'success'   => '新しいパスワードは設定されました。ログインページに移動してください。',
+        ],
+    ],
+    'register'        => [
+        'attribute' => '収納',
+        'code'      => '登録コード',
+        'error'     => ['disable' => '申し訳ありませんが、当駅があなたを閉鎖しています。', 'throttle' => 'フラッシュ設定機能が有効になっています。頻繁に更新さないでください'],
+        'promotion' => 'まだアカウントを持っていませんか?',
+        'failed'    => '登録に失敗しました。後でもう一度試してください。',
+        'success'   => '登録が完了しました',
+    ],
+    'remember_me'     => 'ログイン状態を保持する',
+    'request'         => '取込',
+    'tos'             => '使用条件',
+];

+ 144 - 0
resources/lang/ja/common.php

@@ -0,0 +1,144 @@
+<?php
+
+return [
+    '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'         => '成功しました。',
+    'failed'          => '失敗',
+    'update'          => 'より新しい',
+    'update_action'   => '更新:action',
+    'none'            => 'いいえ',
+    'new'             => '新着',
+    'sorry'           => '失礼',
+    'applied'         => ':attribute にして下さい。',
+    'active_item'     => ':attribute の確認が一致しました',
+    'error'           => 'エラー',
+    'toggle'          => 'タンク',
+    'toggle_action'   => '切り替え:action',
+    'request_url'     => 'アドレスリクエスト',
+    'function'        => [
+        'navigation' => 'ナビゲーション',
+        'menubar'    => 'メニューバー',
+        'fullscreen' => 'フルスクリーン',
+    ],
+    'days'            => [
+        'sun'     => '日曜日',
+        'mon'     => '月曜日',
+        'tue'     => '火曜日',
+        'wed'     => '水曜日',
+        'thu'     => '木曜日',
+        'fri'     => '金曜日',
+        'sat'     => '土曜日',
+        'weekend' => '週末',
+        'work'    => '平日',
+        'next'    => '翌日配達',
+    ],
+    'qrcode'          => ':attribute は eQRにして下さい。',
+    'deleted'         => '削除済み',
+    'deleted_item'    => ':attribute が取り消されました',
+    'print'           => '印刷',
+    'unlimited'       => '無制限',
+    'payment'         => [
+        'credit' => '残高',
+        'wechat' => 'マイクロレター',
+        'alipay' => 'アリペイ',
+        'crypto' => 'バーチャル通貨',
+        'manual' => '自動決済',
+        'status' => [
+            'wait'    => '未支払',
+            'fail'    => '支払いに失敗しました',
+            'success' => 'お支払い完了',
+        ],
+    ],
+    'order'           => [
+        'status' => [
+            'cancel'   => '中止',
+            'complete' => '完了',
+            'prepaid'  => '事前決済',
+            'ongoing'  => '有効',
+            'review'   => '保留中',
+        ],
+    ],
+    'recommend'       => '推奨',
+    'advance'         => '上級者向け',
+    'action'          => 'アクション',
+    'search'          => '360',
+    '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'      => '開発中です!お楽しみに',
+];

+ 36 - 0
resources/lang/ja/errors.php

@@ -0,0 +1,36 @@
+<?php
+
+return [
+    'forbidden'    => [
+        'access'  => '不明なIPを検出する、またはプロキシアクセスでアクセスを禁止します',
+        'bots'    => 'ロボットがアクセスすることを検出し、アクセス禁止',
+        'china'   => '中国IPを検出するか、プロキシを使用してアクセスを禁止します。',
+        'oversea' => '海外IPまたはプロキシアクセスが検出されましたアクセス禁止',
+    ],
+    'http'         => 'HTTPリクエストタイプが無効です',
+    'log'          => 'ログ',
+    'missing_page' => 'ページが見つかりません',
+    'refresh'      => '新しいブラシ',
+    'refresh_page' => 'ページを更新してから次にアクセスしてください',
+    'report'       => 'エラー❌誤報告がある:',
+    'safe_enter'   => '安全なポータルへのアクセス',
+    'safe_code'    => '在庫探索をしない',
+    'system'       => 'システムエラー',
+    'title'        => '⚠️エラートリガー',
+    'unauthorized' => 'アクセスできません',
+    'unsafe_enter' => '非安全なポータルへのアクセス',
+    'visit'        => 'サポートはこちら:',
+    'whoops'       => '痛い!',
+    'get_ip'       => 'IPメッセージの例外を取得する',
+    'subscribe'    => [
+        'unknown'      => 'リンクエラー! 取得を再試行してください!',
+        'sub_baned'    => 'このリンクは無効化されました。クエリ理由を参照してください',
+        'user'         => 'エラーリンク,アカウントが存在しません! 取得し直してください.',
+        'user_disable' => '無効なアカウントです!',
+        'baned_until'  => 'アカウントの制限が緩和した時間をおいてから再度解除してください!',
+        'out'          => 'トラフィックが使い切れました。購入するか、データのリセットを再試行しましょう!',
+        'expired'      => 'アカウントの有効期限が切れています。お手数ですが、購読してみてください。',
+        'question'     => 'アカウントに問題があります。連絡先検索にアクセスしてください!',
+        'none'         => '利用できるノードがありません',
+    ],
+];

+ 238 - 0
resources/lang/ja/model.php

@@ -0,0 +1,238 @@
+<?php
+
+return [
+    'user'             => [
+        'id'             => 'ユーザ ID',
+        'attribute'      => 'ユーザー',
+        'nickname'       => 'ニックネーム',
+        'username'       => 'アカウント',
+        'password'       => 'パスワード',
+        'credit'         => '残高',
+        'invite_num'     => '利用可能な招待コード',
+        'reset_date'     => 'リセット日',
+        'port'           => 'ポート',
+        'traffic_used'   => 'データ使用量',
+        'service'        => 'プロキシ',
+        'group'          => 'グループ',
+        'level'          => 'レベル',
+        'account_status' => 'アカウント状態',
+        'proxy_status'   => 'プロキシ状態',
+        'expired_date'   => '終了日',
+        'role'           => 'ロール権限',
+        'wechat'         => 'マイクロレター',
+        'qq'             => 'QQ',
+        'remark'         => 'メモ',
+        'uuid'           => 'VMess UUUID',
+        'proxy_passwd'   => 'パスワード',
+        'proxy_method'   => '暗号化方式',
+        'usable_traffic' => '利用可能なデータ',
+        'proxy_protocol' => 'プロトコル',
+        'proxy_obfs'     => '難読化',
+        'speed_limit'    => 'ユーザー制限速度',
+        'inviter'        => '招待人:',
+        'created_date'   => '登録日',
+    ],
+    'common'           => [
+        'extend'      => '拡張',
+        'sort'        => '並べ替え',
+        'description' => '説明',
+    ],
+    'country'          => [
+        'code' => 'ISO国コード',
+        'icon' => 'ビーコン',
+        'name' => '国名',
+    ],
+    'subscribe'        => [
+        'code'       => 'サブスクリプションコード',
+        'req_times'  => '要求回数',
+        'updated_at' => '前回の要求時間',
+        'ban_time'   => 'アクセス禁止時間',
+        'ban_desc'   => 'BANされた理由',
+        'req_ip'     => 'リクエスト IP',
+        'req_header' => '訪問',
+    ],
+    'oauth'            => [
+        'type'       => 'チャネル',
+        'identifier' => ' 識別のみ',
+    ],
+    'user_group'       => [
+        'attribute' => 'ユーザーグループ',
+        'name'      => 'グループ名',
+        'nodes'     => 'ノードの選択',
+    ],
+    'node'             => [
+        'attribute'       => 'ノード',
+        'id'              => 'ノードID',
+        'type'            => 'タイプ',
+        'name'            => '注文番号による検索',
+        'domain'          => 'ドメイン',
+        'static'          => '生存',
+        'online_user'     => '開くべきクリック ギルドVault 4',
+        'data_consume'    => 'トラフィックの生成',
+        'data_rate'       => 'トラフィックの割合',
+        'ddns'            => 'DDNS',
+        'ipv4'            => 'IPv4アドレス',
+        'ipv6'            => 'IPv6アドレス',
+        'push_port'       => 'メッセージポート:',
+        'level'           => 'レベル',
+        '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'      => '配送番号の設定',
+        'type'           => 'タイプ',
+        'name'           => '注文番号による検索',
+        'price'          => '販売価格',
+        'category'       => 'カテゴリ',
+        'level'          => 'レベル',
+        'renew'          => '使用量のリセット',
+        'user_limit'     => 'ユーザー制限速度',
+        'period'         => '期間をリセット',
+        'traffic'        => 'トラフィックの経度',
+        'invite_num'     => '招待コードを贈る',
+        'limit_num'      => '最大購入数',
+        'available_date' => '有効期限',
+        'hot'            => '人気',
+        'color'          => 'カラー',
+        'logo'           => 'ベンダサムネイル画像サイズ',
+        'info'           => 'カスタムリスト',
+    ],
+    'rule'             => [
+        'attribute' => 'ルール',
+        'type'      => 'タイプ',
+        'name'      => '説明',
+        'pattern'   => '値',
+    ],
+    'rule_group'       => [
+        'attribute' => 'ルールグループ',
+        'name'      => 'グループ名',
+        'type'      => '監査モード',
+        'rules'     => '規則選択',
+    ],
+    'role'             => [
+        'attribute'   => 'ロール',
+        'name'        => '注文番号による検索',
+        'permissions' => '権限',
+    ],
+    'permission'       => [
+        'attribute'   => 'アクセス許可の動作',
+        'description' => 'ビヘイビアの説明',
+        'name'        => 'ルート名',
+    ],
+    'article'          => [
+        'attribute'  => '記事',
+        'type'       => 'クラス',
+        'category'   => 'クラス',
+        'language'   => '話す',
+        'logo'       => 'ヘッダ',
+        'created_at' => '公開日',
+        'updated_at' => '最終更新日',
+    ],
+    'coupon'           => [
+        'attribute'          => 'カード券',
+        'name'               => 'カード券名',
+        'sn'                 => 'クーポンコードを使用',
+        'logo'               => 'カード券画像',
+        'type'               => 'タイプ',
+        'value'              => '割引率',
+        'priority'           => '重さ',
+        'usable_times'       => '使用数',
+        'minimum'            => 'MAX減条件',
+        'used'               => '個人制限',
+        'levels'             => 'ランク制限',
+        'groups'             => 'グループの制限',
+        'users_whitelist'    => '限定ユーザー',
+        'users_blacklist'    => 'ユーザーを無効にする',
+        'services_whitelist' => 'Emailアドレスを入力してください',
+        'services_blacklist' => '製品を無効にする。',
+        'newbie'             => '新人専属',
+        'num'                => '個数',
+    ],
+    'aff'              => [
+        'invitee'    => '消費者',
+        'amount'     => '金銭的額',
+        'commission' => '払戻額',
+        'updated_at' => '処理時間',
+        'created_at' => '注文なし',
+    ],
+    'referral'         => [
+        'created_at' => '要求時間',
+        'user'       => 'アカウントのリクエスト',
+        'amount'     => '引き出し額申請',
+        'id'         => '単品ID',
+    ],
+    'notification'     => [
+        'type'       => 'タイプ',
+        'address'    => '送信先アドレス',
+        'created_at' => '配達日数',
+        'status'     => '納品検収状態',
+    ],
+    'ip'               => [
+        'network_type' => '通信タイプ',
+        'info'         => '関する地域',
+    ],
+    'user_traffic'     => [
+        'upload'   => 'トラフィックのアップロード',
+        'download' => '通信量のダウンロード',
+        'total'    => '合計トラフィック',
+        'log_time' => '記録時間',
+    ],
+    'user_data_modify' => [
+        'before'      => '変更前のトラフィック',
+        'after'       => '運用の後退率',
+        'description' => '説明',
+        'created_at'  => 'タイムスタンプ',
+    ],
+    'user_credit'      => [
+        'before'     => '操作前残高',
+        'after'      => '操作後の金額',
+        'amount'     => '発生金額',
+        'created_at' => 'タイムスタンプ',
+    ],
+];

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

@@ -0,0 +1,35 @@
+<?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'    => '总计',
+    ],
+];

+ 6 - 0
resources/lang/ja/pagination.php

@@ -0,0 +1,6 @@
+<?php
+
+return [
+    'previous' => '&laquo; 上一页',
+    'next'     => '下一页 &raquo;',
+];

+ 9 - 0
resources/lang/ja/passwords.php

@@ -0,0 +1,9 @@
+<?php
+
+return [
+    'reset'     => '密码重置成功!',
+    'sent'      => '密码重置邮件已发送!',
+    'throttled' => '请稍候再试。',
+    'token'     => '密码重置令牌无效。',
+    'user'      => '找不到该邮箱对应的用户。',
+];

+ 219 - 0
resources/lang/ja/user.php

@@ -0,0 +1,219 @@
+<?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'   => '本功能对非付费用户禁用!请',
+    'more'                => '更多',
+    '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'              => [
+        'attribute' => '优惠券',
+        'voucher'   => '代金券',
+        'recharge'  => '充值券码',
+        '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'          => [
+        ''          => '重置流量',
+        'required'  => '需要',
+        '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'         => '请使用客户端扫描二维码',
+    '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></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'           => [
+        'baned'            => '您的订阅功能被禁用,请联系管理员恢复',
+        'link'             => '订阅链接',
+        'tips'             => '警告:该订阅链接仅限个人使用,请勿传播该链接,否则会导致您的账号流量使用情况异常触发自动封号机制。',
+        'exchange_warning' => '更换订阅地址将导致:\n1.旧地址立即失效\n2.连接密码被更改',
+        'custom'           => '自定义订阅',
+        'ss_only'          => '只订阅SS',
+        'ssr_only'         => '只订阅SSR (包含SS)',
+        'v2ray_only'       => '只订阅V2Ray',
+        'trojan_only'      => '只订阅Trojan',
+        'error'            => '更换订阅地址异常',
+    ],
+    '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' => '基 础',
+    ],
+];

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

@@ -0,0 +1,137 @@
+<?php
+
+return [
+    'accepted'             => '您必须接受 :attribute。',
+    'active_url'           => ':attribute 不是一个有效的网址。',
+    'after'                => ':attribute 必须要晚于 :date。',
+    'after_or_equal'       => ':attribute 必须要等于 :date 或更晚。',
+    'alpha'                => ':attribute 只能由字母组成。',
+    'alpha_dash'           => ':attribute 只能由字母、数字、短划线(-)和下划线(_)组成。',
+    'alpha_num'            => ':attribute 只能由字母和数字组成。',
+    'array'                => ':attribute 必须是一个数组。',
+    'before'               => ':attribute 必须要早于 :date。',
+    'before_or_equal'      => ':attribute 必须要等于 :date 或更早。',
+    'between'              => [
+        'numeric' => ':attribute 必须介于 :min - :max 之间。',
+        'file'    => ':attribute 必须介于 :min - :max KB 之间。',
+        'string'  => ':attribute 必须介于 :min - :max 个字符之间。',
+        'array'   => ':attribute 必须只有 :min - :max 个单元。',
+    ],
+    'boolean'              => ':attribute 必须为布尔值。',
+    'confirmed'            => ':attribute 两次输入不一致。',
+    'date'                 => ':attribute 不是一个有效的日期。',
+    'date_equals'          => ':attribute 必须要等于 :date。',
+    'date_format'          => ':attribute 的格式必须为 :format。',
+    'different'            => ':attribute 和 :other 必须不同。',
+    'digits'               => ':attribute 必须是 :digits 位数字。',
+    'digits_between'       => ':attribute 必须是介于 :min 和 :max 位的数字。',
+    'dimensions'           => ':attribute 图片尺寸不正确。',
+    'distinct'             => ':attribute 已经存在。',
+    'email'                => ':attribute 不是一个合法的邮箱。',
+    'ends_with'            => ':attribute 必须以 :values 为结尾。',
+    'exists'               => ':attribute 不存在。',
+    'file'                 => ':attribute 必须是文件。',
+    'filled'               => ':attribute 不能为空。',
+    'gt'                   => [
+        'numeric' => ':attribute 必须大于 :value。',
+        'file'    => ':attribute 必须大于 :value KB。',
+        'string'  => ':attribute 必须多于 :value 个字符。',
+        'array'   => ':attribute 必须多于 :value 个元素。',
+    ],
+    'gte'                  => [
+        'numeric' => ':attribute 必须大于或等于 :value。',
+        'file'    => ':attribute 必须大于或等于 :value KB。',
+        'string'  => ':attribute 必须多于或等于 :value 个字符。',
+        'array'   => ':attribute 必须多于或等于 :value 个元素。',
+    ],
+    'image'                => ':attribute 必须是图片。',
+    'in'                   => '已选的属性 :attribute 无效。',
+    'in_array'             => ':attribute 必须在 :other 中。',
+    'integer'              => ':attribute 必须是整数。',
+    'ip'                   => ':attribute 必须是有效的 IP 地址。',
+    'ipv4'                 => ':attribute 必须是有效的 IPv4 地址。',
+    'ipv6'                 => ':attribute 必须是有效的 IPv6 地址。',
+    'json'                 => ':attribute 必须是正确的 JSON 格式。',
+    'lt'                   => [
+        'numeric' => ':attribute 必须小于 :value。',
+        'file'    => ':attribute 必须小于 :value KB。',
+        'string'  => ':attribute 必须少于 :value 个字符。',
+        'array'   => ':attribute 必须少于 :value 个元素。',
+    ],
+    'lte'                  => [
+        'numeric' => ':attribute 必须小于或等于 :value。',
+        'file'    => ':attribute 必须小于或等于 :value KB。',
+        'string'  => ':attribute 必须少于或等于 :value 个字符。',
+        'array'   => ':attribute 必须少于或等于 :value 个元素。',
+    ],
+    'max'                  => [
+        'numeric' => ':attribute 不能大于 :max。',
+        'file'    => ':attribute 不能大于 :max KB。',
+        'string'  => ':attribute 不能大于 :max 个字符。',
+        'array'   => ':attribute 最多只有 :max 个单元。',
+    ],
+    'mimes'                => ':attribute 必须是一个 :values 类型的文件。',
+    'mimetypes'            => ':attribute 必须是一个 :values 类型的文件。',
+    'min'                  => [
+        'numeric' => ':attribute 必须大于等于 :min。',
+        'file'    => ':attribute 大小不能小于 :min KB。',
+        'string'  => ':attribute 至少为 :min 个字符。',
+        'array'   => ':attribute 至少有 :min 个单元。',
+    ],
+    'multiple_of'          => 'The :attribute must be a multiple of :value',
+    'not_in'               => '已选的属性 :attribute 非法。',
+    'not_regex'            => ':attribute 的格式错误。',
+    'numeric'              => ':attribute 必须是一个数字。',
+    'password'             => '密码错误',
+    'present'              => ':attribute 必须存在。',
+    'regex'                => ':attribute 格式不正确。',
+    'required'             => ':attribute 不能为空。',
+    'required_if'          => '当 :other 为 :value 时 :attribute 不能为空。',
+    'required_unless'      => '当 :other 不为 :values 时 :attribute 不能为空。',
+    'required_with'        => '当 :values 存在时 :attribute 不能为空。',
+    'required_with_all'    => '当 :values 存在时 :attribute 不能为空。',
+    'required_without'     => '当 :values 不存在时 :attribute 不能为空。',
+    'required_without_all' => '当 :values 都不存在时 :attribute 不能为空。',
+    'same'                 => ':attribute 和 :other 必须相同。',
+    'size'                 => [
+        'numeric' => ':attribute 大小必须为 :size。',
+        'file'    => ':attribute 大小必须为 :size KB。',
+        'string'  => ':attribute 必须是 :size 个字符。',
+        'array'   => ':attribute 必须为 :size 个单元。',
+    ],
+    'starts_with'          => ':attribute 必须以 :values 为开头。',
+    'string'               => ':attribute 必须是一个字符串。',
+    'timezone'             => ':attribute 必须是一个合法的时区值。',
+    'unique'               => ':attribute 已经存在。',
+    'uploaded'             => ':attribute 上传失败。',
+    'url'                  => ':attribute 格式不正确。',
+    'uuid'                 => ':attribute 必须是有效的 UUID。',
+
+    'custom' => [
+        'attribute-name' => [
+            'rule-name' => 'custom-message',
+        ],
+    ],
+
+    'attributes' => [
+        'name'                  => '名称',
+        'nickname'              => '昵称',
+        'username'              => '用户名',
+        'email'                 => '邮箱',
+        'password'              => '密码',
+        'password_confirmation' => '确认密码',
+        'phone'                 => '电话',
+        'day'                   => '{1} 天|{2} 日',
+        'month'                 => '月',
+        'year'                  => '年',
+        'hour'                  => '{1} 时|{2} 点',
+        'minute'                => '分',
+        'second'                => '秒',
+        'title'                 => '标题',
+        'content'               => '内容',
+        'description'           => '描述',
+        'excerpt'               => '摘要',
+        'date'                  => '日期',
+        'time'                  => '时间',
+    ],
+];

+ 5 - 6
resources/lang/ko.json

@@ -1,21 +1,20 @@
 {
   "All rights reserved.": "버전 소유",
   "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 did not request a password reset, please ignore this email.": "암호 재설정을 요청하지 않은 경우 추가 작업이 필요하지 않습니다.",
   "If you’re having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "\":actionText\" 버튼을 클릭하는데 문제가 있는 경우 아래 URL을 복사하여 웹 브라우저에 붙여 넣으세요.",
-  "If your problem has not been solved, Feel free to open other one.": "문제가 해결되지 않은 경우 다른 해결방안을 살펴보세요",
+  "If your issue is not resolved, please create another ticket.": "문제가 해결되지 않은 경우 다른 해결방안을 살펴보세요",
   "Invoice Detail": "주문서 상세 내역",
-  "Nodes Daily Report": "회선 데이터 보고",
+  "Daily Data Usage Report": "회선 데이터 보고",
   "Payment for #:sn has been received! Total amount: :amount.": "您成功支付了订单#:sn,总金额为 :amount。",
   "Payment Received": "주문서 결제 성공",
   "Please click the button below to verify your email address.": "아래 버튼을 클릭하여 이메일을 인증하세요",
-  "Please click the button below to reset your password.": "비밀번호를 초기화하려면 아래 버튼을 누르십시오:",
+  "Please click on the button below to reset your password.": "비밀번호를 초기화하려면 아래 버튼을 누르십시오:",
   "Regards": "권장",
   "Reset Password Notification": "비밀번호 재설정 알림 ",
   "Reset Password": "비밀번호 재설정",
   "Send Password Reset Link": "비밀번호 재설정 링크 전송",
-  "Thanks for signing up! Before getting started, could you verify your email address by clicking on the link we just emailed to you? If you didn't receive the email, we will gladly send you another.": "회원가입 해주셔서 감사합니다! 시작하기 전에 이메일 계정으로 보낸 링크를 클릭해서 이메일을 확인해야 합니다! 만약 이메일을 받지 못했다면, 다시 전송해드리겠습니다.",
+  "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.": "회원가입 해주셔서 감사합니다! 시작하기 전에 이메일 계정으로 보낸 링크를 클릭해서 이메일을 확인해야 합니다! 만약 이메일을 받지 못했다면, 다시 전송해드리겠습니다.",
   "Too Many Attempts.": "너무 많이 시도하였습니다",
   "Too Many Requests": "요청이 횟수 많음",
   "Verify Email Address": "이메일 인증",

+ 11 - 53
resources/lang/ko/admin.php

@@ -123,7 +123,7 @@ return [
         'user_view'       => '用户视角',
         'connection_test' => '联网测试',
         'counts'          => '共 <code>:num</code> 个账号',
-        'reset_confirm'   => [0 => '确定重置 【', 1 => '】 流量吗?'],
+        'reset_confirm'   => [0 => '确定重置 【', 1 => '】 流量吗?'],
         'info'            => [
             'account'              => '账号信息',
             'proxy'                => '代理信息',
@@ -138,7 +138,7 @@ return [
         'group'           => [
             'title'  => '用户分组控制<small>(同一节点可分配至多个分组,一个用户只能属于一个分组;对于用户可见/可用节点:先按分组后按等级)</small>',
             'name'   => '分组名称',
-            'counts' => ' 共 <code>:num</code> 个分组',
+            'counts' => '共 <code>:num</code> 个分组',
         ],
     ],
     'zero_unlimited_hint' => '不设置/0,即为无限制',
@@ -363,13 +363,13 @@ return [
         'monthly_accounting'  => '月流水账簿',
         'annually_accounting' => '年流水账簿',
         'historic_accounting' => '历史流水账簿',
-        'current_month'       => ' 本 月 ',
-        'last_month'          => ' 上 月',
-        'current_year'        => ' 今 年 ',
-        'last_year'           => ' 去 年 ',
+        'current_month'       => '本 月',
+        'last_month'          => '上 月',
+        'current_year'        => '今 年',
+        'last_year'           => '去 年',
         'hourly_traffic'      => '每时流量',
         'daily_traffic'       => '每天流量',
-        'today'               => ' 本 日 ',
+        'today'               => '本 日',
     ],
     'permission'          => [
         'title'            => '权限行为列表',
@@ -491,7 +491,6 @@ return [
         'AppStore_password'             => '苹果密码',
         'auto_release_port'             => '端口回收机制',
         'bark_key'                      => 'Bark设备号',
-        'bitpay_secret',
         'captcha_key'                   => '验证码 Key',
         'captcha_secret'                => '验证码 Secret/ID',
         'codepay_id'                    => '码支付ID',
@@ -528,7 +527,6 @@ return [
         'is_free_code'                  => '免费邀请码',
         'is_invite_register'            => '邀请注册',
         'is_otherPay'                   => '特殊支付',
-        'is_push_bear',
         'is_QQPay'                      => 'QQ钱包',
         'is_rand_port'                  => '随机端口',
         'is_register'                   => '用户注册',
@@ -539,8 +537,6 @@ return [
         'maintenance_content'           => '维护介绍内容',
         'maintenance_mode'              => '维护模式',
         'maintenance_time'              => '维护结束时间',
-        'max_port',
-        'max_rand_traffic',
         'min_port'                      => '端口范围',
         'min_rand_traffic'              => '流量范围',
         'node_blocked_notification'     => '节点阻断提醒',
@@ -578,8 +574,7 @@ return [
         'stripe_secret_key'             => 'Secret Key',
         'stripe_signing_secret'         => 'WebHook Signing secret',
         'subject_name'                  => '自定义商品名称',
-        'subscribe_ban_times'           => '订阅请求阈值
-',
+        'subscribe_ban_times'           => '订阅请求阈值',
         'subscribe_domain'              => '节点订阅地址',
         'subscribe_max'                 => '订阅节点数',
         'telegram_token'                => 'Telegram Token',
@@ -621,30 +616,20 @@ return [
             'active_times'                  => '24小时内可以通过邮件激活账号次数',
             'admin_invite_days'             => '管理员生成邀请码的有效期',
             'aff_salt'                      => '留空时,邀请链接将显示用户ID;填入任意英文/数字 即可对用户链接ID进行加密',
-            'alipay_qrcode',
             'AppStore_id'                   => 'iOS软件设置教程中使用的苹果账号',
             'AppStore_password'             => 'iOS软件设置教程中使用的苹果密码',
             'auto_release_port'             => '被封禁/过期 <code>'.config('tasks.release_port').'</code> 天的账号端口自动释放',
             'bark_key'                      => '推送消息到iOS设备,需要在iOS设备里装一个名为Bark的应用,取网址后的一长串字符串,启用Bark,请务必填入本值',
-            'bitpay_secret',
             'captcha_key'                   => '浏览<a href="https://proxypanel.gitbook.io/wiki/captcha" target="_blank">设置指南</a>来设置',
-            'captcha_secret',
-            'codepay_id',
-            'codepay_key',
-            'codepay_url',
             '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服务商',
-            'ddns_secret',
             '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'               => '可选填!开启机器人[加签]就是必填项目!',
-            'epay_key',
-            'epay_mch_id',
-            'epay_url',
             'expire_days'                   => '【账号过期通知】开始阈值,每日通知用户',
             'f2fpay_app_id'                 => '即:APPID',
             'f2fpay_private_key'            => '生成秘钥软件生成时,产生的应用秘钥',
@@ -652,7 +637,6 @@ return [
             'forbid_mode'                   => '依据IP对对应地区进行阻拦,非阻拦地区可正常访问',
             'invite_num'                    => '用户可以生成的邀请码数',
             'is_activate_account'           => '启用后用户需要通过邮件来激活账号',
-            'is_AliPay',
             'is_ban_status'                 => '(慎重)封禁整个账号会重置账号的所有数据且会导致用户无法登录,不开启状态下只封禁用户代理',
             'is_captcha'                    => '启用后 登录/注册 需要进行验证码认证',
             'is_checkin'                    => '登录时将根据流量范围随机得到流量',
@@ -661,23 +645,15 @@ return [
             'is_email_filtering'            => '黑名单: 用户可使用任意黑名单外的邮箱注册;白名单:用户只能选择使用白名单中的邮箱后缀注册',
             'is_forbid_robot'               => '如果是机器人、爬虫、代理访问网站则会抛出404错误',
             'is_free_code'                  => '关闭后免费邀请码不可见',
-            'is_invite_register',
-            'is_otherPay',
-            'is_push_bear',
-            'is_QQPay',
             'is_rand_port'                  => '注册、添加用户时随机生成端口',
             'is_register'                   => '关闭后无法注册',
             'is_subscribe_ban'              => '启用后用户订阅链接请求超过设定阈值则自动封禁',
             'is_traffic_ban'                => '1小时内流量超过异常阈值则自动封号(仅禁用代理)',
-            'is_WeChatPay',
             'iYuu_token'                    => '启用爱语飞飞,请务必填入本值(<a href=http://iyuu.cn target=_blank>申请 IYUU令牌</a>)',
             'maintenance_content'           => '自定义维护内容信息',
             'maintenance_mode'              => "启用后,用户访问转移至维护界面 | 管理员使用 <a href='javascript:(0)'>:url</a> 登录",
             'maintenance_time'              => '用于维护界面倒计时',
-            'max_port',
-            'max_rand_traffic',
             'min_port'                      => '端口范围:1000 - 65535',
-            'min_rand_traffic',
             'node_blocked_notification'     => '每小时检测节点是否被阻断并提醒管理员',
             'node_daily_notification'       => '报告各节点流量昨日消耗情况',
             'node_offline_notification'     => '每10分钟检测节点离线并提醒管理员',
@@ -686,17 +662,10 @@ return [
             '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_key',
             'payjs_mch_id'                  => '在<a href="https://payjs.cn/dashboard/member" target="_blank">本界面</a>获取信息',
             'payment_confirm_notification'  => '用户使用人工支付后通知管理员处理订单',
             'payment_received_notification' => '用户支付订单后通知用户订单状态',
-            'paypal_app_id',
-            'paypal_certificate',
-            'paypal_password',
-            'paypal_secret',
-            'paypal_username',
-            'pushDeer_key'                  => '启用PushDeer,请务必填入本值(<a href=http://www.pushdeer.com/official.html
-                                    target=_blank>申请 Push Key</a>)',
+            'pushDeer_key'                  => '启用PushDeer,请务必填入本值(<a href=http://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'                  => '触发审计规则时访问请求被阻断并重定向至该地址',
@@ -708,20 +677,14 @@ return [
             '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>)",
+            'server_chan_key'               => '启用ServerChan,请务必填入本值(<a href=https://sc.ftqq.com target=_blank>申请 SCKEY</a>)',
             'standard_currency'             => '网站中涉及金钱部分的默认货币',
-            'stripe_public_key',
-            'stripe_secret_key',
-            'stripe_signing_secret',
             '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>)',
-            'theadpay_key',
-            'theadpay_mchid',
-            'theadpay_url',
             'ticket_closed_notification'    => '工单关闭通知用户',
             'ticket_created_notification'   => '新工单通知管理/用户,取决于谁创建了新工单',
             'ticket_replied_notification'   => '工单回复通知对方',
@@ -729,17 +692,13 @@ return [
             'traffic_ban_value'             => '1小时内超过该值,则触发自动封号',
             'traffic_limit_time'            => '间隔多久才可以再次签到',
             'traffic_warning_percent'       => '【流量耗尽通知】开始阈值,每日通知用户',
-            'trojan_license',
             'username_type'                 => '规范站点用户账号的类型,默认为电子邮箱',
             'user_invite_days'              => '用户自行生成邀请的有效期',
-            'v2ray_license',
             'v2ray_tls_provider'            => '后端自动签发/载入TLS证书时用(节点的设置值优先级高于此处)',
             'webmaster_email'               => '错误提示时会提供管理员邮箱作为联系方式',
             'website_analytics'             => '统计JS',
             'website_callback_url'          => '防止因为网站域名被DNS投毒后导致支付无法正常回调,需带http://或https://',
             'website_customer_service'      => '客服JS',
-            'website_home_logo',
-            'website_logo',
             'website_name'                  => '发邮件时展示',
             'website_security_code'         => '非空时必须通过<a href=":url" target="_blank">安全入口</a>加上安全码才可访问',
             'website_url'                   => '生成重置密码、在线支付必备',
@@ -747,7 +706,6 @@ return [
             '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_qrcode',
             'wechat_secret'                 => '应用的Secret(可能需要下载企业微信才能查看)',
             'wechat_token'                  => '应用管理->应用->设置API接收->TOKEN,URL设置::url',
         ],
@@ -841,4 +799,4 @@ return [
     'query'               => '查 询',
     'optional'            => '옵션',
     'require'             => '必须',
-];
+];

+ 3 - 4
resources/lang/ko/model.php

@@ -53,7 +53,7 @@ return [
     ],
     'oauth'            => [
         'type'       => '渠道',
-        'identifier' => ' 唯一标识',
+        'identifier' => '唯一标识',
     ],
     'user_group'       => [
         'attribute' => '用戶分组',
@@ -118,7 +118,7 @@ return [
     ],
     'order'            => [
         'attribute'      => '주문서',
-        'id'             => '订单ID',
+        'id'             => '주문 번호',
         'original_price' => '原价',
         'price'          => '实价',
         'pay_way'        => '결제 방식',
@@ -196,7 +196,6 @@ return [
     ],
     'aff'              => [
         'invitee'    => '소비자',
-        'order_id'   => '주문 번호',
         'amount'     => '소비금액',
         'commission' => '반려금액',
         'updated_at' => '处理时间',
@@ -236,4 +235,4 @@ return [
         'amount'     => '发生金额',
         'created_at' => '发生时间',
     ],
-];
+];

+ 1 - 1
resources/lang/ko/notification.php

@@ -32,4 +32,4 @@ return [
         'download' => '다운로드',
         'total'    => '종합',
     ],
-];
+];

+ 5 - 6
resources/lang/vi.json

@@ -1,21 +1,20 @@
 {
   "All rights reserved.": "版本所有。",
   "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 did not request a password reset, please ignore this email.": "如果您未申请重设密码,请忽略此邮件。",
   "If you’re having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "如果您点击「:actionText」按钮时出现问题,请复制下方链接到浏览器中开启:",
-  "If your problem has not been solved, Feel free to open other one.": "如果您的问题尚未解决,请另开工单解决。",
+  "If your issue is not resolved, please create another ticket.": "如果您的问题尚未解决,请另开工单解决。",
   "Invoice Detail": "订单明细",
-  "Nodes Daily Report": "线路每日流量报告",
+  "Daily Data Usage Report": "线路每日流量报告",
   "Payment for #:sn has been received! Total amount: :amount.": "您成功支付了订单#:sn,总金额为 :amount。",
   "Payment Received": "账单付款成功",
   "Please click the button below to verify your email address.": "请点击下面按钮验证您的 E-mail:",
-  "Please click the button below to reset your password.": "请点击下面按钮重置您的密码:",
+  "Please click on the button below to reset your password.": "请点击下面按钮重置您的密码:",
   "Regards": "致敬",
   "Reset Password Notification": "重设密码通知",
   "Reset Password": "重设密码",
   "Send Password Reset Link": "发送重设密码链接",
-  "Thanks for signing up! Before getting started, could you verify your email address by clicking on the link we just emailed to you? If you didn't receive the email, we will gladly send you another.": "感谢您的注册! 在开始之前,您需要通过点击我们刚刚发送至您邮箱中的链接来验证您的电子邮件! 如果您没有收到电子邮件,我们很乐意再发送一封给您。",
+  "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.": "感谢您的注册! 在开始之前,您需要通过点击我们刚刚发送至您邮箱中的链接来验证您的电子邮件! 如果您没有收到电子邮件,我们很乐意再发送一封给您。",
   "Too Many Attempts.": "尝试次数过多",
   "Too Many Requests": "请求次数过多",
   "Verify Email Address": "验证 E-mail",

+ 21 - 63
resources/lang/vi/admin.php

@@ -11,7 +11,7 @@ return [
         'expiring_users'          => '临近到期',
         'overuse_users'           => '流量大户(超过90%的用户)',
         'abnormal_users'          => '1小时内流量异常',
-        'nodes'                   => '节点',
+        'nodes'                   => 'Node',
         'maintaining_nodes'       => '维护中的节点',
         'traffic_consumed'        => '记录的消耗流量',
         'traffic_days_consumed'   => ':days 日内消耗流量',
@@ -38,7 +38,7 @@ return [
             'attribute'  => '用户系统',
             'list'       => '用户管理',
             'oauth'      => '用户授权',
-            'group'      => '用戶分组',
+            'group'      => 'Nhóm người dùng',
             'credit_log' => '余额变动',
             'subscribe'  => '订阅管理',
         ],
@@ -63,7 +63,7 @@ return [
         'rule'             => [
             'attribute' => '审计规则',
             'list'      => '规则列表',
-            'group'     => '规则分组',
+            'group'     => 'Nhóm quy tắc',
             'trigger'   => '触发记录',
         ],
         'shop'             => [
@@ -85,7 +85,7 @@ return [
         ],
         'log'              => [
             'attribute'        => '日志系统',
-            'traffic'          => '流量使用',
+            'traffic'          => 'Đã sử dụng',
             'traffic_flow'     => '流量变动',
             'service_ban'      => '封禁记录',
             'online_logs'      => '在线记录',
@@ -123,7 +123,7 @@ return [
         'user_view'       => '用户视角',
         'connection_test' => '联网测试',
         'counts'          => '共 <code>:num</code> 个账号',
-        'reset_confirm'   => [0 => '确定重置 【', 1 => '】 流量吗?'],
+        'reset_confirm'   => [0 => '确定重置 【', 1 => '】 流量吗?'],
         'info'            => [
             'account'              => '账号信息',
             'proxy'                => '代理信息',
@@ -137,8 +137,8 @@ return [
         'proxies_config'  => '【:username】连接配置信息',
         'group'           => [
             'title'  => '用户分组控制<small>(同一节点可分配至多个分组,一个用户只能属于一个分组;对于用户可见/可用节点:先按分组后按等级)</small>',
-            'name'   => '分组名称',
-            'counts' => ' 共 <code>:num</code> 个分组',
+            'name'   => 'Tên nhóm',
+            'counts' => '共 <code>:num</code> 个分组',
         ],
     ],
     'zero_unlimited_hint' => '不设置/0,即为无限制',
@@ -287,7 +287,7 @@ return [
         ],
         'user_traffic'           => [
             'title'       => '流量使用记录',
-            'choose_node' => '选择节点',
+            'choose_node' => 'Chọn Node',
         ],
         'user_data_modify_title' => '流量变动记录',
         'callback'               => '回调日志 <small>(在线支付)</small>',
@@ -301,7 +301,7 @@ return [
             'title'           => '用户封禁记录',
             'time'            => '时长',
             'reason'          => '理由',
-            'ban_time'        => '封禁时间',
+            'ban_time'        => 'Thời gian chặn',
             'last_connect_at' => '最后连接时间',
         ],
         'credit_title'           => '余额变动记录',
@@ -339,7 +339,7 @@ return [
             'reg'      => '正则表达式',
             'domain'   => '域名',
             'ip'       => 'IP',
-            'protocol' => '协议',
+            'protocol' => 'Giao thức',
         ],
         'counts' => '共 <code>:num</code> 条审计规则',
         'title'  => '规则列表',
@@ -348,7 +348,7 @@ return [
                 'off' => '阻断',
                 'on'  => '放行',
             ],
-            'title'  => '规则分组',
+            'title'  => 'Nhóm quy tắc',
             'counts' => '共 <code>:num</code> 个分组',
         ],
     ],
@@ -363,13 +363,13 @@ return [
         'monthly_accounting'  => '月流水账簿',
         'annually_accounting' => '年流水账簿',
         'historic_accounting' => '历史流水账簿',
-        'current_month'       => ' 本 月 ',
-        'last_month'          => ' 上 月',
-        'current_year'        => ' 今 年 ',
-        'last_year'           => ' 去 年 ',
+        'current_month'       => '本 月',
+        'last_month'          => '上 月',
+        'current_year'        => '今 年',
+        'last_year'           => '去 年',
         'hourly_traffic'      => '每时流量',
         'daily_traffic'       => '每天流量',
-        'today'               => ' 本 日 ',
+        'today'               => '本 日',
     ],
     'permission'          => [
         'title'            => '权限行为列表',
@@ -460,7 +460,7 @@ return [
         'email'         => [
             'title'            => '邮箱过滤列表 <small>(用于屏蔽注册邮箱后缀)</small>',
             'tail'             => '邮箱后缀',
-            'rule'             => '规则',
+            'rule'             => 'Quy tắc',
             'black'            => '黑名单',
             'white'            => '白名单',
             'tail_placeholder' => '请填入邮箱后缀',
@@ -491,7 +491,6 @@ return [
         'AppStore_password'             => '苹果密码',
         'auto_release_port'             => '端口回收机制',
         'bark_key'                      => 'Bark设备号',
-        'bitpay_secret',
         'captcha_key'                   => '验证码 Key',
         'captcha_secret'                => '验证码 Secret/ID',
         'codepay_id'                    => '码支付ID',
@@ -528,7 +527,6 @@ return [
         'is_free_code'                  => '免费邀请码',
         'is_invite_register'            => '邀请注册',
         'is_otherPay'                   => '特殊支付',
-        'is_push_bear',
         'is_QQPay'                      => 'QQ钱包',
         'is_rand_port'                  => '随机端口',
         'is_register'                   => '用户注册',
@@ -539,8 +537,6 @@ return [
         'maintenance_content'           => '维护介绍内容',
         'maintenance_mode'              => '维护模式',
         'maintenance_time'              => '维护结束时间',
-        'max_port',
-        'max_rand_traffic',
         'min_port'                      => '端口范围',
         'min_rand_traffic'              => '流量范围',
         'node_blocked_notification'     => '节点阻断提醒',
@@ -578,8 +574,7 @@ return [
         'stripe_secret_key'             => 'Secret Key',
         'stripe_signing_secret'         => 'WebHook Signing secret',
         'subject_name'                  => '自定义商品名称',
-        'subscribe_ban_times'           => '订阅请求阈值
-',
+        'subscribe_ban_times'           => '订阅请求阈值',
         'subscribe_domain'              => '节点订阅地址',
         'subscribe_max'                 => '订阅节点数',
         'telegram_token'                => 'Telegram Token',
@@ -621,30 +616,20 @@ return [
             'active_times'                  => '24小时内可以通过邮件激活账号次数',
             'admin_invite_days'             => '管理员生成邀请码的有效期',
             'aff_salt'                      => '留空时,邀请链接将显示用户ID;填入任意英文/数字 即可对用户链接ID进行加密',
-            'alipay_qrcode',
             'AppStore_id'                   => 'iOS软件设置教程中使用的苹果账号',
             'AppStore_password'             => 'iOS软件设置教程中使用的苹果密码',
             'auto_release_port'             => '被封禁/过期 <code>'.config('tasks.release_port').'</code> 天的账号端口自动释放',
             'bark_key'                      => '推送消息到iOS设备,需要在iOS设备里装一个名为Bark的应用,取网址后的一长串字符串,启用Bark,请务必填入本值',
-            'bitpay_secret',
             'captcha_key'                   => '浏览<a href="https://proxypanel.gitbook.io/wiki/captcha" target="_blank">设置指南</a>来设置',
-            'captcha_secret',
-            'codepay_id',
-            'codepay_key',
-            'codepay_url',
             '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服务商',
-            'ddns_secret',
             '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'               => '可选填!开启机器人[加签]就是必填项目!',
-            'epay_key',
-            'epay_mch_id',
-            'epay_url',
             'expire_days'                   => '【账号过期通知】开始阈值,每日通知用户',
             'f2fpay_app_id'                 => '即:APPID',
             'f2fpay_private_key'            => '生成秘钥软件生成时,产生的应用秘钥',
@@ -652,7 +637,6 @@ return [
             'forbid_mode'                   => '依据IP对对应地区进行阻拦,非阻拦地区可正常访问',
             'invite_num'                    => '用户可以生成的邀请码数',
             'is_activate_account'           => '启用后用户需要通过邮件来激活账号',
-            'is_AliPay',
             'is_ban_status'                 => '(慎重)封禁整个账号会重置账号的所有数据且会导致用户无法登录,不开启状态下只封禁用户代理',
             'is_captcha'                    => '启用后 登录/注册 需要进行验证码认证',
             'is_checkin'                    => '登录时将根据流量范围随机得到流量',
@@ -661,23 +645,15 @@ return [
             'is_email_filtering'            => '黑名单: 用户可使用任意黑名单外的邮箱注册;白名单:用户只能选择使用白名单中的邮箱后缀注册',
             'is_forbid_robot'               => '如果是机器人、爬虫、代理访问网站则会抛出404错误',
             'is_free_code'                  => '关闭后免费邀请码不可见',
-            'is_invite_register',
-            'is_otherPay',
-            'is_push_bear',
-            'is_QQPay',
             'is_rand_port'                  => '注册、添加用户时随机生成端口',
             'is_register'                   => '关闭后无法注册',
             'is_subscribe_ban'              => '启用后用户订阅链接请求超过设定阈值则自动封禁',
             'is_traffic_ban'                => '1小时内流量超过异常阈值则自动封号(仅禁用代理)',
-            'is_WeChatPay',
             'iYuu_token'                    => '启用爱语飞飞,请务必填入本值(<a href=http://iyuu.cn target=_blank>申请 IYUU令牌</a>)',
             'maintenance_content'           => '自定义维护内容信息',
             'maintenance_mode'              => "启用后,用户访问转移至维护界面 | 管理员使用 <a href='javascript:(0)'>:url</a> 登录",
             'maintenance_time'              => '用于维护界面倒计时',
-            'max_port',
-            'max_rand_traffic',
             'min_port'                      => '端口范围:1000 - 65535',
-            'min_rand_traffic',
             'node_blocked_notification'     => '每小时检测节点是否被阻断并提醒管理员',
             'node_daily_notification'       => '报告各节点流量昨日消耗情况',
             'node_offline_notification'     => '每10分钟检测节点离线并提醒管理员',
@@ -686,17 +662,10 @@ return [
             '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_key',
             'payjs_mch_id'                  => '在<a href="https://payjs.cn/dashboard/member" target="_blank">本界面</a>获取信息',
             'payment_confirm_notification'  => '用户使用人工支付后通知管理员处理订单',
             'payment_received_notification' => '用户支付订单后通知用户订单状态',
-            'paypal_app_id',
-            'paypal_certificate',
-            'paypal_password',
-            'paypal_secret',
-            'paypal_username',
-            'pushDeer_key'                  => '启用PushDeer,请务必填入本值(<a href=http://www.pushdeer.com/official.html
-                                    target=_blank>申请 Push Key</a>)',
+            'pushDeer_key'                  => '启用PushDeer,请务必填入本值(<a href=http://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'                  => '触发审计规则时访问请求被阻断并重定向至该地址',
@@ -708,20 +677,14 @@ return [
             '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>)",
+            'server_chan_key'               => '启用ServerChan,请务必填入本值(<a href=https://sc.ftqq.com target=_blank>申请 SCKEY</a>)',
             'standard_currency'             => '网站中涉及金钱部分的默认货币',
-            'stripe_public_key',
-            'stripe_secret_key',
-            'stripe_signing_secret',
             '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>)',
-            'theadpay_key',
-            'theadpay_mchid',
-            'theadpay_url',
             'ticket_closed_notification'    => '工单关闭通知用户',
             'ticket_created_notification'   => '新工单通知管理/用户,取决于谁创建了新工单',
             'ticket_replied_notification'   => '工单回复通知对方',
@@ -729,17 +692,13 @@ return [
             'traffic_ban_value'             => '1小时内超过该值,则触发自动封号',
             'traffic_limit_time'            => '间隔多久才可以再次签到',
             'traffic_warning_percent'       => '【流量耗尽通知】开始阈值,每日通知用户',
-            'trojan_license',
             'username_type'                 => '规范站点用户账号的类型,默认为电子邮箱',
             'user_invite_days'              => '用户自行生成邀请的有效期',
-            'v2ray_license',
             'v2ray_tls_provider'            => '后端自动签发/载入TLS证书时用(节点的设置值优先级高于此处)',
             'webmaster_email'               => '错误提示时会提供管理员邮箱作为联系方式',
             'website_analytics'             => '统计JS',
             'website_callback_url'          => '防止因为网站域名被DNS投毒后导致支付无法正常回调,需带http://或https://',
             'website_customer_service'      => '客服JS',
-            'website_home_logo',
-            'website_logo',
             'website_name'                  => '发邮件时展示',
             'website_security_code'         => '非空时必须通过<a href=":url" target="_blank">安全入口</a>加上安全码才可访问',
             'website_url'                   => '生成重置密码、在线支付必备',
@@ -747,7 +706,6 @@ return [
             '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_qrcode',
             'wechat_secret'                 => '应用的Secret(可能需要下载企业微信才能查看)',
             'wechat_token'                  => '应用管理->应用->设置API接收->TOKEN,URL设置::url',
         ],
@@ -841,4 +799,4 @@ return [
     'query'               => '查 询',
     'optional'            => '可选',
     'require'             => '必须',
-];
+];

+ 5 - 5
resources/lang/vi/common.php

@@ -1,8 +1,8 @@
 <?php
 
 return [
-    'account'         => '账号',
-    'available_date'  => '有效期',
+    'account'         => 'Tài khoản',
+    'available_date'  => 'Thời gian hiệu lực',
     'created_at'      => '创建时间',
     'expired_at'      => '到期时间',
     'updated_at'      => '更新时间',
@@ -30,7 +30,7 @@ return [
     'generate'        => '生 成',
     'generate_item'   => '生成:attribute',
     'to_safari'       => [0 => '点击右上角', 1 => ',选择在', 2 => 'Safari 中打开', 3 => '就可以正常访问本站了哟!'],
-    'update_browser'  => [0 => '您正在使用', 1 => '过时', 2 => ' 的浏览器。 请', 3 => '升级您的浏览器', 4 => '来获得最佳的浏览体验'],
+    'update_browser'  => [0 => '您正在使用', 1 => '过时', 2 => '的浏览器。 请', 3 => '升级您的浏览器', 4 => '来获得最佳的浏览体验'],
     'apply'           => '应 用',
     'avatar'          => '头像',
     'customize'       => '自定义',
@@ -75,8 +75,8 @@ return [
     'print'           => '打印',
     'unlimited'       => '无限制',
     'payment'         => [
-        'credit' => '余额',
-        'wechat' => '微信',
+        'credit' => 'Số dư',
+        'wechat' => 'WeChat',
         'alipay' => '支付宝',
         'crypto' => '虚拟货币',
         'manual' => '人工支付',

+ 85 - 86
resources/lang/vi/model.php

@@ -2,69 +2,69 @@
 
 return [
     'user'             => [
-        'id'             => '用户ID',
-        'attribute'      => '用户',
-        'nickname'       => '昵称',
-        'username'       => '账号',
-        'password'       => '密码',
-        'credit'         => '余额',
-        'invite_num'     => '可用邀请码',
-        'reset_date'     => '重置日',
-        'port'           => '端口',
-        'traffic_used'   => '流量使用',
-        'service'        => '代理',
-        'group'          => '分组',
-        'level'          => '等级',
-        'account_status' => '账号状态',
-        'proxy_status'   => '代理状态',
-        'expired_date'   => '过期日',
-        'role'           => '角色权限',
-        'wechat'         => '微信',
+        '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',
+        'level'          => 'Cấp',
+        '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'         => '备注',
+        'remark'         => 'Ghi chú',
         'uuid'           => 'VMess UUID',
-        'proxy_passwd'   => '密码',
-        'proxy_method'   => '加密方式',
-        'usable_traffic' => '可用流量',
-        'proxy_protocol' => '协议',
-        'proxy_obfs'     => '混淆',
-        'speed_limit'    => '用户限速',
-        'inviter'        => '邀请人',
-        'created_date'   => '注册时间',
+        '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'      => '扩展',
-        'sort'        => '排序',
-        'description' => '描述',
+        'extend'      => 'Mở rộng',
+        'sort'        => 'Sắp xếp',
+        'description' => 'Mô tả',
     ],
     'country'          => [
-        'code' => 'ISO国家代码',
-        'icon' => '图 标',
-        'name' => '国家/地区名称',
+        'code' => 'Mã quốc gia ISO',
+        'icon' => 'Biểu tượng',
+        'name' => 'Tên quốc gia',
     ],
     'subscribe'        => [
-        'code'       => '订阅码',
-        'req_times'  => '请求次数',
-        'updated_at' => '最后请求时间',
-        'ban_time'   => '封禁时间',
-        'ban_desc'   => '封禁理由',
-        'req_ip'     => '请求IP',
-        'req_header' => '访问',
+        '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'       => '渠道',
-        'identifier' => ' 唯一标识',
+        'type'       => 'Kênh',
+        'identifier' => 'Identifier',
     ],
     'user_group'       => [
-        'attribute' => '用戶分组',
-        'name'      => '分组名称',
-        'nodes'     => '选择节点',
+        'attribute' => 'Nhóm người dùng',
+        'name'      => 'Tên nhóm',
+        'nodes'     => 'Chọn Node',
     ],
     'node'             => [
-        'attribute'       => '节点',
-        'id'              => '节点ID',
-        'type'            => '类型',
-        'name'            => '名称',
+        'attribute'       => 'Node',
+        'id'              => 'NodeID',
+        'type'            => 'Loại',
+        'name'            => 'Tên',
         'domain'          => '域名',
         'static'          => '存活',
         'online_user'     => '在线',
@@ -74,7 +74,7 @@ return [
         'ipv4'            => 'IPv4地址',
         'ipv6'            => 'IPv6地址',
         'push_port'       => '消息推送端口',
-        'level'           => '等级',
+        'level'           => 'Cấp độ',
         'rule_group'      => '审计分组',
         'traffic_limit'   => '节点限速',
         'client_limit'    => '设备数限制',
@@ -83,10 +83,10 @@ return [
         'udp'             => 'UDP',
         'display'         => '显示 与 订阅',
         'detection'       => '节点阻断检测',
-        'method'          => '加密方式',
-        'protocol'        => '协议',
+        'method'          => 'Mã hoá',
+        'protocol'        => 'Giao thức',
         'protocol_param'  => '协议参数',
-        'obfs'            => '混淆',
+        'obfs'            => 'Confuse',
         'obfs_param'      => '混淆参数',
         'single'          => '单端口',
         'transfer'        => '中 转',
@@ -118,46 +118,46 @@ return [
     ],
     'order'            => [
         'attribute'      => '订单',
-        'id'             => '订单ID',
+        'id'             => '订单',
         'original_price' => '原价',
-        'price'          => '实价',
-        'pay_way'        => '支付方式',
-        'status'         => '订单状态',
+        'price'          => 'Giá',
+        'pay_way'        => 'Phương thức thanh toán',
+        'status'         => 'Trạng thái',
     ],
     'goods'            => [
-        'attribute'      => '商品',
-        'type'           => '类型',
-        'name'           => '名称',
-        'price'          => '售价',
-        'category'       => '分类',
-        'level'          => '等级',
-        'renew'          => '流量重置价格',
-        'user_limit'     => '用户限速',
-        'period'         => '重置周期',
-        'traffic'        => '流量额度',
-        'invite_num'     => '赠送邀请码数量',
-        'limit_num'      => '限购数量',
-        'available_date' => '有效期',
-        'hot'            => '热销',
-        'color'          => '颜色',
-        'logo'           => '商品图片',
-        'info'           => '自定义列表',
+        'attribute'      => 'Sản phẩm',
+        'type'           => 'Loại',
+        'name'           => 'Tên',
+        'price'          => 'Giá',
+        'category'       => 'Danh mục',
+        'level'          => 'Cấp độ',
+        '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' => '规则',
-        'type'      => '类型',
-        'name'      => '描述',
-        'pattern'   => '',
+        'attribute' => 'Quy tắc',
+        'type'      => 'Loại',
+        'name'      => 'Mô tả',
+        'pattern'   => 'Giá trí',
     ],
     'rule_group'       => [
-        'attribute' => '规则分组',
-        'name'      => '分组名称',
+        'attribute' => 'Nhóm quy tắc',
+        'name'      => 'Tên nhóm',
         'type'      => '审计模式',
         'rules'     => '选择规则',
     ],
     'role'             => [
         'attribute'   => '角色',
-        'name'        => '名称',
+        'name'        => 'Tên',
         'permissions' => '权限',
     ],
     'permission'       => [
@@ -179,7 +179,7 @@ return [
         'name'               => '卡券名称',
         'sn'                 => '使用券码',
         'logo'               => '卡券图片',
-        'type'               => '类型',
+        'type'               => 'Loại',
         'value'              => '优惠额度',
         'priority'           => '权 重',
         'usable_times'       => '使用次数',
@@ -196,7 +196,6 @@ return [
     ],
     'aff'              => [
         'invitee'    => '消费者',
-        'order_id'   => '订单号',
         'amount'     => '消费金额',
         'commission' => '返利金额',
         'updated_at' => '处理时间',
@@ -209,7 +208,7 @@ return [
         'id'         => '申请单ID',
     ],
     'notification'     => [
-        'type'       => '类型',
+        'type'       => 'Loại',
         'address'    => '收信地址',
         'created_at' => '投递时间',
         'status'     => '投递状态',
@@ -227,7 +226,7 @@ return [
     'user_data_modify' => [
         'before'      => '变动前流量',
         'after'       => '变动后流量',
-        'description' => '描述',
+        'description' => 'Mô tả',
         'created_at'  => '发生时间',
     ],
     'user_credit'      => [
@@ -236,4 +235,4 @@ return [
         'amount'     => '发生金额',
         'created_at' => '发生时间',
     ],
-];
+];

+ 1 - 1
resources/lang/vi/notification.php

@@ -32,4 +32,4 @@ return [
         'download' => '下载',
         'total'    => '总计',
     ],
-];
+];

+ 5 - 5
resources/lang/zh_CN.json

@@ -1,21 +1,21 @@
 {
   "All rights reserved.": "版本所有。",
   "Hello!": "您好:",
-  "If you did not create an account, no further action is required.": "如果您未注册帐号,请忽略此邮件。",
+  "If you did not request a password reset, please ignore this 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」按钮时出现问题,请复制下方链接到浏览器中开启:",
-  "If your problem has not been solved, Feel free to open other one.": "如果您的问题尚未解决,请另开工单解决。",
+  "If your issue is not resolved, please create another ticket.": "如果您的问题尚未解决,请另开工单解决。",
   "Invoice Detail": "订单明细",
-  "Nodes Daily Report": "线路每日流量报告",
+  "Daily Data Usage Report": "线路每日流量报告",
   "Payment for #:sn has been received! Total amount: :amount.": "您成功支付了订单#:sn,总金额为 :amount。",
   "Payment Received": "账单付款成功",
   "Please click the button below to verify your email address.": "请点击下面按钮验证您的 E-mail:",
-  "Please click the button below to reset your password.": "请点击下面按钮重置您的密码:",
+  "Please click on the button below to reset your password.": "请点击下面按钮重置您的密码:",
   "Regards": "致敬",
   "Reset Password Notification": "重设密码通知",
   "Reset Password": "重设密码",
   "Send Password Reset Link": "发送重设密码链接",
-  "Thanks for signing up! Before getting started, could you verify your email address by clicking on the link we just emailed to you? If you didn't receive the email, we will gladly send you another.": "感谢您的注册! 在开始之前,您需要通过点击我们刚刚发送至您邮箱中的链接来验证您的电子邮件! 如果您没有收到电子邮件,我们很乐意再发送一封给您。",
+  "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.": "感谢您的注册! 在开始之前,您需要通过点击我们刚刚发送至您邮箱中的链接来验证您的电子邮件! 如果您没有收到电子邮件,我们很乐意再发送一封给您。",
   "Too Many Attempts.": "尝试次数过多",
   "Too Many Requests": "请求次数过多",
   "Verify Email Address": "验证 E-mail",

+ 11 - 53
resources/lang/zh_CN/admin.php

@@ -123,7 +123,7 @@ return [
         'user_view'       => '用户视角',
         'connection_test' => '联网测试',
         'counts'          => '共 <code>:num</code> 个账号',
-        'reset_confirm'   => [0 => '确定重置 【', 1 => '】 流量吗?'],
+        'reset_confirm'   => [0 => '确定重置 【', 1 => '】 流量吗?'],
         'info'            => [
             'account'              => '账号信息',
             'proxy'                => '代理信息',
@@ -138,7 +138,7 @@ return [
         'group'           => [
             'title'  => '用户分组控制<small>(同一节点可分配至多个分组,一个用户只能属于一个分组;对于用户可见/可用节点:先按分组后按等级)</small>',
             'name'   => '分组名称',
-            'counts' => ' 共 <code>:num</code> 个分组',
+            'counts' => '共 <code>:num</code> 个分组',
         ],
     ],
     'zero_unlimited_hint' => '不设置/0,即为无限制',
@@ -363,13 +363,13 @@ return [
         'monthly_accounting'  => '月流水账簿',
         'annually_accounting' => '年流水账簿',
         'historic_accounting' => '历史流水账簿',
-        'current_month'       => ' 本 月 ',
-        'last_month'          => ' 上 月',
-        'current_year'        => ' 今 年 ',
-        'last_year'           => ' 去 年 ',
+        'current_month'       => '本 月',
+        'last_month'          => '上 月',
+        'current_year'        => '今 年',
+        'last_year'           => '去 年',
         'hourly_traffic'      => '每时流量',
         'daily_traffic'       => '每天流量',
-        'today'               => ' 本 日 ',
+        'today'               => '本 日',
     ],
     'permission'          => [
         'title'            => '权限行为列表',
@@ -491,7 +491,6 @@ return [
         'AppStore_password'             => '苹果密码',
         'auto_release_port'             => '端口回收机制',
         'bark_key'                      => 'Bark设备号',
-        'bitpay_secret',
         'captcha_key'                   => '验证码 Key',
         'captcha_secret'                => '验证码 Secret/ID',
         'codepay_id'                    => '码支付ID',
@@ -528,7 +527,6 @@ return [
         'is_free_code'                  => '免费邀请码',
         'is_invite_register'            => '邀请注册',
         'is_otherPay'                   => '特殊支付',
-        'is_push_bear',
         'is_QQPay'                      => 'QQ钱包',
         'is_rand_port'                  => '随机端口',
         'is_register'                   => '用户注册',
@@ -539,8 +537,6 @@ return [
         'maintenance_content'           => '维护介绍内容',
         'maintenance_mode'              => '维护模式',
         'maintenance_time'              => '维护结束时间',
-        'max_port',
-        'max_rand_traffic',
         'min_port'                      => '端口范围',
         'min_rand_traffic'              => '流量范围',
         'node_blocked_notification'     => '节点阻断提醒',
@@ -578,8 +574,7 @@ return [
         'stripe_secret_key'             => 'Secret Key',
         'stripe_signing_secret'         => 'WebHook Signing secret',
         'subject_name'                  => '自定义商品名称',
-        'subscribe_ban_times'           => '订阅请求阈值
-',
+        'subscribe_ban_times'           => '订阅请求阈值',
         'subscribe_domain'              => '节点订阅地址',
         'subscribe_max'                 => '订阅节点数',
         'telegram_token'                => 'Telegram Token',
@@ -621,30 +616,20 @@ return [
             'active_times'                  => '24小时内可以通过邮件激活账号次数',
             'admin_invite_days'             => '管理员生成邀请码的有效期',
             'aff_salt'                      => '留空时,邀请链接将显示用户ID;填入任意英文/数字 即可对用户链接ID进行加密',
-            'alipay_qrcode',
             'AppStore_id'                   => 'iOS软件设置教程中使用的苹果账号',
             'AppStore_password'             => 'iOS软件设置教程中使用的苹果密码',
             'auto_release_port'             => '被封禁/过期 <code>'.config('tasks.release_port').'</code> 天的账号端口自动释放',
             'bark_key'                      => '推送消息到iOS设备,需要在iOS设备里装一个名为Bark的应用,取网址后的一长串字符串,启用Bark,请务必填入本值',
-            'bitpay_secret',
             'captcha_key'                   => '浏览<a href="https://proxypanel.gitbook.io/wiki/captcha" target="_blank">设置指南</a>来设置',
-            'captcha_secret',
-            'codepay_id',
-            'codepay_key',
-            'codepay_url',
             '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服务商',
-            'ddns_secret',
             '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'               => '可选填!开启机器人[加签]就是必填项目!',
-            'epay_key',
-            'epay_mch_id',
-            'epay_url',
             'expire_days'                   => '【账号过期通知】开始阈值,每日通知用户',
             'f2fpay_app_id'                 => '即:APPID',
             'f2fpay_private_key'            => '生成秘钥软件生成时,产生的应用秘钥',
@@ -652,7 +637,6 @@ return [
             'forbid_mode'                   => '依据IP对对应地区进行阻拦,非阻拦地区可正常访问',
             'invite_num'                    => '用户可以生成的邀请码数',
             'is_activate_account'           => '启用后用户需要通过邮件来激活账号',
-            'is_AliPay',
             'is_ban_status'                 => '(慎重)封禁整个账号会重置账号的所有数据且会导致用户无法登录,不开启状态下只封禁用户代理',
             'is_captcha'                    => '启用后 登录/注册 需要进行验证码认证',
             'is_checkin'                    => '登录时将根据流量范围随机得到流量',
@@ -661,23 +645,15 @@ return [
             'is_email_filtering'            => '黑名单: 用户可使用任意黑名单外的邮箱注册;白名单:用户只能选择使用白名单中的邮箱后缀注册',
             'is_forbid_robot'               => '如果是机器人、爬虫、代理访问网站则会抛出404错误',
             'is_free_code'                  => '关闭后免费邀请码不可见',
-            'is_invite_register',
-            'is_otherPay',
-            'is_push_bear',
-            'is_QQPay',
             'is_rand_port'                  => '注册、添加用户时随机生成端口',
             'is_register'                   => '关闭后无法注册',
             'is_subscribe_ban'              => '启用后用户订阅链接请求超过设定阈值则自动封禁',
             'is_traffic_ban'                => '1小时内流量超过异常阈值则自动封号(仅禁用代理)',
-            'is_WeChatPay',
             'iYuu_token'                    => '启用爱语飞飞,请务必填入本值(<a href=http://iyuu.cn target=_blank>申请 IYUU令牌</a>)',
             'maintenance_content'           => '自定义维护内容信息',
             'maintenance_mode'              => "启用后,用户访问转移至维护界面 | 管理员使用 <a href='javascript:(0)'>:url</a> 登录",
             'maintenance_time'              => '用于维护界面倒计时',
-            'max_port',
-            'max_rand_traffic',
             'min_port'                      => '端口范围:1000 - 65535',
-            'min_rand_traffic',
             'node_blocked_notification'     => '每小时检测节点是否被阻断并提醒管理员',
             'node_daily_notification'       => '报告各节点流量昨日消耗情况',
             'node_offline_notification'     => '每10分钟检测节点离线并提醒管理员',
@@ -686,17 +662,10 @@ return [
             '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_key',
             'payjs_mch_id'                  => '在<a href="https://payjs.cn/dashboard/member" target="_blank">本界面</a>获取信息',
             'payment_confirm_notification'  => '用户使用人工支付后通知管理员处理订单',
             'payment_received_notification' => '用户支付订单后通知用户订单状态',
-            'paypal_app_id',
-            'paypal_certificate',
-            'paypal_password',
-            'paypal_secret',
-            'paypal_username',
-            'pushDeer_key'                  => '启用PushDeer,请务必填入本值(<a href=http://www.pushdeer.com/official.html
-                                    target=_blank>申请 Push Key</a>)',
+            'pushDeer_key'                  => '启用PushDeer,请务必填入本值(<a href=http://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'                  => '触发审计规则时访问请求被阻断并重定向至该地址',
@@ -708,20 +677,14 @@ return [
             '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>)",
+            'server_chan_key'               => '启用ServerChan,请务必填入本值(<a href=https://sc.ftqq.com target=_blank>申请 SCKEY</a>)',
             'standard_currency'             => '网站中涉及金钱部分的默认货币',
-            'stripe_public_key',
-            'stripe_secret_key',
-            'stripe_signing_secret',
             '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>)',
-            'theadpay_key',
-            'theadpay_mchid',
-            'theadpay_url',
             'ticket_closed_notification'    => '工单关闭通知用户',
             'ticket_created_notification'   => '新工单通知管理/用户,取决于谁创建了新工单',
             'ticket_replied_notification'   => '工单回复通知对方',
@@ -729,17 +692,13 @@ return [
             'traffic_ban_value'             => '1小时内超过该值,则触发自动封号',
             'traffic_limit_time'            => '间隔多久才可以再次签到',
             'traffic_warning_percent'       => '【流量耗尽通知】开始阈值,每日通知用户',
-            'trojan_license',
             'username_type'                 => '规范站点用户账号的类型,默认为电子邮箱',
             'user_invite_days'              => '用户自行生成邀请的有效期',
-            'v2ray_license',
             'v2ray_tls_provider'            => '后端自动签发/载入TLS证书时用(节点的设置值优先级高于此处)',
             'webmaster_email'               => '错误提示时会提供管理员邮箱作为联系方式',
             'website_analytics'             => '统计JS',
             'website_callback_url'          => '防止因为网站域名被DNS投毒后导致支付无法正常回调,需带http://或https://',
             'website_customer_service'      => '客服JS',
-            'website_home_logo',
-            'website_logo',
             'website_name'                  => '发邮件时展示',
             'website_security_code'         => '非空时必须通过<a href=":url" target="_blank">安全入口</a>加上安全码才可访问',
             'website_url'                   => '生成重置密码、在线支付必备',
@@ -747,7 +706,6 @@ return [
             '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_qrcode',
             'wechat_secret'                 => '应用的Secret(可能需要下载企业微信才能查看)',
             'wechat_token'                  => '应用管理->应用->设置API接收->TOKEN,URL设置::url',
         ],
@@ -841,4 +799,4 @@ return [
     'query'               => '查 询',
     'optional'            => '可选',
     'require'             => '必须',
-];
+];

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

@@ -30,7 +30,7 @@ return [
     'generate'        => '生 成',
     'generate_item'   => '生成:attribute',
     'to_safari'       => [0 => '点击右上角', 1 => ',选择在', 2 => 'Safari 中打开', 3 => '就可以正常访问本站了哟!'],
-    'update_browser'  => [0 => '您正在使用', 1 => '过时', 2 => ' 的浏览器。 请', 3 => '升级您的浏览器', 4 => '来获得最佳的浏览体验'],
+    'update_browser'  => [0 => '您正在使用', 1 => '过时', 2 => '的浏览器。 请', 3 => '升级您的浏览器', 4 => '来获得最佳的浏览体验'],
     'apply'           => '应 用',
     'avatar'          => '头像',
     'customize'       => '自定义',

+ 3 - 4
resources/lang/zh_CN/model.php

@@ -53,7 +53,7 @@ return [
     ],
     'oauth'            => [
         'type'       => '渠道',
-        'identifier' => ' 唯一标识',
+        'identifier' => '唯一标识',
     ],
     'user_group'       => [
         'attribute' => '用戶分组',
@@ -118,7 +118,7 @@ return [
     ],
     'order'            => [
         'attribute'      => '订单',
-        'id'             => '订单ID',
+        'id'             => '订单',
         'original_price' => '原价',
         'price'          => '实价',
         'pay_way'        => '支付方式',
@@ -196,7 +196,6 @@ return [
     ],
     'aff'              => [
         'invitee'    => '消费者',
-        'order_id'   => '订单号',
         'amount'     => '消费金额',
         'commission' => '返利金额',
         'updated_at' => '处理时间',
@@ -236,4 +235,4 @@ return [
         'amount'     => '发生金额',
         'created_at' => '发生时间',
     ],
-];
+];

+ 1 - 1
resources/views/admin/aff/detail.blade.php

@@ -29,7 +29,7 @@
                         <tr>
                             <th> #</th>
                             <th> {{ trans('model.aff.invitee') }}</th>
-                            <th> {{ trans('model.aff.order_id') }}</th>
+                            <th> {{ trans('model.order.id') }}</th>
                             <th> {{ trans('model.aff.amount') }}</th>
                             <th> {{ trans('model.aff.commission') }}</th>
                             <th> {{ trans('model.aff.created_at') }}</th>

+ 1 - 1
resources/views/admin/aff/rebate.blade.php

@@ -37,7 +37,7 @@
                         <th> #</th>
                         <th> {{ trans('model.aff.invitee') }}</th>
                         <th> {{ trans('model.user.inviter') }}</th>
-                        <th> {{ trans('model.aff.order_id') }}</th>
+                        <th> {{ trans('model.order.id') }}</th>
                         <th> {{ trans('model.aff.amount') }}</th>
                         <th> {{ trans('model.aff.commission') }}</th>
                         <th> {{ trans('model.aff.created_at') }}</th>

+ 2 - 2
resources/views/admin/logs/order.blade.php

@@ -22,7 +22,7 @@
                         <input type="text" class="form-control" name="username" value="{{Request::query('username')}}" placeholder="{{ trans('common.account') }}"/>
                     </div>
                     <div class="form-group col-lg-2 col-sm-6">
-                        <input type="number" class="form-control" name="sn" value="{{Request::query('sn')}}" placeholder="{{ trans('model.aff.order_id') }}"/>
+                        <input type="number" class="form-control" name="sn" value="{{Request::query('sn')}}" placeholder="{{ trans('model.order.id') }}"/>
                     </div>
                     <div class="form-group col-lg-6 col-sm-12">
                         <div class="input-group input-daterange" data-plugin="datepicker">
@@ -76,7 +76,7 @@
                     <tr>
                         <th> @sortablelink('id', '#')</th>
                         <th> {{ trans('common.account') }}</th>
-                        <th> @sortablelink('sn', trans('model.aff.order_id'))</th>
+                        <th> @sortablelink('sn', trans('model.order.id'))</th>
                         <th> {{ trans('model.goods.attribute') }}</th>
                         <th> {{ trans('model.coupon.attribute') }}</th>
                         <th> {{ trans('model.order.original_price') }}</th>

+ 1 - 1
resources/views/user/invoiceDetail.blade.php

@@ -15,7 +15,7 @@
                     </div>
                     <div class="col-lg-3 offset-lg-6 text-right">
                         <h4>{{trans('user.invoice.detail')}}</h4>
-                        <p>{{ trans('model.aff.order_id') }}:
+                        <p>{{ trans('model.order.id') }}:
                             <a class="font-size-20" href="javascript:void(0)">{{$order->sn}}</a>
                         </p>
                         <p>{{trans('user.payment_method')}}

+ 1 - 1
resources/views/user/invoices.blade.php

@@ -18,7 +18,7 @@
                     <thead class="thead-default">
                     <tr>
                         <th> #</th>
-                        <th> {{trans('model.aff.order_id')}} </th>
+                        <th> {{trans('model.order.id')}} </th>
                         <th> {{trans('user.shop.service')}} </th>
                         <th> {{trans('user.payment_method')}} </th>
                         <th> {{trans('user.invoice.amount')}} </th>