Browse Source

update: backend language and order result page

tokumeikoi 4 years ago
parent
commit
f7a7c21c16

+ 1 - 0
app/Http/Controllers/Passport/AuthController.php

@@ -20,6 +20,7 @@ class AuthController extends Controller
 {
     public function register(AuthRegister $request)
     {
+        abort(500, __('passport.auth.register.verify_incorrect'));
         if ((int)config('v2board.recaptcha_enable', 0)) {
             $recaptcha = new ReCaptcha(config('v2board.recaptcha_key'));
             $recaptchaResp = $recaptcha->verify($request->input('recaptcha_data'));

+ 6 - 6
app/Http/Controllers/User/CouponController.php

@@ -11,25 +11,25 @@ class CouponController extends Controller
     public function check(Request $request)
     {
         if (empty($request->input('code'))) {
-            abort(500, '优惠券码不能为空');
+            abort(500, __('user.coupon.check.coupon_not_empty'));
         }
         $coupon = Coupon::where('code', $request->input('code'))->first();
         if (!$coupon) {
-            abort(500, '优惠券无效');
+            abort(500, __('user.coupon.check.coupon_invalid'));
         }
         if ($coupon->limit_use <= 0 && $coupon->limit_use !== NULL) {
-            abort(500, '优惠券已无可用次数');
+            abort(500, __('user.coupon.check.coupon_not_available_by_number'));
         }
         if (time() < $coupon->started_at) {
-            abort(500, '优惠券还未到可用时间');
+            abort(500, __('user.coupon.check.coupon_not_available_by_time'));
         }
         if (time() > $coupon->ended_at) {
-            abort(500, '优惠券已过期');
+            abort(500, __('user.coupon.check.coupon_expired'));
         }
         if ($coupon->limit_plan_ids) {
             $limitPlanIds = json_decode($coupon->limit_plan_ids);
             if (!in_array($request->input('plan_id'), $limitPlanIds)) {
-                abort(500, '这个计划无法使用该优惠码');
+                abort(500, __('user.coupon.check.coupon_limit_plan'));
             }
         }
         return response([

+ 1 - 1
app/Http/Controllers/User/InviteController.php

@@ -14,7 +14,7 @@ class InviteController extends Controller
     public function save(Request $request)
     {
         if (InviteCode::where('user_id', $request->session()->get('id'))->where('status', 0)->count() >= config('v2board.invite_gen_limit', 5)) {
-            abort(500, '已达到创建数量上限');
+            abort(500, __('user.invite.save.invite_create_limit'));
         }
         $inviteCode = new InviteCode();
         $inviteCode->user_id = $request->session()->get('id');

+ 3 - 3
app/Http/Controllers/User/KnowledgeController.php

@@ -17,11 +17,11 @@ class KnowledgeController extends Controller
                 ->where('show', 1)
                 ->first()
                 ->toArray();
-            if (!$knowledge) abort(500, '知识不存在');
+            if (!$knowledge) abort(500, __('user.knowledge.fetch.knowledge_not_exist'));
             $user = User::find($request->session()->get('id'));
             $userService = new UserService();
-            $appleId = $userService->isAvailable($user) ? config('v2board.apple_id') : '没有有效订阅无法使用本站提供的AppleID';
-            $appleIdPassword = $userService->isAvailable($user) ? config('v2board.apple_id_password') : '没有有效订阅无法使用本站提供的AppleID';
+            $appleId = $userService->isAvailable($user) ? config('v2board.apple_id') : __('user.knowledge.fetch.apple_id_must_be_plan');
+            $appleIdPassword = $userService->isAvailable($user) ? config('v2board.apple_id_password') : __('user.knowledge.fetch.apple_id_must_be_plan');
             $subscribeUrl = config('v2board.subscribe_url', config('v2board.app_url', env('APP_URL'))) . '/api/v1/client/subscribe?token=' . $user['token'];
             $knowledge['body'] = str_replace('{{siteName}}', config('v2board.app_name', 'V2Board'), $knowledge['body']);
             $knowledge['body'] = str_replace('{{appleId}}', $appleId, $knowledge['body']);

+ 34 - 34
app/Http/Controllers/User/OrderController.php

@@ -50,12 +50,12 @@ class OrderController extends Controller
             ->where('trade_no', $request->input('trade_no'))
             ->first();
         if (!$order) {
-            abort(500, '订单不存在');
+            abort(500, __('user.order.details.order_not_exist'));
         }
         $order['plan'] = Plan::find($order->plan_id);
         $order['try_out_plan_id'] = (int)config('v2board.try_out_plan_id');
         if (!$order['plan']) {
-            abort(500, '订阅不存在');
+            abort(500, __('user.order.details.plan_not_exist'));
         }
         return response([
             'data' => $order
@@ -66,38 +66,38 @@ class OrderController extends Controller
     {
         $userService = new UserService();
         if ($userService->isNotCompleteOrderByUserId($request->session()->get('id'))) {
-            abort(500, '您有未付款或开通中的订单,请稍后或取消再试');
+            abort(500, __('user.order.save.exist_open_order'));
         }
 
         $plan = Plan::find($request->input('plan_id'));
         $user = User::find($request->session()->get('id'));
 
         if (!$plan) {
-            abort(500, '该订阅不存在');
+            abort(500, __('user.order.save.plan_not_exist'));
         }
 
         if ((!$plan->show && !$plan->renew) || (!$plan->show && $user->plan_id !== $plan->id)) {
             if ($request->input('cycle') !== 'reset_price') {
-                abort(500, '该订阅已售罄,请更换其他订阅');
+                abort(500, __('user.order.save.plan_stop_sell'));
             }
         }
 
         if (!$plan->renew && $user->plan_id == $plan->id && $request->input('cycle') !== 'reset_price') {
-            abort(500, '该订阅无法续费,请更换其他订阅');
+            abort(500, __('user.order.save.plan_stop_renew'));
         }
 
         if ($plan[$request->input('cycle')] === NULL) {
-            abort(500, '该订阅周期无法进行购买,请选择其他周期');
+            abort(500, __('user.order.save.plan_stop'));
         }
 
         if ($request->input('cycle') === 'reset_price') {
             if ($user->expired_at <= time() || !$user->plan_id) {
-                abort(500, '订阅已过期或无有效订阅,无法购买重置包');
+                abort(500, __('user.order.save.plan_exist_not_buy_package'));
             }
         }
 
         if (!$plan->show && $plan->renew && !$userService->isAvailable($user)) {
-            abort(500, '订阅已过期,请更换其他订阅');
+            abort(500, __('user.order.save.plan_expired'));
         }
 
         DB::beginTransaction();
@@ -113,7 +113,7 @@ class OrderController extends Controller
             $couponService = new CouponService($request->input('coupon_code'));
             if (!$couponService->use($order)) {
                 DB::rollBack();
-                abort(500, '优惠券使用失败');
+                abort(500, __('user.order.save.coupon_use_failed'));
             }
             $order->coupon_id = $couponService->getId();
         }
@@ -128,14 +128,14 @@ class OrderController extends Controller
             if ($remainingBalance > 0) {
                 if (!$userService->addBalance($order->user_id, - $order->total_amount)) {
                     DB::rollBack();
-                    abort(500, '余额不足');
+                    abort(500, __('user.order.save.insufficient_balance'));
                 }
                 $order->balance_amount = $order->total_amount;
                 $order->total_amount = 0;
             } else {
                 if (!$userService->addBalance($order->user_id, - $user->balance)) {
                     DB::rollBack();
-                    abort(500, '余额不足');
+                    abort(500, __('user.order.save.insufficient_balance'));
                 }
                 $order->balance_amount = $user->balance;
                 $order->total_amount = $order->total_amount - $user->balance;
@@ -144,7 +144,7 @@ class OrderController extends Controller
 
         if (!$order->save()) {
             DB::rollback();
-            abort(500, '订单创建失败');
+            abort(500, __('user.order.save.order_create_failed'));
         }
 
         DB::commit();
@@ -163,7 +163,7 @@ class OrderController extends Controller
             ->where('status', 0)
             ->first();
         if (!$order) {
-            abort(500, '订单不存在或已支付');
+            abort(500, __('user.order.checkout.order_not_exist_or_paid'));
         }
         // free process
         if ($order->total_amount <= 0) {
@@ -180,7 +180,7 @@ class OrderController extends Controller
             case 0:
                 // alipayF2F
                 if (!(int)config('v2board.alipay_enable')) {
-                    abort(500, '支付方式不可用');
+                    abort(500, __('user.order.checkout.pay_method_not_use'));
                 }
                 return response([
                     'type' => 0,
@@ -189,7 +189,7 @@ class OrderController extends Controller
             case 2:
                 // stripeAlipay
                 if (!(int)config('v2board.stripe_alipay_enable')) {
-                    abort(500, '支付方式不可用');
+                    abort(500, __('user.order.checkout.pay_method_not_use'));
                 }
                 return response([
                     'type' => 1,
@@ -198,7 +198,7 @@ class OrderController extends Controller
             case 3:
                 // stripeWepay
                 if (!(int)config('v2board.stripe_wepay_enable')) {
-                    abort(500, '支付方式不可用');
+                    abort(500, __('user.order.checkout.pay_method_not_use'));
                 }
                 return response([
                     'type' => 0,
@@ -207,7 +207,7 @@ class OrderController extends Controller
             case 4:
                 // bitpayX
                 if (!(int)config('v2board.bitpayx_enable')) {
-                    abort(500, '支付方式不可用');
+                    abort(500, __('user.order.checkout.pay_method_not_use'));
                 }
                 return response([
                     'type' => 1,
@@ -215,7 +215,7 @@ class OrderController extends Controller
                 ]);
             case 5:
                 if (!(int)config('v2board.mgate_enable')) {
-                    abort(500, '支付方式不可用');
+                    abort(500, __('user.order.checkout.pay_method_not_use'));
                 }
                 return response([
                     'type' => 1,
@@ -223,7 +223,7 @@ class OrderController extends Controller
                 ]);
             case 6:
                 if (!(int)config('v2board.stripe_card_enable')) {
-                    abort(500, '支付方式不可用');
+                    abort(500, __('user.order.checkout.pay_method_not_use'));
                 }
                 return response([
                     'type' => 2,
@@ -231,14 +231,14 @@ class OrderController extends Controller
                 ]);
             case 7:
                 if (!(int)config('v2board.epay_enable')) {
-                    abort(500, '支付方式不可用');
+                    abort(500, __('user.order.checkout.pay_method_not_use'));
                 }
                 return response([
                     'type' => 1,
                     'data' => $this->epay($order)
                 ]);
             default:
-                abort(500, '支付方式不存在');
+                abort(500, __('user.order.checkout.pay_method_not_use'));
         }
     }
 
@@ -249,7 +249,7 @@ class OrderController extends Controller
             ->where('user_id', $request->session()->get('id'))
             ->first();
         if (!$order) {
-            abort(500, '订单不存在');
+            abort(500, __('user.order.check.order_not_exist'));
         }
         return response([
             'data' => $order->status
@@ -323,20 +323,20 @@ class OrderController extends Controller
     public function cancel(Request $request)
     {
         if (empty($request->input('trade_no'))) {
-            abort(500, '参数有误');
+            abort(500, __('user.order.cancel.params_wrong'));
         }
         $order = Order::where('trade_no', $request->input('trade_no'))
             ->where('user_id', $request->session()->get('id'))
             ->first();
         if (!$order) {
-            abort(500, '订单不存在');
+            abort(500, __('user.order.cancel.order_not_exist'));
         }
         if ($order->status !== 0) {
-            abort(500, '只可以取消待支付订单');
+            abort(500, __('user.order.cancel.only_cancel_pending_order'));
         }
         $orderService = new OrderService($order);
         if (!$orderService->cancel()) {
-            abort(500, '取消失败');
+            abort(500, __('user.order.cancel.cancel_failed'));
         }
         return response([
             'data' => true
@@ -372,7 +372,7 @@ class OrderController extends Controller
         $currency = config('v2board.stripe_currency', 'hkd');
         $exchange = Helper::exchange('CNY', strtoupper($currency));
         if (!$exchange) {
-            abort(500, '货币转换超时,请稍后再试');
+            abort(500, __('user.order.stripeAlipay.currency_convert_timeout'));
         }
         Stripe::setApiKey(config('v2board.stripe_sk_live'));
         $source = Source::create([
@@ -390,7 +390,7 @@ class OrderController extends Controller
             ]
         ]);
         if (!$source['redirect']['url']) {
-            abort(500, '支付网关请求失败');
+            abort(500, __('user.order.stripeAlipay.gateway_request_failed'));
         }
         return $source['redirect']['url'];
     }
@@ -400,7 +400,7 @@ class OrderController extends Controller
         $currency = config('v2board.stripe_currency', 'hkd');
         $exchange = Helper::exchange('CNY', strtoupper($currency));
         if (!$exchange) {
-            abort(500, '货币转换超时,请稍后再试');
+            abort(500, __('user.order.stripeWepay.currency_convert_timeout'));
         }
         Stripe::setApiKey(config('v2board.stripe_sk_live'));
         $source = Source::create([
@@ -417,7 +417,7 @@ class OrderController extends Controller
             ]
         ]);
         if (!$source['wechat']['qr_code_url']) {
-            abort(500, '支付网关请求失败');
+            abort(500, __('user.order.stripeWepay.gateway_request_failed'));
         }
         return $source['wechat']['qr_code_url'];
     }
@@ -427,7 +427,7 @@ class OrderController extends Controller
         $currency = config('v2board.stripe_currency', 'hkd');
         $exchange = Helper::exchange('CNY', strtoupper($currency));
         if (!$exchange) {
-            abort(500, '货币转换超时,请稍后再试');
+            abort(500, __('user.order.stripeCard.currency_convert_timeout'));
         }
         Stripe::setApiKey(config('v2board.stripe_sk_live'));
         try {
@@ -442,11 +442,11 @@ class OrderController extends Controller
                 ]
             ]);
         } catch (\Exception $e) {
-            abort(500, '遇到了点问题,请刷新页面稍后再试');
+            abort(500, __('user.order.stripeCard.was_problem'));
         }
         info($charge);
         if (!$charge->paid) {
-            abort(500, '扣款失败,请检查信用卡信息');
+            abort(500, __('user.order.stripeCard.deduction_failed'));
         }
         return $charge->paid;
     }

+ 1 - 1
app/Http/Controllers/User/PlanController.php

@@ -14,7 +14,7 @@ class PlanController extends Controller
             $plan = Plan::where('id', $request->input('id'))
                 ->first();
             if (!$plan) {
-                abort(500, '该订阅不存在');
+                abort(500, __('user.plan.fetch.plan_not_exist'));
             }
             return response([
                 'data' => $plan

+ 22 - 19
app/Http/Controllers/User/TicketController.php

@@ -23,7 +23,7 @@ class TicketController extends Controller
                 ->where('user_id', $request->session()->get('id'))
                 ->first();
             if (!$ticket) {
-                abort(500, '工单不存在');
+                abort(500, __('user.ticket.fetch.ticket_not_exist'));
             }
             $ticket['message'] = TicketMessage::where('ticket_id', $ticket->id)->get();
             for ($i = 0; $i < count($ticket['message']); $i++) {
@@ -56,7 +56,7 @@ class TicketController extends Controller
     {
         DB::beginTransaction();
         if ((int)Ticket::where('status', 0)->where('user_id', $request->session()->get('id'))->count()) {
-            abort(500, '存在其他工单尚未处理');
+            abort(500, __('user.ticket.save.exist_other_open_ticket'));
         }
         $ticket = Ticket::create(array_merge($request->only([
             'subject',
@@ -67,7 +67,7 @@ class TicketController extends Controller
         ]));
         if (!$ticket) {
             DB::rollback();
-            abort(500, '工单创建失败');
+            abort(500, __('user.ticket.save.ticket_create_failed'));
         }
         $ticketMessage = TicketMessage::create([
             'user_id' => $request->session()->get('id'),
@@ -76,7 +76,7 @@ class TicketController extends Controller
         ]);
         if (!$ticketMessage) {
             DB::rollback();
-            abort(500, '工单创建失败');
+            abort(500, __('user.ticket.save.ticket_create_failed'));
         }
         DB::commit();
         $this->sendNotify($ticket, $ticketMessage);
@@ -88,22 +88,22 @@ class TicketController extends Controller
     public function reply(Request $request)
     {
         if (empty($request->input('id'))) {
-            abort(500, '参数错误');
+            abort(500, __('user.ticket.reply.params_wrong'));
         }
         if (empty($request->input('message'))) {
-            abort(500, '消息不能为空');
+            abort(500, __('user.ticket.reply.message_not_empty'));
         }
         $ticket = Ticket::where('id', $request->input('id'))
             ->where('user_id', $request->session()->get('id'))
             ->first();
         if (!$ticket) {
-            abort(500, '工单不存在');
+            abort(500, __('user.ticket.reply.ticket_not_exist'));
         }
         if ($ticket->status) {
-            abort(500, '工单已关闭,无法回复');
+            abort(500, __('user.ticket.reply.ticket_close_not_reply'));
         }
         if ($request->session()->get('id') == $this->getLastMessage($ticket->id)->user_id) {
-            abort(500, '请等待技术支持回复');
+            abort(500, __('user.ticket.reply.wait_reply'));
         }
         DB::beginTransaction();
         $ticketMessage = TicketMessage::create([
@@ -114,7 +114,7 @@ class TicketController extends Controller
         $ticket->last_reply_user_id = $request->session()->get('id');
         if (!$ticketMessage || !$ticket->save()) {
             DB::rollback();
-            abort(500, '工单回复失败');
+            abort(500, __('user.ticket.reply.ticket_reply_failed'));
         }
         DB::commit();
         $this->sendNotify($ticket, $ticketMessage);
@@ -127,17 +127,17 @@ class TicketController extends Controller
     public function close(Request $request)
     {
         if (empty($request->input('id'))) {
-            abort(500, '参数错误');
+            abort(500, __('user.ticket.close.params_wrong'));
         }
         $ticket = Ticket::where('id', $request->input('id'))
             ->where('user_id', $request->session()->get('id'))
             ->first();
         if (!$ticket) {
-            abort(500, '工单不存在');
+            abort(500, __('user.ticket.close.ticket_not_exist'));
         }
         $ticket->status = 1;
         if (!$ticket->save()) {
-            abort(500, '关闭失败');
+            abort(500, __('user.ticket.close.close_failed'));
         }
         return response([
             'data' => true
@@ -160,15 +160,15 @@ class TicketController extends Controller
                 Dict::WITHDRAW_METHOD_WHITELIST_DEFAULT
             )
         )) {
-            abort(500, '不支持的提现方式');
+            abort(500, __('user.ticket.withdraw.not_support_withdraw_method'));
         }
         $user = User::find($request->session()->get('id'));
         $limit = config('v2board.commission_withdraw_limit', 100);
         if ($limit > ($user->commission_balance / 100)) {
-            abort(500, "当前系统要求的提现门槛佣金需为{$limit}CNY");
+            abort(500, __('user.ticket.withdraw.system_require_withdraw_limit', ['limit' => $limit]));
         }
         DB::beginTransaction();
-        $subject = '[提现申请]本工单由系统发出';
+        $subject = __('user.ticket.withdraw.ticket_subject');
         $ticket = Ticket::create([
             'subject' => $subject,
             'level' => 2,
@@ -177,9 +177,12 @@ class TicketController extends Controller
         ]);
         if (!$ticket) {
             DB::rollback();
-            abort(500, '工单创建失败');
+            abort(500, __('user.ticket.withdraw.ticket_create_failed'));
         }
-        $message = "提现方式:{$request->input('withdraw_method')}\r\n提现账号:{$request->input('withdraw_account')}\r\n";
+        $message = __('user.ticket.withdraw.ticket_message', [
+            'method' => $request->input('withdraw_method'),
+            'account' => $request->input('withdraw_account')
+        ]);
         $ticketMessage = TicketMessage::create([
             'user_id' => $request->session()->get('id'),
             'ticket_id' => $ticket->id,
@@ -187,7 +190,7 @@ class TicketController extends Controller
         ]);
         if (!$ticketMessage) {
             DB::rollback();
-            abort(500, '工单创建失败');
+            abort(500, __('user.ticket.withdraw.ticket_create_failed'));
         }
         DB::commit();
         $this->sendNotify($ticket, $ticketMessage);

+ 14 - 14
app/Http/Controllers/User/UserController.php

@@ -28,19 +28,19 @@ class UserController extends Controller
     {
         $user = User::find($request->session()->get('id'));
         if (!$user) {
-            abort(500, '该用户不存在');
+            abort(500, __('user.user.changePassword.user_not_exist'));
         }
         if (!Helper::multiPasswordVerify(
             $user->password_algo,
             $request->input('old_password'),
             $user->password)
         ) {
-            abort(500, '旧密码有误');
+            abort(500, __('user.user.changePassword.old_password_wrong'));
         }
         $user->password = password_hash($request->input('new_password'), PASSWORD_DEFAULT);
         $user->password_algo = NULL;
         if (!$user->save()) {
-            abort(500, '保存失败');
+            abort(500, __('user.user.changePassword.save_failed'));
         }
         $request->session()->flush();
         return response([
@@ -69,7 +69,7 @@ class UserController extends Controller
             ])
             ->first();
         if (!$user) {
-            abort(500, '该用户不存在');
+            abort(500, __('user.user.info.user_not_exist'));
         }
         $user['avatar_url'] = 'https://cdn.v2ex.com/gravatar/' . md5($user->email) . '?s=64&d=identicon';
         return response([
@@ -109,12 +109,12 @@ class UserController extends Controller
             ])
             ->first();
         if (!$user) {
-            abort(500, '该用户不存在');
+            abort(500, __('user.user.getSubscribe.user_not_exist'));
         }
         if ($user->plan_id) {
             $user['plan'] = Plan::find($user->plan_id);
             if (!$user['plan']) {
-                abort(500, '订阅计划不存在');
+                abort(500, __('user.user.getSubscribe.plan_not_exist'));
             }
         }
         $user['subscribe_url'] = config('v2board.subscribe_url', config('v2board.app_url', env('APP_URL'))) . '/api/v1/client/subscribe?token=' . $user['token'];
@@ -128,12 +128,12 @@ class UserController extends Controller
     {
         $user = User::find($request->session()->get('id'));
         if (!$user) {
-            abort(500, '该用户不存在');
+            abort(500, __('user.user.resetSecurity.user_not_exist'));
         }
         $user->uuid = Helper::guid(true);
         $user->token = Helper::guid();
         if (!$user->save()) {
-            abort(500, '重置失败');
+            abort(500, __('user.user.resetSecurity.reset_failed'));
         }
         return response([
             'data' => config('v2board.subscribe_url', config('v2board.app_url', env('APP_URL'))) . '/api/v1/client/subscribe?token=' . $user->token
@@ -149,12 +149,12 @@ class UserController extends Controller
 
         $user = User::find($request->session()->get('id'));
         if (!$user) {
-            abort(500, '该用户不存在');
+            abort(500, __('user.user.update.user_not_exist'));
         }
         try {
             $user->update($updateData);
         } catch (\Exception $e) {
-            abort(500, '保存失败');
+            abort(500, __('user.user.update.save_failed'));
         }
 
         return response([
@@ -166,18 +166,18 @@ class UserController extends Controller
     {
         $user = User::find($request->session()->get('id'));
         if (!$user) {
-            abort(500, '该用户不存在');
+            abort(500, __('user.user.transfer.user_not_exist'));
         }
         if ($request->input('transfer_amount') <= 0) {
-            abort(500, '参数错误');
+            abort(500, __('user.user.transfer.params_wrong'));
         }
         if ($request->input('transfer_amount') > $user->commission_balance) {
-            abort(500, '推广佣金余额不足');
+            abort(500, __('user.user.transfer.insufficient_commission_balance'));
         }
         $user->commission_balance = $user->commission_balance - $request->input('transfer_amount');
         $user->balance = $user->balance + $request->input('transfer_amount');
         if (!$user->save()) {
-            abort(500, '划转失败');
+            abort(500, __('user.user.transfer.transfer_failed'));
         }
         return response([
             'data' => true

+ 1 - 0
app/Http/Kernel.php

@@ -43,6 +43,7 @@ class Kernel extends HttpKernel
             \Illuminate\Session\Middleware\StartSession::class,
             \App\Http\Middleware\ForceJson::class,
             \App\Http\Middleware\CORS::class,
+            \App\Http\Middleware\Language::class,
             'bindings',
         ],
     ];

+ 17 - 0
app/Http/Middleware/Language.php

@@ -0,0 +1,17 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Closure;
+use Illuminate\Support\Facades\App;
+
+class Language
+{
+    public function handle($request, Closure $next)
+    {
+        if ($request->header('content-language')) {
+            App::setLocale($request->header('content-language'));
+        }
+        return $next($request);
+    }
+}

+ 6 - 0
app/Http/Middleware/User.php

@@ -22,6 +22,12 @@ class User
                 $request->session()->put('id', $user->id);
             }
         }
+//        if ($request->input('lang')) {
+//            $request->session()->put('lang', $request->input('lang'));
+//        }
+//        if ($request->session()->get('lang')) {
+//            App::setLocale($request->session()->get('lang'));
+//        }
         if (!$request->session()->get('id')) {
             abort(403, '未登录或登陆已过期');
         }

+ 3 - 3
config/app.php

@@ -80,7 +80,7 @@ return [
     |
     */
 
-    'locale' => 'en',
+    'locale' => 'zh-CN',
 
     /*
     |--------------------------------------------------------------------------
@@ -93,7 +93,7 @@ return [
     |
     */
 
-    'fallback_locale' => 'en',
+    'fallback_locale' => 'zh-CN',
 
     /*
     |--------------------------------------------------------------------------
@@ -106,7 +106,7 @@ return [
     |
     */
 
-    'faker_locale' => 'en_US',
+    'faker_locale' => 'zh-CN',
 
     /*
     |--------------------------------------------------------------------------

File diff suppressed because it is too large
+ 0 - 0
public/assets/user/components.async.js


File diff suppressed because it is too large
+ 0 - 0
public/assets/user/components.chunk.css


File diff suppressed because it is too large
+ 0 - 0
public/assets/user/umi.js


+ 0 - 19
resources/lang/en/auth.php

@@ -1,19 +0,0 @@
-<?php
-
-return [
-
-    /*
-    |--------------------------------------------------------------------------
-    | Authentication Language Lines
-    |--------------------------------------------------------------------------
-    |
-    | The following language lines are used during authentication for various
-    | messages that we need to display to the user. You are free to modify
-    | these language lines according to your application's requirements.
-    |
-    */
-
-    'failed' => 'These credentials do not match our records.',
-    'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
-
-];

+ 0 - 19
resources/lang/en/pagination.php

@@ -1,19 +0,0 @@
-<?php
-
-return [
-
-    /*
-    |--------------------------------------------------------------------------
-    | Pagination Language Lines
-    |--------------------------------------------------------------------------
-    |
-    | The following language lines are used by the paginator library to build
-    | the simple pagination links. You are free to change them to anything
-    | you want to customize your views to better match your application.
-    |
-    */
-
-    'previous' => '&laquo; Previous',
-    'next' => 'Next &raquo;',
-
-];

+ 0 - 21
resources/lang/en/passwords.php

@@ -1,21 +0,0 @@
-<?php
-
-return [
-
-    /*
-    |--------------------------------------------------------------------------
-    | Password Reset Language Lines
-    |--------------------------------------------------------------------------
-    |
-    | The following language lines are the default lines which match reasons
-    | that are given by the password broker for a password update attempt
-    | has failed, such as for an invalid token or invalid new password.
-    |
-    */
-
-    'reset' => 'Your password has been reset!',
-    'sent' => 'We have e-mailed your password reset link!',
-    'token' => 'This password reset token is invalid.',
-    'user' => "We can't find a user with that e-mail address.",
-
-];

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

@@ -1,150 +0,0 @@
-<?php
-
-return [
-
-    /*
-    |--------------------------------------------------------------------------
-    | Validation Language Lines
-    |--------------------------------------------------------------------------
-    |
-    | The following language lines contain the default error messages used by
-    | the validator class. Some of these rules have multiple versions such
-    | as the size rules. Feel free to tweak each of these messages here.
-    |
-    */
-
-    '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.',
-    '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.',
-    ],
-    '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.',
-    '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',
-    'exists' => 'The selected :attribute is invalid.',
-    'file' => 'The :attribute 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.',
-    ],
-    '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.',
-    ],
-    'image' => 'The :attribute 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.',
-    '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.',
-    ],
-    '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.',
-    ],
-    '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.',
-    ],
-    'mimes' => 'The :attribute must be a file of type: :values.',
-    'mimetypes' => 'The :attribute 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.',
-    ],
-    'not_in' => 'The selected :attribute is invalid.',
-    'not_regex' => 'The :attribute format is invalid.',
-    'numeric' => 'The :attribute must be a number.',
-    'present' => 'The :attribute field must be present.',
-    'regex' => 'The :attribute 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.',
-    'required_with' => 'The :attribute field is required when :values is present.',
-    '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.',
-    '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.',
-    ],
-    '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.',
-    '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.',
-
-    /*
-    |--------------------------------------------------------------------------
-    | Custom Validation Language Lines
-    |--------------------------------------------------------------------------
-    |
-    | Here you may specify custom validation messages for attributes using the
-    | convention "attribute.rule" to name the lines. This makes it quick to
-    | specify a specific custom language line for a given attribute rule.
-    |
-    */
-
-    'custom' => [
-        'attribute-name' => [
-            'rule-name' => 'custom-message',
-        ],
-    ],
-
-    /*
-    |--------------------------------------------------------------------------
-    | Custom Validation Attributes
-    |--------------------------------------------------------------------------
-    |
-    | The following language lines are used to swap our attribute placeholder
-    | with something more reader friendly such as "E-Mail Address" instead
-    | of "email". This simply helps us make our message more expressive.
-    |
-    */
-
-    'attributes' => [],
-
-];

+ 37 - 0
resources/lang/zh-CN/passport.php

@@ -0,0 +1,37 @@
+<?php
+
+return [
+    'auth' => [
+        'register' => [
+            'verify_incorrect' => '验证码有误',
+            'email_suffix_not_in_whitelist' => '邮箱后缀不处于白名单中',
+            'no_support_gmail_alias' => '不支持Gmail别名邮箱',
+            'close_register' => '本站已关闭注册',
+            'must_use_invite_code' => '必须使用邀请码才可以注册',
+            'email_code_not_empty' => '邮箱验证码不能为空',
+            'email_code_incorrect' => '邮箱验证码有误',
+            'email_exist_system' => '邮箱已存在系统中',
+            'invalid_invite_code' => '邀请码无效',
+            'register_failed' => '注册失败'
+        ],
+        'login' => [
+            'wrong_email_or_password' => '邮箱或密码错误',
+            'account_been_discontinued' => '该账户已被停止使用'
+        ],
+        'getQuickLoginUrl' => [
+            'wrong_token' => '令牌有误'
+        ],
+        'forget' => [
+            'email_verification_code_incorrect' => '邮箱验证码有误',
+            'email_not_exist_system' => '该邮箱不存在系统中',
+            'reset_failed' => '重置失败'
+        ]
+    ],
+    'comm' => [
+        'sendEmailVerify' => [
+            'verification_code_incorrect.' => '验证码有误',
+            'code_sent_request_later' => '验证码已发送,请过一会再请求',
+            'email_verification_code' => '邮箱验证码'
+        ]
+    ]
+];

+ 131 - 0
resources/lang/zh-CN/user.php

@@ -0,0 +1,131 @@
+<?php
+
+return [
+    'user' => [
+        'changePassword' => [
+            'user_not_exist' => '该用户不存在',
+            'old_password_wrong' => '旧密码有误',
+            'save_failed' => '保存失败'
+        ],
+        'info' => [
+            'user_not_exist' => '该用户不存在'
+        ],
+        'getSubscribe' => [
+            'user_not_exist' => '该用户不存在',
+            'plan_not_exist' => '订阅计划不存在',
+        ],
+        'resetSecurity' => [
+            'user_not_exist' => '该用户不存在',
+            'reset_failed' => '重置失败'
+        ],
+        'update' => [
+            'user_not_exist' => '该用户不存在',
+            'save_failed' => '保存失败',
+        ],
+        'transfer' => [
+            'user_not_exist' => '该用户不存在',
+            'params_wrong' => '参数错误',
+            'insufficient_commission_balance' => '推广佣金余额不足',
+            'transfer_failed' => '划转失败'
+        ]
+    ],
+    'ticket' => [
+        'fetch' => [
+            'ticket_not_exist' => '工单不存在',
+        ],
+        'save' => [
+            'exist_other_open_ticket' => '存在其他工单尚未处理',
+            'ticket_create_failed' => '工单创建失败',
+        ],
+        'reply' => [
+            'params_wrong' => '参数错误',
+            'message_not_empty' => '消息不能为空',
+            'ticket_not_exist' => '工单不存在',
+            'ticket_close_not_reply' => '工单已关闭,无法回复',
+            'wait_reply' => '请等待技术支持回复',
+            'ticket_reply_failed' => '工单回复失败',
+        ],
+        'close' => [
+            'params_wrong' => '参数错误',
+            'ticket_not_exist' => '工单不存在',
+            'close_failed' => '关闭失败',
+        ],
+        'withdraw' => [
+            'not_support_withdraw_method' => '不支持的提现方式',
+            'system_require_withdraw_limit' => '当前系统要求的提现门槛佣金需为:limitCNY',
+            'ticket_subject' => '[提现申请]本工单由系统发出',
+            'ticket_create_failed' => '工单创建失败',
+            'ticket_message' => "提现方式::method\r\n提现账号::account\r\n"
+        ]
+    ],
+    'plan' => [
+        'fetch' => [
+            'plan_not_exist' => '订阅计划不存在'
+        ]
+    ],
+    'order' => [
+        'details' => [
+            'order_not_exist' => '订单不存在',
+            'plan_not_exist' => '订阅计划不存在',
+        ],
+        'save' => [
+            'plan_not_exist' => '订阅计划不存在',
+            'exist_open_order' => '您有未付款或开通中的订单,请稍后或取消再试',
+            'plan_stop_sell' => '该订阅已售罄,请更换其他订阅',
+            'plan_stop_renew' => '该订阅无法续费,请更换其他订阅',
+            'plan_stop' => '该订阅周期无法进行购买,请选择其他周期',
+            'plan_exist_not_buy_package' => '订阅已过期或无有效订阅,无法购买重置包',
+            'plan_expired' => '订阅已过期,请更换其他订阅',
+            'coupon_use_failed' => '优惠券使用失败',
+            'insufficient_balance' => '余额不足',
+            'order_create_failed' => '订单创建失败'
+        ],
+        'checkout' => [
+            'order_not_exist_or_paid' => '订单不存在或已支付',
+            'pay_method_not_use' => '支付方式不可用',
+        ],
+        'check' => [
+            'order_not_exist' => '订单不存在'
+        ],
+        'cancel' => [
+            'params_wrong' => '参数有误',
+            'order_not_exist' => '订单不存在',
+            'only_cancel_pending_order' => '只可以取消待支付订单',
+            'cancel_failed' => '取消失败',
+        ],
+        'stripeAlipay' => [
+            'currency_convert_timeout' => '货币转换超时,请稍后再试',
+            'gateway_request_failed' => '支付网关请求失败',
+        ],
+        'stripeWepay' => [
+            'currency_convert_timeout' => '货币转换超时,请稍后再试',
+            'gateway_request_failed' => '支付网关请求失败',
+        ],
+        'stripeCard' => [
+            'currency_convert_timeout' => '货币转换超时,请稍后再试',
+            'was_problem' => '遇到了点问题,请刷新页面稍后再试',
+            'deduction_failed' => '扣款失败,请检查信用卡信息'
+        ]
+    ],
+    'knowledge' => [
+        'fetch' => [
+            'knowledge_not_exist' => '知识不存在',
+            'apple_id_must_be_plan' => '没有有效订阅无法使用本站提供的AppleID'
+        ]
+    ],
+    'invite' => [
+        'save' => [
+            'invite_create_limit' => '已达到创建数量上限'
+        ]
+    ],
+    'coupon' => [
+        'check' => [
+            'coupon_not_empty' => '优惠券码不能为空',
+            'coupon_invalid' => '优惠券无效',
+            'coupon_not_available_by_number' => '优惠券已无可用次数',
+            'coupon_not_available_by_time' => '优惠券还未到可用时间',
+            'coupon_expired' => '优惠券已过期',
+            'coupon_limit_plan' => '这个计划无法使用该优惠码'
+        ]
+    ]
+];

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