From b5fcc19ab737775f9a0097361774a8bace370e5c Mon Sep 17 00:00:00 2001 From: hzj <1304805162@qq.com> Date: Sat, 23 May 2026 18:49:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=8F=A4=E5=B0=94=E9=82=A6=E8=8A=82):=20?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/MaskLayer.vue | 117 +++++- src/components/itemCenter.vue | 2 +- src/directives/smartImage.js | 27 +- src/locales/ar.json | 85 ++-- src/locales/bn.json | 85 ++-- src/locales/en.json | 85 ++-- src/locales/tr.json | 85 ++-- src/locales/zh.json | 85 ++-- .../GulbenFestival/components/topUser.vue | 2 +- src/views/Activities/GulbenFestival/index.vue | 390 ++++++++++++++---- .../Activities/GulbenFestival/page.config.js | 12 +- .../Activities/GulbenFestival/页面创建信息.md | 14 +- 12 files changed, 580 insertions(+), 409 deletions(-) diff --git a/src/components/MaskLayer.vue b/src/components/MaskLayer.vue index 69b347f..c79ecc6 100644 --- a/src/components/MaskLayer.vue +++ b/src/components/MaskLayer.vue @@ -1,24 +1,13 @@ diff --git a/src/components/itemCenter.vue b/src/components/itemCenter.vue index 4293b39..17ba47a 100644 --- a/src/components/itemCenter.vue +++ b/src/components/itemCenter.vue @@ -8,7 +8,7 @@ :src="imgUrl" :class="flip ? 'flipImg' : ''" alt="" - style="width: 100%; height: 100%; display: block" + style="width: 100%; height: 100%; display: block; background-color: transparent" />
= $10", - "cash_withdraw": "سحب نقدي", "bank_card": "بطاقة مصرفية", "currently_in_use": "بطاقتك (قيد الاستخدام)", @@ -306,9 +279,7 @@ "enter_withdraw_amount": "أدخل مبلغ السحب", "withdrawal_rule_1": "*(1)يجب أن يكون مبلغ السحب >=${amount}", "withdrawal_rule_2": "(2)ستفرض المنصة رسوم معالجة بنسبة {fee}% على مبلغ السحب الحالي.", - "admin_policy": "سياسة المشرف", - "invitation_to_register": "دعوة للتسجيل", "total_invitations": "إجمالي الدعوات:", "todays_invitation": "دعوات اليوم:", @@ -323,16 +294,13 @@ "invitation_code_binding_failed": "فشل ربط رمز الدعوة.", "user_id_prefix": "المعرف:", "day_unit": "يوم", - "select_country": "اختر البلد", "select_your_country": "اختر بلدك", "my_information": "معلوماتي:", "select_a_country": "اختر البلد:", - "min_transfer_amount": "الحد الأدنى للمبالغ المقبولة:", "min_transfer_amount_tip": "يمكن لعملاء إعادة الشحن اختيار الحد الأدنى للمبلغ الذي يمكنهم قبوله من تحويلات المستخدمين، والذي يمكن تعديله في أول كل شهر. (على سبيل المثال، إذا قام عميل إعادة الشحن بتغيير الحد ليقبل فقط التحويلات التي تبلغ قيمتها 10 دولارات أو أكثر، فلن يتمكن المستخدمون الذين تقل تحويلاتهم عن 10 دولارات من تحويل الأموال إلى ذلك العميل.)", "confirm_transfer_limit": "هل أنت متأكد من أنك تريد تحديد هذا الحد الأدنى للمبلغ؟", - "admin_center": "مركز الإدارة", "my_leader": "قائدي:", "my_role": "دوري:", @@ -352,7 +320,6 @@ "new_bd_leaders_bound": "قادة BD مربوطون جدد:", "new_bds_bound": "BD مربوطون جدد:", "new_agencies_bound": "وكالات مربوطة جديدة:", - "ranking_wealth": "الثروة", "ranking_charm": "السحر", "ranking_room": "الغرفة", @@ -360,16 +327,13 @@ "ranking_weekly": "الأسبوعي", "ranking_monthly": "الشهري", "ranking_hourly": "بالساعة", - "good_id_placeholder": "أدخل من 2 إلى 8 أرقام", "my_wealth_level": "مستوى الثراء الخاص بي:", - "application_submitted_success": "تم تقديم طلبك بنجاح، يرجى انتظار المراجعة!", "error_wealth_level_insufficient": "يجب أن تصل إلى مستوى الثراء 10 لتقديم طلب للحصول على معرف حصري.", "error_invalid_id_format": "يرجى إدخال المعرف بالتنسيق الصحيح.", "error_already_applied": "لقد قدمت بالفعل طلبًا للحصول على معرف حصري في مستوى الثراء الحالي.", "error_id_already_used": "تم استخدام المعرف من قبل مستخدم آخر.", - "recharge_placeholder": "يرجى إدخال معرف APP الخاص بك", "recharge_button": "شحن", "faq_title": "الأسئلة المتكررة:", @@ -382,7 +346,6 @@ "recharge_instruction_2": "2. بعد أن يقوم تاجر العملات بإعادة الشحن، سيتم إرسال العملات المعاد شحنها مباشرة إلى حساب تاجر العملات.", "recharge_instruction_3": "3. كيفية الحصول على معرف الحساب: (1) افتح صفحة 'الخاص بي' في APP. (2) يمكنك تأكيد معرف الحساب في أعلى الصفحة.", "recharge_instruction_4": "4. إذا كان حساب المعرف الذي تدخله هو حساب تاجر عملات، فسيتم إرسال العملة إلى مركز تاجر العملات لهذا الحساب.", - "bd_leaders_label": "قادة BD:", "team_total_income_label": "إجمالي دخل الفريق:", "number_of_agencies_personnel_label": "عدد موظفي الوكالات:", @@ -391,24 +354,19 @@ "agency_label": "الوكالة:", "team_total_income_text": "إجمالي دخل الفريق:", "team_total_income_text_capitalized": "إجمالي دخل الفريق:", - "bds_label": "BD:", "bd_id_label": "معرف BD:", "agency_team_income": "دخل فريق الوكالة:", - "agencies_label": "الوكالات:", "agency_id_label": "معرف الوكالة:", "number_of_hosts_personnel_label": "عدد موظفي المضيفين:", "host_label": "المضيف:", "host_income_label": "دخل المضيف:", - "my_linked_recharge_agent": "وكيل الشحن المرتبط بي", "my_total_income": "إجمالي دخلي:", "this_period_recharge": "إعادة الشحن لهذه الفترة:", "recharge_agency_list": "قائمة وكيل إعادة الشحن:", - "invite_recharge_agent": "دعوة المستخدم ليصبح وكيل إعادة الشحن", - "item_distribution": "توزيع العناصر", "validity": "الصلاحية", "day": "يوم", @@ -420,15 +378,12 @@ "chat_box": "صندوق الدردشة", "theme": "الموضوع", "vip": "VIP", - "bd_policy": "سياسة BD", "bd_leader_policy": "سياسة قائد BD", - "recharge_reward": "مكافأة إعادة الشحن", "ranking": "الترتيب", "lottery": "القرعة", "withdraw": "سحب", - "Accumulated recharge": "إجمالي الشحن", "Rewards": "المكافآت", "Total Tickets": "إجمالي التذاكر", @@ -447,14 +402,11 @@ "Send 5 Ramadan gifts ({currentValue}/{targetValue})": "أرسل 5 هدايا رمضان. ({currentValue}/{targetValue})", "exchange_success_coins": "تم تبادل العملات بنجاح", "exchange_failed_coins": "فشل التبادل، يرجى المحاولة لاحقاً.", - "barrage_won_prize": "فاز {nickname} بـ {prizeName}", "barrage_won_the_prize": "فاز {nickname} بـ {prizeName}", - "sign_in_received": "تم الاستلام", "sign_in_free": "مجاناً", "sign_in_make_up": "تعويض", - "no_relationship": "أنت غير متزوج حاليًا.", "go_add_cp": "اذهب وأضف شريك", "my_couple": "زوجي/زوجتي", @@ -473,32 +425,25 @@ "heartbeat_value_points_4_percent": "{amount} (4% من نقاط قيمة نبض القلب) × 2", "heartbeat_value_points_3_percent": "{amount} (3% من نقاط قيمة نبض القلب) × 2", "heartbeat_value_points_2_percent": "{amount} (2% من نقاط قيمة نبض القلب) × 2", - "task_go": "اذهب >", "task_receive": "استلام", "task_received": "تم الاستلام", - "remaining_lottery_tickets": "تذاكر اليانصيب المتبقية", "how_to_get_ticket": "كيفية الحصول على تذكرة", - "lucky_and_magical_gifts_win_gold_coins": "الهدايا المحظوظة والسحرية تفوز بالعملات الذهبية", "win_coins_in_the_game": "اربح العملات في اللعبة", "coins_per_get": "100000 عملة/احصل", "ramadan_kareem": "رمضان كريم", - "enter_invitation_code": "أدخل رمز الدعوة >", "contact_your_inviter": "اتصل بالشخص الذي دعاك >", "copy_invitation_code_tip": "*انسخ رمز الدعوة الخاص بك وأرسله إلى أصدقائك الجدد.", "share_invitation_message": "قم بالتنزيل وأدخل رمز الدعوة '{code}' لتحصل على فرصة للمطالبة بمكافآت تصل قيمتها إلى 100 دولار! انضم إلينا للفوز بجوائز سخية!", "my_invitation_code": "رمز الدعوة الخاص بي:", - "reward_days": "{quantity} يوم", - "weekly_rank": "الترتيب الأسبوعي", "daily_rank": "الترتيب اليومي", "weekly_rewards": "المكافآت الأسبوعية", "daily_rewards": "المكافآت اليومية", - "active_game_current_daily_recharge_amount": "مبلغ الشحن اليومي الحالي: {amount}.", "active_game_current_daily_game_spending": "إنفاق الألعاب اليومي الحالي: {coins} عملة.", "active_game_task1_detail": "1. الهدف اليومي: أنفق ({progress} عملة). افتح مكافأة {reward} عملة ليوم غد!", @@ -513,5 +458,33 @@ "active_game_reward_gift": "هدايا مخصصة *1", "active_game_reward_frame": "إطارات مخصصة * 365 يوم", "active_game_reward_ride": "مركبات مخصصة * 60 يوم", - "active_game_reward_banner": "لافتات مخصصة * 15 يوم" + "active_game_reward_banner": "لافتات مخصصة * 15 يوم", + "rule": "القواعد", + "history": "السجل", + "CollectCards to Win Prizes": "اجمع البطاقات واربح الجوائز", + "Personal Rank": "ترتيب الأفراد", + "Room Rank": "ترتيب الغرف", + "Reward": "المكافآت", + "Ranking": "الترتيب", + "gulben_collect_tip": "*استبدل بطاقاتك واسحب للحصول على مكافآت رائعة!", + "gulben_remaining_tickets": "التذاكر المتبقية: *{count}", + "gulben_coins_cost": "{count}/عملات", + "gulben_combine_count": "دمج * {count}", + "gulben_redeem": "استبدال", + "gulben_accept": "قبول", + "gulben_rule_title_earn": "1. كيفية كسب التذاكر:", + "gulben_rule_earn_1": "(1) أكمل سلسلة المهام المحددة لكسب التذاكر.", + "gulben_rule_title_use": "2. كيفية استخدام التذاكر:", + "gulben_rule_use_1": "(1) يمكن استخدام كل تذكرة لسحب بطاقة من فئة R عشوائيا.", + "gulben_rule_title_combine": "3. دمج البطاقات والترقية:", + "gulben_rule_combine_1": "(1) ادمج 5 بطاقات R مختلفة للحصول عشوائيا على بطاقة SR واحدة.", + "gulben_rule_combine_2": "(2) ادمج 3 بطاقات SR مختلفة للحصول عشوائيا على بطاقة SSR واحدة.", + "gulben_rule_title_redeem": "4. جمع المكافآت واستبدالها:", + "gulben_rule_redeem_1": "(1) اجمع 5 بطاقات R مختلفة لاستبدال فرصة سحب مكافأة قياسية واحدة.", + "gulben_rule_redeem_2": "(2) اجمع 3 بطاقات SR مختلفة لاستبدال فرصة سحب مكافأة مميزة واحدة.", + "gulben_rule_redeem_3": "(3) اجمع بطاقتي SSR مختلفتين لاستبدال فرصة سحب مكافأة فاخرة واحدة!", + "gulben_room_rule_title": "قواعد النشاط:", + "gulben_room_rule_1": "1. سيتم احتساب إيرادات غرفتك خلال النشاط. بعد انتهاء النشاط، وبناء على مستوى إيرادات الغرفة، سيحصل مالك الغرفة (وليس الوكالة) على مكافآت سخية من العملات و VIP.", + "gulben_room_rule_2": "2. هذا الحدث غير مرتبط ب iPhone أو Google.", + "gulben_room_rule_3": "3. تحتفظ الجهة الرسمية بحق التفسير النهائي لهذا الحدث." } diff --git a/src/locales/bn.json b/src/locales/bn.json index 9f3e6ac..b9ce4be 100644 --- a/src/locales/bn.json +++ b/src/locales/bn.json @@ -121,21 +121,17 @@ "team_target": "দল লক্ষ্য", "my": "আমার", "host_count": "হোস্ট সংখ্যা:", - "agency_number": "এজেন্সি সংখ্যা", "team_salary": "দল বেতন", "team_recharge": "দল মোট রিচার্জ", "bd_number": "বিডি সংখ্যা", - "no_policy_data_available": "কোন নীতি ডেটা উপলব্ধ নেই", - "host_setting": "হোস্ট সেটিং", "my_agency": "আমার এজেন্সি", "tips": "টিপস", "prompt": "প্রম্পট", "to_improve": "সম্পূর্ণ করুন", "leave_agent_tips": "হোস্ট শুধুমাত্র প্রতি মাসের ১ এবং ১৬ তারিখে বর্তমান এজেন্ট ছাড়তে পারে", - "loading": "লোড হচ্ছে", "details": "বিস্তারিত", "failed_to_load_balance": "ব্যালেন্স লোড করতে ব্যর্থ। দয়া করে আবার চেষ্টা করুন।", @@ -146,7 +142,6 @@ "exchange_success": "${price} এর জন্য মুদ্রা সফলভাবে বিনিময় করা হয়েছে", "exchange_failed": "বিনিময় ব্যর্থ, দয়া করে পরে আবার চেষ্টা করুন।", "exchange_error_occurred": "বিনিময় প্রক্রিয়া চলাকালীন একটি ত্রুটি ঘটেছে। দয়া করে পরে আবার চেষ্টা করুন।", - "please_select_amount": "দয়া করে প্রথমে একটি পরিমাণ নির্বাচন করুন", "please_select_payee": "দয়া করে প্রথমে একটি প্রাপক নির্বাচন করুন", "enter_payment_password": "দয়া করে আপনার পেমেন্ট পাসওয়ার্ড লিখুন:", @@ -157,13 +152,11 @@ "transfer_dollar_failed": "${price} স্থানান্তর ব্যর্থ", "transfer_error": "স্থানান্তর ব্যর্থ, দয়া করে পরে আবার চেষ্টা করুন", "insufficient_item_vouchers": "আপনার পর্যাপ্ত আইটেম ভাউচার নেই। দয়া করে আপনার ভাউচার পরিমাণ পরীক্ষা করুন।", - "search_payee": "প্রাপক অনুসন্ধান", "checking_permissions": "অনুমতি পরীক্ষা করা হচ্ছে", "searching": "অনুসন্ধান করা হচ্ছে", "confirm_transfer_to_user": "আপনি কি এই ব্যবহারকারীকে মুদ্রা স্থানান্তর করতে চান?", "user_not_found_or_search_failed": "ব্যবহারকারী পাওয়া যায়নি বা অনুসন্ধান ব্যর্থ", - "application_record_not_found": "আবেদন রেকর্ড পাওয়া যায়নি", "application_processed_cannot_cancel": "আবেদন প্রক্রিয়া করা হয়েছে এবং বাতিল করা যাবে না", "cancellation_failed_try_again": "বাতিল ব্যর্থ, দয়া করে আবার চেষ্টা করুন", @@ -176,25 +169,19 @@ "request_not_acceptable": "অনুরোধ গ্রহণযোগ্য নয়", "something_went_wrong": "কিছু ভুল হয়েছে, দয়া করে আবার চেষ্টা করুন।", "confirm": "নিশ্চিত করুন", - "information_details": "তথ্য বিবরণ", "no_transaction_records": "কোন লেনদেন রেকর্ড নেই", "retry": "আবার চেষ্টা করুন", "failed_to_load_data": "ডেটা লোড করতে ব্যর্থ", - "no_data_available": "কোন ডেটা উপলব্ধ নেই", - "no_more_members": "আর কোনো সদস্য নেই", "failed_to_delete_member": "সদস্য মুছে ফেলতে ব্যর্থ। দয়া করে আবার চেষ্টা করুন।", - "no_users_found": "কোন ব্যবহারকারী পাওয়া যায়নি", "enter_user_id_to_search": "অনুসন্ধান করার জন্য ব্যবহারকারী আইডি লিখুন", - "total_recharge": "মোট রিচার্জ", "total_expenditure": "মোট ব্যয়", "coins": "মুদ্রা", "no_selling_records_yet": "এখনও কোনো বিক্রয় রেকর্ড নেই", - "users_message": "ব্যবহারকারীর বার্তা", "no_messages": "কোন বার্তা নেই", "agree": "সম্মত", @@ -203,7 +190,6 @@ "approved_application": "{name} এর আবেদন অনুমোদিত হয়েছে", "rejected_application": "{name} এর আবেদন প্রত্যাখ্যান করা হয়েছে", "operation_failed": "অপারেশন ব্যর্থ, দয়া করে আবার চেষ্টা করুন", - "cash_out": "নগদ উত্তোলন", "complete_information": "তথ্য সম্পূর্ণ করুন", "contact_number": "যোগাযোগ নম্বর", @@ -211,20 +197,16 @@ "cash_withdrawal_tips": "নগদ উত্তোলনের পর্যালোচনা প্রয়োজন। পর্যালোচনা পাস হওয়ার পরে নগদ আসার জন্য ধৈর্য ধরে অপেক্ষা করুন।", "receive": "গ্রহণ", "rejection": "প্রত্যাখ্যান", - "kyc": "কেওয়াইসি", "transfer_coins": "মুদ্রা স্থানান্তর", "plus_coins": "+{amount} মুদ্রা", - "enter_contact_number": "দয়া করে আপনার যোগাযোগ নম্বর লিখুন", "enter_other_description": "দয়া করে অন্য বিবরণ লিখুন (উদাহরণস্বরূপ: যাতে আমরা আপনার সাথে যোগাযোগ করতে পারি, আপনার WhatsApp অ্যাকাউন্ট দিন।)", "passport_id_card_title": "পাসপোর্ট/আইডি কার্ড", "submit": "জমা দিন", "upload_failed": "আপলোড ব্যর্থ", - "under_review": "পর্যালোচনাধীন", "approved": "অনুমোদিত", - "current_earnings_label": "বর্তমান আয়:", "current_earnings": "বর্তমান আয়: ${amount}", "transfer_to_recharge_agent": "রিচার্জ এজেন্টের কাছে স্থানান্তর", @@ -243,7 +225,6 @@ "withdrawable_amount": "উত্তোলনযোগ্য পরিমাণ: {amount}", "fill_info_tips": "দয়া করে তথ্য সাবধানে পূরণ করুন। তথ্য সম্পূর্ণ হওয়ার পরেই আপনি নগদ উত্তোলন করতে পারবেন।", "card_issue_tips": "* যদি কার্ড নম্বরে কোনো সমস্যা থাকে এবং স্থানান্তর করা না যায়, তবে পর্যালোচনা প্রত্যাখ্যান করা হবে।", - "ranking_help_rule_1": "১. ব্যবহারকারীরা নির্দিষ্ট লাকি গিফট উপহার দিয়ে ঈদ উল-ফিতর উদযাপন করতে পারে। প্রতি ১ কয়েন মূল্যের নির্দিষ্ট লাকি গিফট উপহারের জন্য, ব্যবহারকারীর উদারতা স্কোর ১ পয়েন্ট বৃদ্ধি পাবে। বিস্তারিত জন্য ইভেন্ট পৃষ্ঠা দেখুন।", "ranking_help_rule_2": "২. ইভেন্ট শেষ হওয়ার পর, শীর্ষ তিন র‍্যাঙ্ক করা খেলোয়াড়দের বিশেষ আইটেম পুরস্কার দেওয়া হবে। পুরস্কারগুলি সরাসরি আপনার অ্যাকাউন্টে পাঠানো হবে।", "ranking_help_rule_3": "*বিজ্ঞপ্তি", @@ -251,35 +232,27 @@ "ranking_help_rule_5": "ক) ইভেন্ট চলাকালীন অংশগ্রহণকারী খেলোয়াড়দের প্রতি বিদ্বেষপূর্ণ মন্তব্য, গুজব, ইঙ্গিত ইত্যাদি", "ranking_help_rule_6": "খ) অবৈধভাবে কয়েন এবং নির্দিষ্ট গিফট সংগ্রহ", "activity_apple_disclaimer": "*এই কার্যক্রমটি Apple Inc. এর সাথে সম্পর্কিত নয়।", - "recharge_help_rule_1": "১. রিচার্জ পুরস্কার ইভেন্ট এখন থেকে ২০২৬ সালের ৪ এপ্রিল পর্যন্ত চলবে।", "recharge_help_rule_2": "২. যদি এই ইভেন্ট চলাকালীন কোনো ব্যবহারকারীর সঞ্চিত রিচার্জ পরিমাণ এক্সক্লুসিভ আইটেম তৈরির জন্য নির্দিষ্ট পরিমাণে পৌঁছায়, তবে ব্যবহারকারীর দ্রুত অফিসিয়াল স্টাফের সাথে যোগাযোগ করা উচিত (ID: 10086, ID: 10000, ID: 10003, ID: 10001), স্টাফের কাছে ইভেন্টের একটি স্ক্রিনশট এবং তাদের ব্যবহারকারী আইডি পাঠানো উচিত, এবং এক্সক্লুসিভ আইটেমের জন্য উপকরণ বা প্রয়োজনীয়তা প্রদান করা উচিত।", "recharge_help_rule_3": "৩. একই ডিভাইস বা IP ঠিকানা ব্যবহারকারীরা যেকোনো উপায়ে একাধিক অ্যাকাউন্ট তৈরি করতে পারে, তাই টাস্কটি শুধুমাত্র একবার পুরস্কার হিসাবে দাবি করা যাবে।", - "withdrawal_help_rule_1": "১. ব্যবহারকারীরা তাদের ডলার আয় $10 এ পৌঁছালে নগদ উত্তোলন করতে পারে।", "withdrawal_help_rule_2": "২. ব্যবহারকারীরা নগদ উত্তোলনের চেয়ে উচ্চতর রিটার্ন পেতে বিনিময় বা রিচার্জ এজেন্টের কাছে স্থানান্তরও করতে পারে।", "withdrawal_help_rule_3": "৩. যদি ব্যবহারকারী ইভেন্ট শেষ হওয়ার আগে কোনো অপারেশন না করে, তবে তাদের ডলার পাওয়ার সুযোগ ত্যাগ করেছে বলে গণ্য করা হবে, এবং তাদের প্রাপ্ত ডলার সিস্টেম দ্বারা মুছে ফেলা হবে।", - "bd": "বিডি", "bd_leader": "বিডি লিডার", "bd_salary": "বিডি বেতন", - "agency_list": "এজেন্সি তালিকা", "bd_list": "বিডি তালিকা", - "bd_leader_history": "বিডি লিডার ইতিহাস", - "current_status": "বর্তমান অবস্থা:", "review_passed": "পর্যালোচনা পাস", "review_failed": "পর্যালোচনা ব্যর্থ", "awaiting_review": "পর্যালোচনার জন্য অপেক্ষা করছে", - "withdrawal_method": "উত্তোলন পদ্ধতি", "please_select_bank_card": "দয়া করে একটি ব্যাংক কার্ড নির্বাচন করুন", "change_withdrawal_method": "উত্তোলন পদ্ধতি পরিবর্তন", "enter_cash_out_amount": "দয়া করে নগদ উত্তোলনের পরিমাণ লিখুন", "cash_out_min_amount_tip": "*নগদ উত্তোলনের পরিমাণ অবশ্যই >= $10 হতে হবে", - "cash_withdraw": "নগদ উত্তোলন", "bank_card": "ব্যাংক কার্ড", "currently_in_use": "আপনার কার্ড (ব্যবহারে)", @@ -306,9 +279,7 @@ "enter_withdraw_amount": "উত্তোলনের পরিমাণ লিখুন", "withdrawal_rule_1": "*(1)উত্তোলনের পরিমাণ অবশ্যই >=${amount} হতে হবে", "withdrawal_rule_2": "(2)প্ল্যাটফর্ম বর্তমান উত্তোলনের পরিমাণের উপর {fee}% হ্যান্ডলিং ফি চার্জ করবে।", - "admin_policy": "অ্যাডমিন নীতি", - "invitation_to_register": "নিবন্ধনের জন্য আমন্ত্রণ", "total_invitations": "মোট আমন্ত্রণ:", "todays_invitation": "আজকের আমন্ত্রণ:", @@ -323,16 +294,13 @@ "invitation_code_binding_failed": "আমন্ত্রণ কোড বাউন্ডিং ব্যর্থ।", "user_id_prefix": "আইডি:", "day_unit": "দিন", - "select_country": "দেশ নির্বাচন", "select_your_country": "আপনার দেশ নির্বাচন করুন", "my_information": "আমার তথ্য:", "select_a_country": "একটি দেশ নির্বাচন করুন:", - "min_transfer_amount": "গৃহীত ন্যূনতম স্থানান্তর পরিমাণ:", "min_transfer_amount_tip": "রিচার্জ এজেন্টরা ব্যবহারকারী স্থানান্তর থেকে তারা গ্রহণ করতে পারে এমন ন্যূনতম পরিমাণ বেছে নিতে পারে, যা প্রতি মাসের প্রথম দিনে পরিবর্তন করা যেতে পারে। (উদাহরণস্বরূপ, যদি একটি রিচার্জ এজেন্ট শুধুমাত্র $10 বা তার বেশি স্থানান্তর গ্রহণ করতে পরিবর্তন করে, তবে $10 এর কম একক স্থানান্তর সহ ব্যবহারকারীরা সেই রিচার্জ এজেন্টের কাছে তহবিল স্থানান্তর করতে পারবে না।)", "confirm_transfer_limit": "আপনি কি এই স্থানান্তর পরিমাণ সীমা নির্বাচন করতে চান?", - "admin_center": "অ্যাডমিন সেন্টার", "my_leader": "আমার লিডার:", "my_role": "আমার ভূমিকা:", @@ -352,7 +320,6 @@ "new_bd_leaders_bound": "নতুন বিডি লিডার বাউন্ড:", "new_bds_bound": "নতুন বিডি বাউন্ড:", "new_agencies_bound": "নতুন এজেন্সি বাউন্ড:", - "ranking_wealth": "সম্পদ", "ranking_charm": "আকর্ষণ", "ranking_room": "রুম", @@ -360,16 +327,13 @@ "ranking_weekly": "সাপ্তাহিক", "ranking_monthly": "মাসিক", "ranking_hourly": "ঘণ্টা", - "good_id_placeholder": "২ থেকে ৮ সংখ্যা লিখুন", "my_wealth_level": "আমার সম্পদ স্তর:", - "application_submitted_success": "আপনার আবেদন সফলভাবে জমা দেওয়া হয়েছে, দয়া করে পর্যালোচনার জন্য অপেক্ষা করুন!", "error_wealth_level_insufficient": "একটি একচেটিয়া আইডির জন্য আবেদন করতে আপনার সম্পদ স্তর ১০ এ পৌঁছাতে হবে।", "error_invalid_id_format": "দয়া করে সঠিক ফরম্যাটে একটি আইডি লিখুন।", "error_already_applied": "আপনি বর্তমান সম্পদ স্তরে ইতিমধ্যে একটি একচেটিয়া আইডির জন্য আবেদন করেছেন।", "error_id_already_used": "আইডি ইতিমধ্যে অন্য ব্যবহারকারী দ্বারা ব্যবহার করা হয়েছে।", - "recharge_placeholder": "দয়া করে আপনার অ্যাপের আইডি লিখুন", "recharge_button": "রিচার্জ", "faq_title": "প্রায়শই জিজ্ঞাসিত প্রশ্ন:", @@ -382,7 +346,6 @@ "recharge_instruction_2": "২、কয়েন বিক্রেতা রিচার্জ করার পরে, রিচার্জ করা কয়েনগুলি সরাসরি কয়েন বিক্রেতা অ্যাকাউন্টে পাঠানো হবে।", "recharge_instruction_3": "৩、একটি অ্যাকাউন্টের জন্য আইডি কীভাবে পাবেন:(১) অ্যাপে 'আমার' পৃষ্ঠা খুলুন।(২) আপনি পৃষ্ঠার উপরে অ্যাকাউন্ট আইডি নিশ্চিত করতে পারেন।", "recharge_instruction_4": "৪、আপনি যে আইডি অ্যাকাউন্ট লিখছেন তা যদি একটি কয়েন বিক্রেতা অ্যাকাউন্ট হয়, তবে কয়েনটি সেই অ্যাকাউন্টের কয়েন বিক্রেতা সেন্টারে পাঠানো হবে।", - "bd_leaders_label": "বিডি লিডার:", "team_total_income_label": "দল মোট আয়:", "number_of_agencies_personnel_label": "এজেন্সি কর্মী সংখ্যা:", @@ -391,24 +354,19 @@ "agency_label": "এজেন্সি:", "team_total_income_text": "দল মোট আয়:", "team_total_income_text_capitalized": "দল মোট আয়:", - "bds_label": "বিডি:", "bd_id_label": "বিডি এর আইডি:", "agency_team_income": "এজেন্সি দল আয়:", - "agencies_label": "এজেন্সি:", "agency_id_label": "এজেন্সির আইডি:", "number_of_hosts_personnel_label": "হোস্ট কর্মী সংখ্যা:", "host_label": "হোস্ট:", "host_income_label": "হোস্ট আয়:", - "my_linked_recharge_agent": "আমার লিঙ্ক করা রিচার্জ এজেন্ট", "my_total_income": "আমার মোট আয়:", "this_period_recharge": "এই সময়ের রিচার্জ:", "recharge_agency_list": "রিচার্জ এজেন্সি তালিকা:", - "invite_recharge_agent": "ব্যবহারকারীকে রিচার্জ এজেন্সি হতে আমন্ত্রণ জানান", - "item_distribution": "আইটেম বিতরণ", "validity": "বৈধতা", "day": "দিন", @@ -420,15 +378,12 @@ "chat_box": "চ্যাট বক্স", "theme": "থিম", "vip": "ভিআইপি", - "bd_policy": "বিডি নীতি", "bd_leader_policy": "বিডি লিডার নীতি", - "recharge_reward": "রিচার্জ পুরস্কার", "ranking": "র‍্যাঙ্কিং", "lottery": "লটারি", "withdraw": "উত্তোলন", - "Accumulated recharge": "সঞ্চিত রিচার্জ", "Rewards": "পুরস্কার", "Total Tickets": "মোট টিকিট", @@ -447,14 +402,11 @@ "Send 5 Ramadan gifts ({currentValue}/{targetValue})": "৫টি রমজান উপহার পাঠান। ({currentValue}/{targetValue})", "exchange_success_coins": "মুদ্রা সফলভাবে বিনিময় করা হয়েছে", "exchange_failed_coins": "মুদ্রা বিনিময় ব্যর্থ, দয়া করে পরে আবার চেষ্টা করুন।", - "barrage_won_prize": "{nickname} {prizeName} জিতেছে", "barrage_won_the_prize": "{nickname} {prizeName} পুরস্কার জিতেছে", - "sign_in_received": "গ্রহণ করা হয়েছে", "sign_in_free": "বিনামূল্যে", "sign_in_make_up": "মেইক-আপ", - "no_relationship": "আপনি বর্তমানে একটি সম্পর্কে নেই।", "go_add_cp": "সিপি যোগ করতে যান", "my_couple": "আমার দম্পতি", @@ -473,32 +425,25 @@ "heartbeat_value_points_4_percent": "{amount} (হার্টবিট ভ্যালু পয়েন্টের ৪%) * ২", "heartbeat_value_points_3_percent": "{amount} (হার্টবিট ভ্যালু পয়েন্টের ৩%) * ২", "heartbeat_value_points_2_percent": "{amount} (হার্টবিট ভ্যালু পয়েন্টের ২%) * ২", - "task_go": "যান >", "task_receive": "গ্রহণ", "task_received": "গ্রহণ করা হয়েছে", - "remaining_lottery_tickets": "অবশিষ্ট লটারি টিকিট", "how_to_get_ticket": "কীভাবে টিকিট পাবেন", - "lucky_and_magical_gifts_win_gold_coins": "ভাগ্যবান এবং জাদুকরী উপহার স্বর্ণ মুদ্রা জিতে", "win_coins_in_the_game": "গেম থেকে মুদ্রা জিতুন", "coins_per_get": "১০০০০০ মুদ্রা/পান", "ramadan_kareem": "রমজান কারিম", - "enter_invitation_code": "আমন্ত্রণ কোড লিখুন >", "contact_your_inviter": "আপনার আমন্ত্রণকারীর সাথে যোগাযোগ করুন >", "copy_invitation_code_tip": "*আপনার আমন্ত্রণ কোড কপি করুন এবং আপনার নতুন বন্ধুদের কাছে পাঠান।", "share_invitation_message": "ডাউনলোড করুন এবং আমন্ত্রণ কোড '{code}' লিখে $100 পর্যন্ত মূল্যের পুরস্কার দাবি করার সুযোগ পান! উদার পুরস্কার জিততে আমাদের সাথে যোগ দিন!", "my_invitation_code": "আমার আমন্ত্রণ কোড:", - "reward_days": "{quantity} দিন", - "weekly_rank": "সাপ্তাহিক র‍্যাঙ্ক", "daily_rank": "দৈনিক র‍্যাঙ্ক", "weekly_rewards": "সাপ্তাহিক পুরস্কার", "daily_rewards": "দৈনিক পুরস্কার", - "active_game_current_daily_recharge_amount": "বর্তমান দৈনিক রিচার্জের পরিমাণ: {amount}.", "active_game_current_daily_game_spending": "বর্তমান দৈনিক গেম খরচ: {coins} কয়েন।", "active_game_task1_detail": "1. দৈনিক লক্ষ্য: খরচ করুন ({progress} কয়েন)। আগামীকালের জন্য {reward} কয়েন পুরস্কার আনলক করুন!", @@ -513,5 +458,33 @@ "active_game_reward_gift": "কাস্টমাইজড গিফট *1", "active_game_reward_frame": "কাস্টমাইজড ফ্রেম * 365 দিন", "active_game_reward_ride": "কাস্টমাইজড ভেহিকল * 60 দিন", - "active_game_reward_banner": "কাস্টমাইজড ব্যানার * 15 দিন" + "active_game_reward_banner": "কাস্টমাইজড ব্যানার * 15 দিন", + "rule": "নিয়ম", + "history": "ইতিহাস", + "CollectCards to Win Prizes": "কার্ড সংগ্রহ করে পুরস্কার জিতুন", + "Personal Rank": "ব্যক্তিগত র‍্যাঙ্ক", + "Room Rank": "রুম র‍্যাঙ্ক", + "Reward": "পুরস্কার", + "Ranking": "র‍্যাঙ্কিং", + "gulben_collect_tip": "*আপনার কার্ড রিডিম করুন এবং দারুণ পুরস্কারের জন্য ড্র করুন!", + "gulben_remaining_tickets": "অবশিষ্ট টিকিট: *{count}", + "gulben_coins_cost": "{count}/কয়েন", + "gulben_combine_count": "কম্বাইন * {count}", + "gulben_redeem": "রিডিম", + "gulben_accept": "গ্রহণ করুন", + "gulben_rule_title_earn": "1. কীভাবে টিকিট পাবেন:", + "gulben_rule_earn_1": "(1) টিকিট পেতে নির্দিষ্ট সিরিজের কাজ সম্পন্ন করুন।", + "gulben_rule_title_use": "2. কীভাবে টিকিট ব্যবহার করবেন:", + "gulben_rule_use_1": "(1) প্রতিটি টিকিট দিয়ে এলোমেলোভাবে একটি R-গ্রেড কার্ড ড্র করা যায়।", + "gulben_rule_title_combine": "3. কার্ড কম্বাইন ও আপগ্রেড:", + "gulben_rule_combine_1": "(1) 5টি ভিন্ন R-গ্রেড কার্ড কম্বাইন করে এলোমেলোভাবে একটি SR-গ্রেড কার্ড পান।", + "gulben_rule_combine_2": "(2) 3টি ভিন্ন SR-গ্রেড কার্ড কম্বাইন করে এলোমেলোভাবে একটি SSR-গ্রেড কার্ড পান।", + "gulben_rule_title_redeem": "4. সংগ্রহ ও পুরস্কার রিডিম:", + "gulben_rule_redeem_1": "(1) 5টি ভিন্ন R-গ্রেড কার্ড সংগ্রহ করে একটি স্ট্যান্ডার্ড পুরস্কার ড্র সুযোগ রিডিম করুন।", + "gulben_rule_redeem_2": "(2) 3টি ভিন্ন SR-গ্রেড কার্ড সংগ্রহ করে একটি প্রিমিয়াম পুরস্কার ড্র সুযোগ রিডিম করুন।", + "gulben_rule_redeem_3": "(3) 2টি ভিন্ন SSR-গ্রেড কার্ড সংগ্রহ করে একটি ডিলাক্স পুরস্কার ড্র সুযোগ রিডিম করুন!", + "gulben_room_rule_title": "অ্যাক্টিভিটির নিয়ম:", + "gulben_room_rule_1": "1. অ্যাক্টিভিটি চলাকালীন আপনার রুমের আয় গণনা করা হবে। অ্যাক্টিভিটি শেষ হওয়ার পরে, রুমের আয়ের স্তর অনুযায়ী রুমের মালিক (এজেন্সি নয়) উদার কয়েন এবং VIP পুরস্কার পাবেন।", + "gulben_room_rule_2": "2. এই ইভেন্টটি iPhone বা Google-এর সাথে সম্পর্কিত নয়।", + "gulben_room_rule_3": "3. এই ইভেন্টের চূড়ান্ত ব্যাখ্যার অধিকার অফিসিয়াল পক্ষ সংরক্ষণ করে।" } diff --git a/src/locales/en.json b/src/locales/en.json index 49af043..49a133d 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -121,21 +121,17 @@ "team_target": "Team target", "my": "My", "host_count": "Host number:", - "agency_number": "Agency number", "team_salary": "Team salary", "team_recharge": "Team total recharge", "bd_number": "BD Number", - "no_policy_data_available": "No policy data available", - "host_setting": "Host Setting", "my_agency": "My Agency", "tips": "Tips", "prompt": "Prompt", "to_improve": "To improve", "leave_agent_tips": "The host can only leave the current agent on the 1st and 16th of each month", - "loading": "Loading", "details": "Details", "failed_to_load_balance": "Failed to load balance. Please try again.", @@ -146,7 +142,6 @@ "exchange_success": "Successfully exchanged coins for ${price}", "exchange_failed": "Exchange failed, please try again later.", "exchange_error_occurred": "An error occurred during the exchange process. Please try again later.", - "please_select_amount": "Please select an amount first", "please_select_payee": "Please select a payee first", "enter_payment_password": "Please enter your payment password:", @@ -157,13 +152,11 @@ "transfer_dollar_failed": "Failed to transfer ${price}", "transfer_error": "Transfer failed, please try again later", "insufficient_item_vouchers": "You do not have enough item vouchers. Please check your voucher quantity.", - "search_payee": "Search Payee", "checking_permissions": "Checking permissions", "searching": "Searching", "confirm_transfer_to_user": "Are you sure you want to transfer coins to this user?", "user_not_found_or_search_failed": "User not found or search failed", - "application_record_not_found": "Application record not found", "application_processed_cannot_cancel": "Application has been processed and cannot be canceled", "cancellation_failed_try_again": "Cancellation failed, please try again", @@ -176,25 +169,19 @@ "request_not_acceptable": "Request Not Acceptable", "something_went_wrong": "Something went wrong, please retry.", "confirm": "Confirm", - "information_details": "Information details", "no_transaction_records": "No transaction records", "retry": "Retry", "failed_to_load_data": "Failed to load data", - "no_data_available": "No data available", - "no_more_members": "No more members", "failed_to_delete_member": "Failed to delete member. Please try again.", - "no_users_found": "No users found", "enter_user_id_to_search": "Enter user ID to search", - "total_recharge": "Total recharge", "total_expenditure": "Total expenditure", "coins": "coins", "no_selling_records_yet": "No selling records yet", - "users_message": "User's message", "no_messages": "No messages", "agree": "Agree", @@ -203,7 +190,6 @@ "approved_application": "Approved {name}'s application", "rejected_application": "Rejected {name}'s application", "operation_failed": "Operation failed, please try again", - "cash_out": "Cash out", "complete_information": "Complete information", "contact_number": "Contact number", @@ -211,20 +197,16 @@ "cash_withdrawal_tips": "Cash withdrawals require review. Please wait patiently for the cash to arrive after the review is passed.", "receive": "Receive", "rejection": "Rejection", - "kyc": "KYC", "transfer_coins": "Transfer Coins", "plus_coins": "+{amount} Coins", - "enter_contact_number": "Please enter your contact number", "enter_other_description": "Please enter other description (For example: Provide your WhatsApp account so we can contact you.)", "passport_id_card_title": "Passport/ID card", "submit": "Submit", "upload_failed": "Upload failed", - "under_review": "Under review", "approved": "Approved", - "current_earnings_label": "Current earnings:", "current_earnings": "Current earnings: ${amount}", "transfer_to_recharge_agent": "Transfer to recharge agent", @@ -243,7 +225,6 @@ "withdrawable_amount": "Withdrawable amount: {amount}", "fill_info_tips": "Please fill in the information carefully. You can only withdraw cash after the information is completed.", "card_issue_tips": "* If there is a problem with the card number and the transfer cannot be made, it will result in the review being rejected.", - "ranking_help_rule_1": "1. Users can celebrate Eid al-Fitr by gifting designated lucky gifts. For every designated lucky gift worth 1 coin gifted, the user's generosity score will increase by 1 point. Please see the event page for details.", "ranking_help_rule_2": "2. Upon the event's conclusion, the top three ranked players will be awarded special item prizes. The rewards will be delivered directly to your accounts.", "ranking_help_rule_3": "*Notice", @@ -251,35 +232,27 @@ "ranking_help_rule_5": "a) Malicious comments, rumors, insinuations, etc. to participating players during the event", "ranking_help_rule_6": "b) Illegally obtaining coins and designated gifts", "activity_apple_disclaimer": "*This activity has nothing to do with Apple Inc.", - "recharge_help_rule_1": "1. The recharge reward event will run from now until April 4th, 2026.", "recharge_help_rule_2": "2. If a user's cumulative recharge amount reaches the specified amount required to craft exclusive items during this event, the user should promptly contact official staff (ID: 10086, ID: 10000, ID: 10003, ID: 10001), send a screenshot of the event and their user ID to the staff, and provide the materials or requirements for the exclusive items.", "recharge_help_rule_3": "3. Users using the same device or IP address may create multiple accounts in any way, so the task can only be claimed as a reward once.", - "withdrawal_help_rule_1": "1. Users can cash out when their dollar earnings reach $10.", "withdrawal_help_rule_2": "2. Users can also exchange or transfer to a recharge agent to obtain higher returns than cash withdrawals.", "withdrawal_help_rule_3": "3. If the user does not perform any operation before the end of the event, it will be deemed that they have given up the opportunity to receive the dollars, and the dollars they have received will be cleared by the system.", - "bd": "BD", "bd_leader": "BD Leader", "bd_salary": "BD Salary", - "agency_list": "Agency List", "bd_list": "BD List", - "bd_leader_history": "BD Leader History", - "current_status": "Current status:", "review_passed": "Review passed", "review_failed": "Review failed", "awaiting_review": "Awaiting review", - "withdrawal_method": "Withdrawal Method", "please_select_bank_card": "Please select a bank card", "change_withdrawal_method": "Change withdrawal method", "enter_cash_out_amount": "Please enter the cash out amount", "cash_out_min_amount_tip": "*The cash out amount must be >= $10", - "cash_withdraw": "Cash Withdraw", "bank_card": "Bank Card", "currently_in_use": "Your Card (In Use)", @@ -306,9 +279,7 @@ "enter_withdraw_amount": "Enter withdraw amount", "withdrawal_rule_1": "*(1)Withdrawal amount must be >=${amount}", "withdrawal_rule_2": "(2)The platform will charge a {fee}% handling fee on the current withdrawal amount.", - "admin_policy": "Admin Policy", - "invitation_to_register": "Invitation to register", "total_invitations": "Total invitations:", "todays_invitation": "Today's invitation:", @@ -323,16 +294,13 @@ "invitation_code_binding_failed": "Invitation code binding failed.", "user_id_prefix": "ID:", "day_unit": "Day", - "select_country": "Select Country", "select_your_country": "Select your country", "my_information": "My Information:", "select_a_country": "Select a country:", - "min_transfer_amount": "Minimum amount of transfers accepted:", "min_transfer_amount_tip": "Recharge agents can choose the minimum amount they can accept from user transfers, which can be modified on the first of each month. (For example, if a recharge agent changes to only accept transfers of $10 or more, users with single transfers below $10 will not be able to transfer funds to that recharge agent.)", "confirm_transfer_limit": "Are you sure you want to select this transfer amount limit?", - "admin_center": "Admin Center", "my_leader": "My Leader:", "my_role": "My Role:", @@ -352,7 +320,6 @@ "new_bd_leaders_bound": "New BD Leaders bound:", "new_bds_bound": "New BDs bound:", "new_agencies_bound": "New agencies bound:", - "ranking_wealth": "Wealth", "ranking_charm": "Charm", "ranking_room": "Room", @@ -360,16 +327,13 @@ "ranking_weekly": "Weekly", "ranking_monthly": "Monthly", "ranking_hourly": "Hourly", - "good_id_placeholder": "Enter 2 To 8 Digits", "my_wealth_level": "My wealth level:", - "application_submitted_success": "Your application has been successfully submitted, please wait for review!", "error_wealth_level_insufficient": "You must reach wealth level 10 to apply for an exclusive ID.", "error_invalid_id_format": "Please enter an ID in the correct format.", "error_already_applied": "You've already applied for an exclusive ID at the current wealth level.", "error_id_already_used": "ID has already been used by another user.", - "recharge_placeholder": "Please enter your APP's lD", "recharge_button": "Recharge", "faq_title": "Frequently asked question:", @@ -382,7 +346,6 @@ "recharge_instruction_2": "2、After the coin seller recharges, therecharged coins will be directly sent to thecoin seller account.", "recharge_instruction_3": "3、How to obtain an lD for an account:(1)In APP open the 'My' page.(2)You can confrm the account lD at the topof the page.", "recharge_instruction_4": "4、lf the lD account you enter is a coinseller account, the coin will be sent to thecoin seller center of that account.", - "bd_leaders_label": "BD Leaders:", "team_total_income_label": "Team Total Income:", "number_of_agencies_personnel_label": "Number Of Agencies Personnel:", @@ -391,24 +354,19 @@ "agency_label": "Agency:", "team_total_income_text": "Team total Income:", "team_total_income_text_capitalized": "Team Total income:", - "bds_label": "BDs:", "bd_id_label": "BD's lD:", "agency_team_income": "Agency Team Income:", - "agencies_label": "Agencies:", "agency_id_label": "Agency's lD:", "number_of_hosts_personnel_label": "Number Of Hosts Personnel:", "host_label": "Host:", "host_income_label": "Host income:", - "my_linked_recharge_agent": "My linked recharge agent", "my_total_income": "My total income:", "this_period_recharge": "This period's recharge:", "recharge_agency_list": "Recharge Agency List:", - "invite_recharge_agent": "Invite User To Become Recharge Agency", - "item_distribution": "Item Distribution", "validity": "Validity", "day": "day", @@ -420,15 +378,12 @@ "chat_box": "Chat Box", "theme": "Theme", "vip": "VIP", - "bd_policy": "BD Policy", "bd_leader_policy": "BD Leader Policy", - "recharge_reward": "Recharge Reward", "ranking": "Ranking", "lottery": "Lottery", "withdraw": "Withdraw", - "Accumulated recharge": "Accumulated recharge", "Rewards": "Rewards", "Total Tickets": "Total Tickets", @@ -447,14 +402,11 @@ "Send 5 Ramadan gifts ({currentValue}/{targetValue})": "Send 5 Ramadan gifts. ({currentValue}/{targetValue})", "exchange_success_coins": "Successfully exchanged coins", "exchange_failed_coins": "Exchange failed, please try again later.", - "barrage_won_prize": "{nickname} won {prizeName}", "barrage_won_the_prize": "{nickname} won the {prizeName}", - "sign_in_received": "Received", "sign_in_free": "Free", "sign_in_make_up": "Make-up", - "no_relationship": "You are currently not in a relationship.", "go_add_cp": "Go add CP", "my_couple": "My Couple", @@ -473,32 +425,25 @@ "heartbeat_value_points_4_percent": "{amount} (4% of Heartbeat Value points) * 2", "heartbeat_value_points_3_percent": "{amount} (3% of Heartbeat Value points) * 2", "heartbeat_value_points_2_percent": "{amount} (2% of Heartbeat Value points) * 2", - "task_go": "Go >", "task_receive": "Receive", "task_received": "Received", - "remaining_lottery_tickets": "Remaining lottery tickets", "how_to_get_ticket": "How to get a ticket", - "lucky_and_magical_gifts_win_gold_coins": "Lucky and magical gifts win gold coins", "win_coins_in_the_game": "Win coins in the game", "coins_per_get": "100000 coins/Get", "ramadan_kareem": "Ramadan Kareem", - "enter_invitation_code": "Enter invitation code >", "contact_your_inviter": "Contact your inviter >", "copy_invitation_code_tip": "*Copy your invitation code and send it to your new friends.", "share_invitation_message": "Download and enter the invitation code '{code}' for a chance to claim rewards worth up to $100! Join us to win generous prizes!", "my_invitation_code": "My Invitation Code:", - "reward_days": "{quantity} Days", - "weekly_rank": "Weekly Rank", "daily_rank": "Daily Rank", "weekly_rewards": "Weekly Rewards", "daily_rewards": "Daily Rewards", - "active_game_current_daily_recharge_amount": "Current daily recharge amount: {amount}.", "active_game_current_daily_game_spending": "Current daily game spending: {coins} coins.", "active_game_task1_detail": "1. Daily Goal: Spend ({progress} coins). Unlock a {reward} coin reward for tomorrow!", @@ -513,5 +458,33 @@ "active_game_reward_gift": "Customized Gifts *1", "active_game_reward_frame": "Customized Frames * 365 Days", "active_game_reward_ride": "Customized Vehicles * 60 Days", - "active_game_reward_banner": "Customized Banners * 15 Days" + "active_game_reward_banner": "Customized Banners * 15 Days", + "rule": "rule", + "history": "history", + "CollectCards to Win Prizes": "CollectCards to Win Prizes", + "Personal Rank": "Personal Rank", + "Room Rank": "Room Rank", + "Reward": "Reward", + "Ranking": "Ranking", + "gulben_collect_tip": "*Redeem Your Cards and Draw for Amazing Rewards!", + "gulben_remaining_tickets": "Remaining Tickets: *{count}", + "gulben_coins_cost": "{count}/coins", + "gulben_combine_count": "Combine * {count}", + "gulben_redeem": "Redeem", + "gulben_accept": "Accept", + "gulben_rule_title_earn": "1. How to Earn Tickets:", + "gulben_rule_earn_1": "(1) Complete designated series of tasks to earn Tickets.", + "gulben_rule_title_use": "2. How to Use Tickets:", + "gulben_rule_use_1": "(1) Each Ticket can be used to randomly draw one R-grade Card.", + "gulben_rule_title_combine": "3. Card Combining & Upgrade:", + "gulben_rule_combine_1": "(1) Combine 5 different R-grade Cards to randomly draw one SR-grade Card.", + "gulben_rule_combine_2": "(2) Combine 3 different SR-grade Cards to randomly draw one SSR-grade Card.", + "gulben_rule_title_redeem": "4. Collect & Redeem Rewards:", + "gulben_rule_redeem_1": "(1) Collect 5 different R-grade Cards to redeem one chance to draw a Standard Reward.", + "gulben_rule_redeem_2": "(2) Collect 3 different SR-grade Cards to redeem one chance to draw a Premium Reward.", + "gulben_rule_redeem_3": "(3) Collect 2 different SSR-grade Cards to redeem one chance to draw a Deluxe Reward!", + "gulben_room_rule_title": "Activity Rules:", + "gulben_room_rule_1": "1. Your room's revenue will be tallied during the activity. After the activity ends, based on the room's revenue level, the room owner (not the agency) will receive generous coins and VIP rewards.", + "gulben_room_rule_2": "2. This event is not related to iPhone or Google.", + "gulben_room_rule_3": "3. The official party reserves the final right of interpretation for this event." } diff --git a/src/locales/tr.json b/src/locales/tr.json index 03b4608..190af1f 100644 --- a/src/locales/tr.json +++ b/src/locales/tr.json @@ -121,21 +121,17 @@ "team_target": "Takım hedefi", "my": "Benim", "host_count": "Host sayısı:", - "agency_number": "Acente sayısı", "team_salary": "Takım maaşı", "team_recharge": "Takım toplam yükleme", "bd_number": "BD Sayısı", - "no_policy_data_available": "Politika verisi yok", - "host_setting": "Host Ayarı", "my_agency": "Acentem", "tips": "İpuçları", "prompt": "İstem", "to_improve": "Bilgileri Tamamla", "leave_agent_tips": "Host sadece her ayın 1'i ve 16'sında mevcut acenteden ayrılabilir", - "loading": "Yükleniyor", "details": "Detaylar", "failed_to_load_balance": "Bakiye yüklenemedi. Lütfen tekrar deneyin.", @@ -146,7 +142,6 @@ "exchange_success": "${price} için coin başarıyla değiştirildi", "exchange_failed": "Değiştirme başarısız, lütfen daha sonra tekrar deneyin.", "exchange_error_occurred": "Değiştirme işlemi sırasında bir hata oluştu. Lütfen daha sonra tekrar deneyin.", - "please_select_amount": "Lütfen önce bir miktar seçin", "please_select_payee": "Lütfen önce bir alıcı seçin", "enter_payment_password": "Lütfen ödeme şifrenizi girin:", @@ -157,13 +152,11 @@ "transfer_dollar_failed": "${price} transferi başarısız", "transfer_error": "Transfer başarısız, lütfen daha sonra tekrar deneyin", "insufficient_item_vouchers": "Yeterli öğe kuponunuz yok. Lütfen kupon miktarınızı kontrol edin.", - "search_payee": "Alıcı Ara", "checking_permissions": "İzinler kontrol ediliyor", "searching": "Aranıyor", "confirm_transfer_to_user": "Bu kullanıcıya coin transfer etmek istediğinizden emin misiniz?", "user_not_found_or_search_failed": "Kullanıcı bulunamadı veya arama başarısız", - "application_record_not_found": "Başvuru kaydı bulunamadı", "application_processed_cannot_cancel": "Başvuru işlendi ve iptal edilemez", "cancellation_failed_try_again": "İptal başarısız, lütfen tekrar deneyin", @@ -176,25 +169,19 @@ "request_not_acceptable": "İstek Kabul Edilemez", "something_went_wrong": "Bir şeyler yanlış gitti, lütfen tekrar deneyin.", "confirm": "Onayla", - "information_details": "Bilgi detayları", "no_transaction_records": "İşlem kaydı yok", "retry": "Tekrar Dene", "failed_to_load_data": "Veri yüklenemedi", - "no_data_available": "Veri yok", - "no_more_members": "Daha fazla üye yok", "failed_to_delete_member": "Üye silinemedi. Lütfen tekrar deneyin.", - "no_users_found": "Kullanıcı bulunamadı", "enter_user_id_to_search": "Aramak için kullanıcı ID'sini girin", - "total_recharge": "Toplam yükleme", "total_expenditure": "Toplam gider", "coins": "coin", "no_selling_records_yet": "Henüz satış kaydı yok", - "users_message": "Kullanıcının mesajı", "no_messages": "Mesaj yok", "agree": "Kabul Et", @@ -203,7 +190,6 @@ "approved_application": "{name} kullanıcısının başvurusu onaylandı", "rejected_application": "{name} kullanıcısının başvurusu reddedildi", "operation_failed": "İşlem başarısız, lütfen tekrar deneyin", - "cash_out": "Nakit çek", "complete_information": "Bilgileri tamamla", "contact_number": "İletişim numarası", @@ -211,20 +197,16 @@ "cash_withdrawal_tips": "Nakit çekimler inceleme gerektirir. İnceleme geçtikten sonra nakitin gelmesini sabırla bekleyin.", "receive": "Al", "rejection": "Red", - "kyc": "KYC", "transfer_coins": "Coin Transfer", "plus_coins": "+{amount} Coin", - "enter_contact_number": "Lütfen iletişim numaranızı girin", "enter_other_description": "Lütfen diğer açıklamayı girin (Örneğin: Sizinle iletişime geçebilmemiz için WhatsApp hesabınızı paylaşın.)", "passport_id_card_title": "Pasaport/Kimlik kartı", "submit": "Gönder", "upload_failed": "Yükleme başarısız", - "under_review": "İncelemede", "approved": "Onaylandı", - "current_earnings_label": "Mevcut kazanç:", "current_earnings": "Mevcut kazanç: ${amount}", "transfer_to_recharge_agent": "Yükleme acentesine transfer", @@ -243,7 +225,6 @@ "withdrawable_amount": "Çekilebilir miktar: {amount}", "fill_info_tips": "Lütfen bilgileri dikkatlice doldurun. Sadece bilgiler tamamlandıktan sonra nakit çekebilirsiniz.", "card_issue_tips": "* Kart numarasında bir sorun varsa ve transfer yapılamazsa, inceleme reddedilecektir.", - "ranking_help_rule_1": "1. Kullanıcılar belirli şanslı hediyeler hediye ederek Ramazan Bayramı'nı kutlayabilir. 1 coin değerinde her belirli şanslı hediye için, kullanıcının cömertlik puanı 1 puan artacaktır. Detaylar için etkinlik sayfasına bakın.", "ranking_help_rule_2": "2. Etkinlik sona erdiğinde, ilk üç sıradaki oyunculara özel öğe ödülleri verilecektir. Ödüller doğrudan hesaplarınıza teslim edilecektir.", "ranking_help_rule_3": "*Bildirim", @@ -251,35 +232,27 @@ "ranking_help_rule_5": "a) Etkinlik sırasında katılımcı oyunculara kötü niyetli yorumlar, dedikodular, ima vb.", "ranking_help_rule_6": "b) Coin ve belirli hediyeleri yasa dışı yollarla elde etme", "activity_apple_disclaimer": "*Bu etkinlik Apple Inc. ile ilgili değildir.", - "recharge_help_rule_1": "1. Yükleme ödülü etkinliği şu andan 4 Nisan 2026'ya kadar sürecektir.", "recharge_help_rule_2": "2. Bu etkinlik sırasında bir kullanıcının kümülatif yükleme miktarı özel öğeler oluşturmak için gereken belirtilen miktara ulaşırsa, kullanıcı derhal resmi personelle iletişime geçmelidir (ID: 10086, ID: 10000, ID: 10003, ID: 10001), etkinliğin ekran görüntüsünü ve kullanıcı ID'sini personele göndermelidir ve özel öğeler için malzemeleri veya gereksinimleri sağlamalıdır.", "recharge_help_rule_3": "3. Aynı cihazı veya IP adresini kullanan kullanıcılar herhangi bir şekilde birden fazla hesap oluşturabilir, bu nedenle görev sadece bir kez ödül olarak talep edilebilir.", - "withdrawal_help_rule_1": "1. Kullanıcılar dolar kazançları $10'a ulaştığında nakit çekebilir.", "withdrawal_help_rule_2": "2. Kullanıcılar nakit çekimlerinden daha yüksek getiri elde etmek için bozdurabilir veya yeniden yükleme acentesine transfer edebilir.", "withdrawal_help_rule_3": "3. Kullanıcı etkinlik bitmeden önce herhangi bir işlem yapmazsa, dolarları alma fırsatından vazgeçmiş sayılacak ve aldıkları dolarlar sistem tarafından temizlenecektir.", - "bd": "BD", "bd_leader": "BD Lideri", "bd_salary": "BD Maaşı", - "agency_list": "Acente Listesi", "bd_list": "BD Listesi", - "bd_leader_history": "BD Lideri Geçmişi", - "current_status": "Mevcut durum:", "review_passed": "İnceleme geçti", "review_failed": "İnceleme başarısız", "awaiting_review": "İnceleme bekleniyor", - "withdrawal_method": "Çekim Yöntemi", "please_select_bank_card": "Lütfen bir banka kartı seçin", "change_withdrawal_method": "Çekim yöntemini değiştir", "enter_cash_out_amount": "Lütfen nakit çekme miktarını girin", "cash_out_min_amount_tip": "*Nakit çekme tutarı >= $10 olmalıdır", - "cash_withdraw": "Nakit Çekim", "bank_card": "Banka Kartı", "currently_in_use": "Kartınız (Kullanımda)", @@ -306,9 +279,7 @@ "enter_withdraw_amount": "Çekim miktarını girin", "withdrawal_rule_1": "*(1)Çekim miktarı >=${amount} olmalıdır", "withdrawal_rule_2": "(2)Platform, mevcut çekim miktarı üzerinden %{fee} işlem ücreti alacaktır.", - "admin_policy": "Yönetici Politikası", - "invitation_to_register": "Kayıt için davet", "total_invitations": "Toplam davetler:", "todays_invitation": "Bugünün daveti:", @@ -323,16 +294,13 @@ "invitation_code_binding_failed": "Davet kodu bağlama başarısız.", "user_id_prefix": "ID:", "day_unit": "Gün", - "select_country": "Ülke Seç", "select_your_country": "Ülkenizi seçin", "my_information": "Bilgilerim:", "select_a_country": "Bir ülke seçin:", - "min_transfer_amount": "Kabul edilen minimum transfer miktarı:", "min_transfer_amount_tip": "Yükleme acenteleri kullanıcı transferlerinden kabul edebilecekleri minimum miktarı seçebilir, bu her ayın ilk gününde değiştirilebilir. (Örneğin, bir yükleme acentesi sadece $10 veya üzeri transferleri kabul edecek şekilde değiştirilirse, tek transferi $10 altında olan kullanıcılar o yükleme acentesine fon transferi yapamaz.)", "confirm_transfer_limit": "Bu transfer miktarı limitini seçmek istediğinizden emin misiniz?", - "admin_center": "Yönetici Merkezi", "my_leader": "Liderim:", "my_role": "Rolüm:", @@ -352,7 +320,6 @@ "new_bd_leaders_bound": "Yeni bağlanan BD Liderleri:", "new_bds_bound": "Yeni bağlanan BD'ler:", "new_agencies_bound": "Yeni bağlanan acenteler:", - "ranking_wealth": "Zenginlik", "ranking_charm": "Çekicilik", "ranking_room": "Oda", @@ -360,16 +327,13 @@ "ranking_weekly": "Haftalık", "ranking_monthly": "Aylık", "ranking_hourly": "Saatlik", - "good_id_placeholder": "2-8 Arası Rakam Girin", "my_wealth_level": "Zenginlik seviyem:", - "application_submitted_success": "Başvurunuz başarıyla gönderildi, lütfen incelemeyi bekleyin!", "error_wealth_level_insufficient": "Özel ID için başvurmak için zenginlik seviyesi 10'a ulaşmalısınız.", "error_invalid_id_format": "Lütfen doğru formatta bir ID girin.", "error_already_applied": "Mevcut zenginlik seviyesinde zaten özel ID için başvurdunuz.", "error_id_already_used": "ID zaten başka bir kullanıcı tarafından kullanıldı.", - "recharge_placeholder": "Lütfen APP ID'nizi girin", "recharge_button": "Yükle", "faq_title": "Sıkça sorulan soru:", @@ -382,7 +346,6 @@ "recharge_instruction_2": "2、Coin satıcısı yükledikten sonra, yüklenen coinler doğrudan coin satıcı hesabına gönderilecektir.", "recharge_instruction_3": "3、Bir hesap için ID nasıl alınır:(1) APP'te 'Benim' sayfasını açın.(2) Sayfanın üst kısmında hesap ID'sini onaylayabilirsiniz.", "recharge_instruction_4": "4、Girdiğiniz ID hesabı bir coin satıcı hesabıysa, coin o hesabın coin satıcı merkezine gönderilecektir.", - "bd_leaders_label": "BD Liderleri:", "team_total_income_label": "Takım Toplam Geliri:", "number_of_agencies_personnel_label": "Acente Personeli Sayısı:", @@ -391,24 +354,19 @@ "agency_label": "Acente:", "team_total_income_text": "Takım toplam geliri:", "team_total_income_text_capitalized": "Takım Toplam Geliri:", - "bds_label": "BD'ler:", "bd_id_label": "BD'nin ID'si:", "agency_team_income": "Acente Takım Geliri:", - "agencies_label": "Acenteler:", "agency_id_label": "Acentenin ID'si:", "number_of_hosts_personnel_label": "Host Personeli Sayısı:", "host_label": "Host:", "host_income_label": "Host geliri:", - "my_linked_recharge_agent": "Bağlı yükleme acentem", "my_total_income": "Toplam gelir:", "this_period_recharge": "Bu dönemin yüklemesi:", "recharge_agency_list": "Yükleme Acentesi Listesi:", - "invite_recharge_agent": "Kullanıcıyı Yükleme Acentesi Olmaya Davet Et", - "item_distribution": "Öğe Dağıtımı", "validity": "Geçerlilik", "day": "gün", @@ -420,15 +378,12 @@ "chat_box": "Sohbet Kutusu", "theme": "Tema", "vip": "VIP", - "bd_policy": "BD Politikası", "bd_leader_policy": "BD Lideri Politikası", - "recharge_reward": "Yükleme Ödülü", "ranking": "Sıralama", "lottery": "Piyango", "withdraw": "Çek", - "Accumulated recharge": "Biriktirilmiş yükleme", "Rewards": "Ödüller", "Total Tickets": "Toplam Bilet", @@ -447,14 +402,11 @@ "Send 5 Ramadan gifts ({currentValue}/{targetValue})": "5 Ramazan hediyesi gönderin. ({currentValue}/{targetValue})", "exchange_success_coins": "Coin başarıyla değiştirildi", "exchange_failed_coins": "Coin değiştirme başarısız, lütfen daha sonra tekrar deneyin.", - "barrage_won_prize": "{nickname} {prizeName} kazandı", "barrage_won_the_prize": "{nickname} {prizeName} ödülünü kazandı", - "sign_in_received": "Alındı", "sign_in_free": "Ücretsiz", "sign_in_make_up": "Telafi", - "no_relationship": "Şu anda bir ilişkiniz yok.", "go_add_cp": "CP ekle", "my_couple": "Çiftim", @@ -473,32 +425,25 @@ "heartbeat_value_points_4_percent": "{amount} (Kalp Atışı Değeri puanlarının %4'ü) * 2", "heartbeat_value_points_3_percent": "{amount} (Kalp Atışı Değeri puanlarının %3'ü) * 2", "heartbeat_value_points_2_percent": "{amount} (Kalp Atışı Değeri puanlarının %2'si) * 2", - "task_go": "Git >", "task_receive": "Al", "task_received": "Alındı", - "remaining_lottery_tickets": "Kalan piyango biletleri", "how_to_get_ticket": "Bilet nasıl alınır", - "lucky_and_magical_gifts_win_gold_coins": "Şanslı ve sihirli hediyeler altın coin kazanır", "win_coins_in_the_game": "Oyunda coin kazan", "coins_per_get": "100000 coin/Al", "ramadan_kareem": "Ramazan Kareem", - "enter_invitation_code": "Davet kodunu girin >", "contact_your_inviter": "Davet eden kişiyle iletişime geçin >", "copy_invitation_code_tip": "*Davet kodunuzu kopyalayın ve yeni arkadaşlarınıza gönderin.", "share_invitation_message": "100$'a kadar ödül talep etme şansı için indirin ve '{code}' davet kodunu girin! Cömert ödüller kazanmak için bize katılın!", "my_invitation_code": "Davet Kodum:", - "reward_days": "{quantity} Gün", - "weekly_rank": "Haftalık Sıralama", "daily_rank": "Günlük Sıralama", "weekly_rewards": "Haftalık Ödüller", "daily_rewards": "Günlük Ödüller", - "active_game_current_daily_recharge_amount": "Mevcut günlük yükleme tutarı: {amount}.", "active_game_current_daily_game_spending": "Mevcut günlük oyun harcaması: {coins} coin.", "active_game_task1_detail": "1. Günlük Hedef: Harca ({progress} coin). Yarın için {reward} coin ödülünü aç!", @@ -513,5 +458,33 @@ "active_game_reward_gift": "Özel Hediyeler *1", "active_game_reward_frame": "Özel Çerçeveler * 365 Gün", "active_game_reward_ride": "Özel Araçlar * 60 Gün", - "active_game_reward_banner": "Özel Bannerlar * 15 Gün" + "active_game_reward_banner": "Özel Bannerlar * 15 Gün", + "rule": "Kural", + "history": "Geçmiş", + "CollectCards to Win Prizes": "Kartları Topla ve Ödüller Kazan", + "Personal Rank": "Kişisel Sıralama", + "Room Rank": "Oda Sıralaması", + "Reward": "Ödül", + "Ranking": "Sıralama", + "gulben_collect_tip": "*Kartlarını kullan ve harika ödüller için çekiliş yap!", + "gulben_remaining_tickets": "Kalan Biletler: *{count}", + "gulben_coins_cost": "{count}/coin", + "gulben_combine_count": "Birleştir * {count}", + "gulben_redeem": "Kullan", + "gulben_accept": "Kabul Et", + "gulben_rule_title_earn": "1. Bilet Nasıl Kazanılır:", + "gulben_rule_earn_1": "(1) Bilet kazanmak için belirtilen görev serisini tamamla.", + "gulben_rule_title_use": "2. Bilet Nasıl Kullanılır:", + "gulben_rule_use_1": "(1) Her bilet rastgele bir R seviye kart çekmek için kullanılabilir.", + "gulben_rule_title_combine": "3. Kart Birleştirme ve Yükseltme:", + "gulben_rule_combine_1": "(1) 5 farklı R seviye kartı birleştirerek rastgele 1 SR seviye kart kazan.", + "gulben_rule_combine_2": "(2) 3 farklı SR seviye kartı birleştirerek rastgele 1 SSR seviye kart kazan.", + "gulben_rule_title_redeem": "4. Topla ve Ödülleri Kullan:", + "gulben_rule_redeem_1": "(1) 5 farklı R seviye kart toplayarak 1 Standart Ödül çekiliş hakkı kullan.", + "gulben_rule_redeem_2": "(2) 3 farklı SR seviye kart toplayarak 1 Premium Ödül çekiliş hakkı kullan.", + "gulben_rule_redeem_3": "(3) 2 farklı SSR seviye kart toplayarak 1 Deluxe Ödül çekiliş hakkı kullan!", + "gulben_room_rule_title": "Etkinlik Kuralları:", + "gulben_room_rule_1": "1. Etkinlik süresince odanızın geliri hesaplanacaktır. Etkinlik sona erdikten sonra, odanın gelir seviyesine göre oda sahibi (ajans değil) cömert coin ve VIP ödülleri alacaktır.", + "gulben_room_rule_2": "2. Bu etkinliğin iPhone veya Google ile ilgisi yoktur.", + "gulben_room_rule_3": "3. Bu etkinliğin nihai yorum hakkı resmi tarafa aittir." } diff --git a/src/locales/zh.json b/src/locales/zh.json index 7a20b1d..da30e48 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -121,21 +121,17 @@ "team_target": "团队目标", "my": "我的", "host_count": "主播人数:", - "agency_number": "代理团队数量", "team_salary": "代理团队收益", "team_recharge": "团队总充值", "bd_number": "BD数量", - "no_policy_data_available": "无可用政策数据", - "host_setting": "主播设置", "my_agency": "我的代理", "tips": "提示", "prompt": "提示", "to_improve": "去完善", "leave_agent_tips": "主播只能在每月1日和16日离开当前代理", - "loading": "加载中", "details": "详情", "failed_to_load_balance": "加载余额失败,请重试。", @@ -146,7 +142,6 @@ "exchange_success": "成功兑换${price}美元的金币", "exchange_failed": "兑换失败,请稍后重试。", "exchange_error_occurred": "兑换过程中发生错误,请稍后重试。", - "please_select_amount": "请先选择金额", "please_select_payee": "请选择收款人", "enter_payment_password": "请输入支付密码:", @@ -157,13 +152,11 @@ "transfer_dollar_failed": "转账${price}失败", "transfer_error": "转账失败,请稍后重试", "insufficient_item_vouchers": "您的物品券不足,请检查您的券数量。", - "search_payee": "搜索收款人", "checking_permissions": "正在检查权限", "searching": "搜索中", "confirm_transfer_to_user": "您确定要转账给这个用户吗?", "user_not_found_or_search_failed": "未找到用户或搜索失败", - "application_record_not_found": "申请记录未找到", "application_processed_cannot_cancel": "申请已被处理,无法取消", "cancellation_failed_try_again": "取消失败,请重试", @@ -176,25 +169,19 @@ "request_not_acceptable": "请求不可接受", "something_went_wrong": "出现问题,请重试。", "confirm": "确认", - "information_details": "信息详情", "no_transaction_records": "无交易记录", "retry": "重试", "failed_to_load_data": "加载数据失败", - "no_data_available": "暂无数据", - "no_more_members": "没有更多成员", "failed_to_delete_member": "删除成员失败,请重试。", - "no_users_found": "未找到用户", "enter_user_id_to_search": "请输入用户ID进行搜索", - "total_recharge": "总充值", "total_expenditure": "总支出", "coins": "金币", "no_selling_records_yet": "暂无销售记录", - "users_message": "用户消息", "no_messages": "暂无消息", "agree": "同意", @@ -203,7 +190,6 @@ "approved_application": "已批准 {name} 的申请", "rejected_application": "已拒绝 {name} 的申请", "operation_failed": "操作失败,请重试", - "cash_out": "提现", "complete_information": "完善信息", "contact_number": "联系电话", @@ -211,20 +197,16 @@ "cash_withdrawal_tips": "提现需要审核,请审核通过后耐心等待到账。", "receive": "确认", "rejection": "已拒绝", - "kyc": "KYC", "transfer_coins": "转账金币", "plus_coins": "+{amount} 金币", - "enter_contact_number": "请输入您的联系电话", "enter_other_description": "请输入其他说明(例如:请提供您的 WhatsApp 账号,以便我们与您联系。)", "passport_id_card_title": "护照/身份证", "submit": "提交", "upload_failed": "上传失败", - "under_review": "审核中", "approved": "已批准", - "current_earnings_label": "当前收益:", "current_earnings": "当前收益:${amount}", "transfer_to_recharge_agent": "转账至充值代理", @@ -243,7 +225,6 @@ "withdrawable_amount": "可提取金额:{amount}", "fill_info_tips": "请仔细填写信息。信息填写完整后才能取款。", "card_issue_tips": "*如果卡号有问题导致转账无法完成,则审核将被拒绝。", - "ranking_help_rule_1": "1. 用户可以通过赠送指定的幸运礼物来庆祝开斋节。每赠送 1 枚硬币的指定幸运礼物,用户的慷慨值将增加 1 分。详情请见活动页面。", "ranking_help_rule_2": "2. 活动结束后,排名前三的玩家将获得特殊道具奖励。奖励将直接发放到您的账户。", "ranking_help_rule_3": "*注意事项", @@ -251,35 +232,27 @@ "ranking_help_rule_5": "a) 活动期间对参与玩家进行恶意评论、造谣、暗示等", "ranking_help_rule_6": "b) 非法获取硬币和指定礼物", "activity_apple_disclaimer": "*本活动与苹果公司无关。", - "recharge_help_rule_1": "1. 充值奖励活动将从现在持续到 2026 年 4 月 4 日。", "recharge_help_rule_2": "2. 如果用户在此期间累计充值金额达到制作专属物品所需的指定金额,用户应及时联系官方工作人员(ID: 10086, ID: 10000, ID: 10003, ID: 10001),向工作人员发送活动截图和用户 ID,并提供专属物品的材料或要求。", "recharge_help_rule_3": "3. 使用相同设备或 IP 地址的用户可能以任何方式创建多个账户,因此该任务只能作为奖励领取一次。", - "withdrawal_help_rule_1": "1. 当用户的美元收益达到$10 时可以提现。", "withdrawal_help_rule_2": "2. 用户也可以兑换或转账给充值代理以获得比现金提现更高的回报。", "withdrawal_help_rule_3": "3. 如果用户在活动结束前未进行任何操作,将被视为放弃领取美元的机会,已获得的美元将被系统清空。", - "bd": "BD", "bd_leader": "BD主管", "bd_salary": "BD工资", - "agency_list": "代理列表", "bd_list": "BD列表", - "bd_leader_history": "BD主管历史记录", - "current_status": "当前状态:", "review_passed": "审核通过", "review_failed": "审核未通过", "awaiting_review": "等待审核", - "withdrawal_method": "提现方式", "please_select_bank_card": "请选择银行卡", "change_withdrawal_method": "更改提现方式", "enter_cash_out_amount": "请输入提现金额", "cash_out_min_amount_tip": "*提现金额必须 >= $10", - "cash_withdraw": "现金提现", "bank_card": "银行卡", "currently_in_use": "您的银行卡 (使用中)", @@ -306,9 +279,7 @@ "enter_withdraw_amount": "请输入提现金额", "withdrawal_rule_1": "*(1)提现金额必须 >=${amount}", "withdrawal_rule_2": "(2)平台将收取当前提现金额 {fee}% 的手续费。", - "admin_policy": "管理员政策", - "invitation_to_register": "邀请注册", "total_invitations": "总邀请人数:", "todays_invitation": "今日邀请人数:", @@ -323,16 +294,13 @@ "invitation_code_binding_failed": "邀请码绑定失败。", "user_id_prefix": "ID:", "day_unit": "天", - "select_country": "选择国家", "select_your_country": "选择您的国家", "my_information": "我的信息:", "select_a_country": "选择国家:", - "min_transfer_amount": "最低可接受转账金额:", "min_transfer_amount_tip": "充值代理商可以选择他们可以从用户转账中接受的最低金额,该金额可以在每月的第一天修改。(例如,如果充值代理商更改为其仅接受10美元或更多的转账,则单笔转账低于10美元的用户将无法向该充值代理商转账资金。)", "confirm_transfer_limit": "您确定要选择此转账金额限制吗?", - "admin_center": "管理中心", "my_leader": "我的上级:", "my_role": "我的角色:", @@ -352,7 +320,6 @@ "new_bd_leaders_bound": "新绑定BD主管:", "new_bds_bound": "新绑定BD:", "new_agencies_bound": "新绑定代理:", - "ranking_wealth": "财富", "ranking_charm": "魅力", "ranking_room": "房间", @@ -360,16 +327,13 @@ "ranking_weekly": "周榜", "ranking_monthly": "月榜", "ranking_hourly": "小时榜", - "good_id_placeholder": "输入2到8位数字", "my_wealth_level": "我的财富等级:", - "application_submitted_success": "您的申请已成功提交,请等待审核!", "error_wealth_level_insufficient": "您必须达到财富等级10才能申请专属ID。", "error_invalid_id_format": "请输入正确格式的ID。", "error_already_applied": "您已在当前财富等级申请过专属ID。", "error_id_already_used": "该ID已被其他用户使用。", - "recharge_placeholder": "请输入您的APP ID", "recharge_button": "充值", "faq_title": "常见问题:", @@ -382,7 +346,6 @@ "recharge_instruction_2": "2、币商充值后,充值的金币将直接发送到币商账户。", "recharge_instruction_3": "3、如何获取账户的ID:(1)在APP中打开'我的'页面。(2)您可以在页面顶部确认账户ID。", "recharge_instruction_4": "4、如果您输入的ID账户是币商账户,金币将发送到该账户的币商中心。", - "bd_leaders_label": "BD主管:", "team_total_income_label": "团队总收入:", "number_of_agencies_personnel_label": "代理人员数量:", @@ -391,24 +354,19 @@ "agency_label": "代理:", "team_total_income_text": "团队总收入:", "team_total_income_text_capitalized": "团队总收入:", - "bds_label": "BD:", "bd_id_label": "BD ID:", "agency_team_income": "代理团队收入:", - "agencies_label": "代理:", "agency_id_label": "代理ID:", "number_of_hosts_personnel_label": "主播人员数量:", "host_label": "主播:", "host_income_label": "主播收入:", - "my_linked_recharge_agent": "我关联的充值代理", "my_total_income": "我的总收入:", "this_period_recharge": "本期充值:", "recharge_agency_list": "充值代理列表:", - "invite_recharge_agent": "邀请用户成为充值代理", - "item_distribution": "道具分发", "validity": "有效期", "day": "天", @@ -420,15 +378,12 @@ "chat_box": "聊天框", "theme": "主题", "vip": "VIP", - "bd_policy": "BD政策", "bd_leader_policy": "BD主管政策", - "recharge_reward": "充值奖励", "ranking": "排行榜", "lottery": "抽奖", "withdraw": "提现", - "Accumulated recharge": "累计充值", "Rewards": "奖励", "Total Tickets": "总抽奖券", @@ -447,14 +402,11 @@ "Send 5 Ramadan gifts ({currentValue}/{targetValue})": "发送 5 个斋月礼物。({currentValue}/{targetValue})", "exchange_success_coins": "成功兑换金币", "exchange_failed_coins": "兑换金币失败,请稍后重试。", - "barrage_won_prize": "{nickname} 赢得了 {prizeName}", "barrage_won_the_prize": "{nickname} 赢得了 {prizeName}", - "sign_in_received": "已领取", "sign_in_free": "免费", "sign_in_make_up": "补签", - "no_relationship": "您目前还没有情侣。", "go_add_cp": "去添加CP", "my_couple": "我的情侣", @@ -473,32 +425,25 @@ "heartbeat_value_points_4_percent": "{amount} (心跳值点数的4%) * 2;", "heartbeat_value_points_3_percent": "{amount} (心跳值点数的3%) * 2;", "heartbeat_value_points_2_percent": "{amount} (心跳值点数的2%) * 2;", - "task_go": "前往 >", "task_receive": "接收", "task_received": "已接收", - "remaining_lottery_tickets": "剩余抽奖券", "how_to_get_ticket": "如何获取抽奖券", - "lucky_and_magical_gifts_win_gold_coins": "幸运和魔法礼物赢得金币", "win_coins_in_the_game": "在游戏中赢得金币", "coins_per_get": "100000金币/获取", "ramadan_kareem": "斋月快乐", - "enter_invitation_code": "输入邀请码 >", "contact_your_inviter": "联系您的邀请人 >", "copy_invitation_code_tip": "*复制您的邀请码并发送给新朋友。", "share_invitation_message": "下载并输入邀请码'{code}',有机会领取价值高达 100 美元的奖励!加入我们赢取丰厚奖品!", "my_invitation_code": "我的邀请码:", - "reward_days": "{quantity} 天", - "weekly_rank": "周榜", "daily_rank": "日榜", "weekly_rewards": "周榜奖励", "daily_rewards": "日榜奖励", - "active_game_current_daily_recharge_amount": "当前每日充值金额:{amount}。", "active_game_current_daily_game_spending": "当前每日游戏消费:{coins} 金币。", "active_game_task1_detail": "1. 每日目标:消费({progress} 金币)。解锁 {reward} 金币奖励,奖励将在明天发放!", @@ -513,5 +458,33 @@ "active_game_reward_gift": "定制礼物 *1", "active_game_reward_frame": "定制头像框 * 365 天", "active_game_reward_ride": "定制座驾 * 60 天", - "active_game_reward_banner": "定制横幅 * 15 天" + "active_game_reward_banner": "定制横幅 * 15 天", + "rule": "规则", + "history": "历史", + "CollectCards to Win Prizes": "收集卡片赢奖励", + "Personal Rank": "个人榜", + "Room Rank": "房间榜", + "Reward": "奖励", + "Ranking": "排行", + "gulben_collect_tip": "*兑换卡片并抽取丰厚奖励!", + "gulben_remaining_tickets": "剩余票券:*{count}", + "gulben_coins_cost": "{count}/金币", + "gulben_combine_count": "合成 * {count}", + "gulben_redeem": "兑换", + "gulben_accept": "接受", + "gulben_rule_title_earn": "1、如何获得票券:", + "gulben_rule_earn_1": "(1)完成指定系列任务即可获得票券。", + "gulben_rule_title_use": "2、如何使用票券:", + "gulben_rule_use_1": "(1)每张票券可随机抽取一张 R 级卡片。", + "gulben_rule_title_combine": "3、卡片合成与升级:", + "gulben_rule_combine_1": "(1)集齐 5 张不同 R 级卡片可随机合成 1 张 SR 级卡片。", + "gulben_rule_combine_2": "(2)集齐 3 张不同 SR 级卡片可随机合成 1 张 SSR 级卡片。", + "gulben_rule_title_redeem": "4、收集与兑换奖励:", + "gulben_rule_redeem_1": "(1)集齐 5 张不同 R 级卡片可兑换 1 次标准奖励抽奖机会。", + "gulben_rule_redeem_2": "(2)集齐 3 张不同 SR 级卡片可兑换 1 次高级奖励抽奖机会。", + "gulben_rule_redeem_3": "(3)集齐 2 张不同 SSR 级卡片可兑换 1 次豪华奖励抽奖机会!", + "gulben_room_rule_title": "活动规则:", + "gulben_room_rule_1": "1. 活动期间将统计你的房间流水。活动结束后,将根据房间流水等级,向房主(非代理)发放丰厚金币和 VIP 奖励。", + "gulben_room_rule_2": "2. 本活动与 iPhone 或 Google 无关。", + "gulben_room_rule_3": "3. 本活动最终解释权归官方所有。" } diff --git a/src/views/Activities/GulbenFestival/components/topUser.vue b/src/views/Activities/GulbenFestival/components/topUser.vue index f2486c4..9245554 100644 --- a/src/views/Activities/GulbenFestival/components/topUser.vue +++ b/src/views/Activities/GulbenFestival/components/topUser.vue @@ -151,7 +151,7 @@ const distributionValueClass = computed(() => { const avatarContainerHeight = computed(() => { switch (props.ranking) { case '1': - return '70%' + return '72%' case '2': return '60%' case '3': diff --git a/src/views/Activities/GulbenFestival/index.vue b/src/views/Activities/GulbenFestival/index.vue index 94b658e..9385a50 100644 --- a/src/views/Activities/GulbenFestival/index.vue +++ b/src/views/Activities/GulbenFestival/index.vue @@ -46,13 +46,13 @@ white-space: nowrap; " > - rule + {{ t('rule') }} -
+
- {{ tab.label }} + {{ + t(tab.label) + }}
@@ -168,7 +170,7 @@ alt="" /> {{ - tab.label + t(tab.label) }} @@ -219,7 +221,7 @@ white-space: nowrap; " > - history + {{ t('history') }} @@ -243,7 +245,7 @@ v-smart-img.noFade :src="imageUrl('leftBt')" alt="" - style="width: 8vw; display: block" + class="pool-arrow pool-arrow-prev" />
@@ -335,7 +337,7 @@ v-smart-img.noFade :src="imageUrl('leftBt')" alt="" - style="width: 8vw; display: block; transform: scaleX(-1)" + class="pool-arrow pool-arrow-next" /> @@ -459,7 +461,7 @@ margin: 0; " > - *Redeem Your Cards and Draw for Amazing Rewards! + {{ t('gulben_collect_tip') }} @@ -506,7 +508,7 @@ v-smart-img.noFade :src="imageUrl('leftBt')" alt="" - style="width: 8vw; display: block" + class="pool-arrow pool-arrow-prev" /> @@ -576,7 +578,7 @@ v-smart-img.noFade :src="imageUrl('leftBt')" alt="" - style="width: 8vw; display: block; transform: scaleX(-1)" + class="pool-arrow pool-arrow-next" /> @@ -610,7 +612,7 @@ white-space: nowrap; " > - Remaining Tickets: *{{ cardDrawTicketCount }} + {{ t('gulben_remaining_tickets', { count: cardDrawTicketCount }) }}
- 1000/coins + {{ t('gulben_coins_cost', { count: 1000 }) }}
- Combine * 1 + {{ t('gulben_combine_count', { count: 1 }) }} - Redeem + {{ t('gulben_redeem') }}
- Rewards: + {{ + t('Rewards:') + }} - - + + +
+ {{ t('gulben_room_rule_title') }} +
+
+ {{ t('gulben_room_rule_1') }} +
+
+ {{ t('gulben_room_rule_2') }} +
+
+ {{ t('gulben_room_rule_3') }} +
+
@@ -1343,9 +1361,15 @@ box-sizing: border-box; " @click="closePopup" + @touchend.self.prevent="closePopup" > -
+
-
1、How to Earn Tickets:
-
(1)Complete designated series of tasks to earnTickets.
-
2、How to Use Tickets:
-
(1)Each Ticket can be used to randomly drawone R-grade Card.
-
3、Card Combining& Upgrade:
-
(1)Combine 5 different R-grade Cards to randomlydraw one SR-grade Card.
-
(2)Combine 3 different SR-grade Cards torandomly draw one SSR-grade Card.
-
4、Collect & Redeem Rewards:
-
- (1)Collect 5 different R-grade Cards to redeem onechance to draw a Standard - Reward. -
-
- (2)Collect 3 different SR-grade Cards to redeemone chance to draw a Premium - Reward. -
-
- (3)Collect 2 different SSR-grade Cards to redeemone chance to draw a Deluxe - Reward! -
+
{{ t('gulben_rule_title_earn') }}
+
{{ t('gulben_rule_earn_1') }}
+
{{ t('gulben_rule_title_use') }}
+
{{ t('gulben_rule_use_1') }}
+
{{ t('gulben_rule_title_combine') }}
+
{{ t('gulben_rule_combine_1') }}
+
{{ t('gulben_rule_combine_2') }}
+
{{ t('gulben_rule_title_redeem') }}
+
{{ t('gulben_rule_redeem_1') }}
+
{{ t('gulben_rule_redeem_2') }}
+
{{ t('gulben_rule_redeem_3') }}
@@ -1392,6 +1407,7 @@ v-if="historyShow" style="position: relative; width: min(95vw, 456px); direction: ltr" @click.stop + @touchend.stop > -
+ style=" + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + gap: 2vw; + " + > +
+ +
+ + +
+ +
+ +
+
+ +
+ {{ cardDrawResultIndex + 1 }}/{{ cardDrawResultList.length }} +
+
- Remaining Tickets: *{{ cardDrawTicketCount }} + {{ t('gulben_remaining_tickets', { count: cardDrawTicketCount }) }}
- 1000/coins + {{ t('gulben_coins_cost', { count: 1000 }) }}
@@ -1563,6 +1646,7 @@ style="width: 25vw; margin: 0; padding: 0" contentStyle="padding: 0; align-items: center; justify-content: center;" @click="closePopup" + @touchend.stop.prevent="closePopup" >
- Accept + {{ t('gulben_accept') }}
- Combine * 1 + {{ t('gulben_combine_count', { count: 1 }) }}
@@ -1605,6 +1690,7 @@ style="width: 30vw; margin: 0; padding: 0" contentStyle="padding: 0; align-items: center; justify-content: center;" @click="closePopup" + @touchend.stop.prevent="closePopup" >
- Confirm + {{ t('confirm') }}
@@ -1713,6 +1799,8 @@ const ruleShow = ref(false) const historyShow = ref(false) const cardDrawResultShow = ref(false) const cardDrawResultImageUrl = ref('') +const cardDrawResultList = ref([]) +const cardDrawResultIndex = ref(0) const cardResultActionMode = ref('draw') const cardDrawAnimationShow = ref(false) const cardDrawAnimationUrl = ref('') @@ -1904,9 +1992,33 @@ const isRtlLayout = computed(() => currentLangType.value === 'ar') const imageUrl = (filename) => getPngUrl(pageConfig.assetPath, filename) const webpUrl = (filename) => getWebpUrl(pageConfig.assetPath, filename) -// 多语言图片:阿语图片存在时按 `_ar` 后缀读取,否则由资源层回退原图。 +// 多语言图片:只在 page.config.js 声明已有阿语图时切换 `_ar`,没有就继续使用原图。 const getImgName = (filename) => { - return currentLangType.value === 'ar' ? `${filename}_ar` : filename + if (currentLangType.value !== 'ar') { + return filename + } + + const localizedImages = pageConfig.images?.localized || {} + const arImageList = localizedImages.ar + const imageConfig = localizedImages[filename] + + if (Array.isArray(arImageList) && arImageList.includes(filename)) { + return `${filename}_ar` + } + + if (typeof imageConfig === 'string') { + return imageConfig + } + + if (Array.isArray(imageConfig) && imageConfig.includes('ar')) { + return `${filename}_ar` + } + + if (imageConfig?.ar) { + return imageConfig.ar === true ? `${filename}_ar` : imageConfig.ar + } + + return filename } // 一级标签配置归一化:字符串写法和对象写法都转成统一结构。 @@ -2150,6 +2262,15 @@ const personalRewardTops = computed(() => { }) const changeCollectGameMode = (step) => { + if ( + isCardDrawing.value || + isCardCombining.value || + isCardRedeeming.value || + cardDrawAnimationShow.value + ) { + return + } + activeCollectGameIndex.value = (activeCollectGameIndex.value + step + collectGameModes.length) % collectGameModes.length } @@ -2414,6 +2535,34 @@ const getLotteryRewardResultImageUrl = (drawResult = {}) => { return resultItem?.prizeImage || resultItem?.prize?.prizeImage || '' } +const getLotteryRewardResultList = (drawResult = {}) => { + const rewards = Array.isArray(drawResult?.results) ? drawResult.results : [] + return rewards.map((reward, index) => ({ + ...reward, + imageUrl: reward?.prizeImage || reward?.prize?.prizeImage || '', + renderKey: reward?.recordNo || reward?.prizeId || `${drawResult.batchNo || 'reward'}-${index}`, + })) +} + +const currentCardDrawResultImageUrl = computed(() => { + return ( + cardDrawResultList.value[cardDrawResultIndex.value]?.imageUrl || cardDrawResultImageUrl.value + ) +}) + +const showRewardResultSwitcher = computed(() => { + return cardResultActionMode.value === 'rewardDraw' && cardDrawResultList.value.length > 1 +}) + +const changeCardDrawResultIndex = (step) => { + const resultCount = cardDrawResultList.value.length + if (resultCount <= 1) { + return + } + + cardDrawResultIndex.value = (cardDrawResultIndex.value + step + resultCount) % resultCount +} + const showCardDrawAnimationThenResult = (animationUrl, actionMode = 'draw') => { if (cardDrawAnimationTimer) { window.clearTimeout(cardDrawAnimationTimer) @@ -2436,7 +2585,7 @@ const showCardDrawAnimationThenResult = (animationUrl, actionMode = 'draw') => { }, 1500) } -const handleCardDraw = async (drawCount = 1) => { +const handleCardDrawRequest = async (drawCount = 1) => { if (isCardDrawing.value || cardDrawAnimationShow.value) { return } @@ -2452,6 +2601,8 @@ const handleCardDraw = async (drawCount = 1) => { if (resDraw.status) { cardDrawResultImageUrl.value = getCardDrawResultImageUrl(resDraw.body) + cardDrawResultList.value = [] + cardDrawResultIndex.value = 0 showCardDrawAnimationThenResult(getCardDrawAnimationUrl(resDraw.body), 'draw') await Promise.all([getCardTicketList(), getCardBagListByGrade('R')]) } @@ -2462,6 +2613,8 @@ const handleCardDraw = async (drawCount = 1) => { } } +const handleCardDraw = useDebounce(handleCardDrawRequest, 600, true) + const getCombineTargetGrade = () => { if (activeCollectGameMode.value.cardGrade === 'R') { return 'SR' @@ -2474,23 +2627,28 @@ const getCombineTargetGrade = () => { return '' } -const handleCardCombine = async () => { +const handleCardCombineRequest = async () => { if (isCardCombining.value || cardDrawAnimationShow.value || !canCombineActiveCards.value) { return } isCardCombining.value = true + const sourceCardGrade = activeCollectGameMode.value.cardGrade + const targetCardGrade = getCombineTargetGrade() + const cardTemplateIds = [...activeOwnedCollectCardTemplateIds.value] try { const resCombine = await apiPostCardCombine({ activityId: gulbenActivityId, - cardTemplateIds: activeOwnedCollectCardTemplateIds.value, + cardTemplateIds, }) if (resCombine.status) { cardDrawResultImageUrl.value = getCardDrawResultImageUrl(resCombine.body) + cardDrawResultList.value = [] + cardDrawResultIndex.value = 0 showCardDrawAnimationThenResult(getCardDrawAnimationUrl(resCombine.body), 'combine') - await refreshCardBagGrades([activeCollectGameMode.value.cardGrade, getCombineTargetGrade()]) + await refreshCardBagGrades([sourceCardGrade, targetCardGrade]) } } catch (error) { showError(error.errorMsg) @@ -2499,24 +2657,25 @@ const handleCardCombine = async () => { } } -const handleCardRedeem = async () => { +const handleCardCombine = useDebounce(handleCardCombineRequest, 600, true) + +const handleCardRedeemRequest = async () => { if (isCardRedeeming.value || !canRedeemActiveCards.value) { return } isCardRedeeming.value = true + const sourceCardGrade = activeCollectGameMode.value.cardGrade + const cardTemplateIds = [...activeOwnedCollectCardTemplateIds.value] try { const resRedeem = await apiPostCardRedeem({ activityId: gulbenActivityId, - cardTemplateIds: activeOwnedCollectCardTemplateIds.value, + cardTemplateIds, }) if (resRedeem.status) { - await Promise.all([ - getCardTicketList(), - getCardBagListByGrade(activeCollectGameMode.value.cardGrade), - ]) + await Promise.all([getCardTicketList(), getCardBagListByGrade(sourceCardGrade)]) } } catch (error) { showError(error.errorMsg) @@ -2525,6 +2684,8 @@ const handleCardRedeem = async () => { } } +const handleCardRedeem = useDebounce(handleCardRedeemRequest, 600, true) + const initData = async () => { await Promise.all([ getActivityDetail(), // 获取活动详情 @@ -2536,7 +2697,7 @@ const initData = async () => { ]) } -const receiveTaskReward = async (code) => { +const receiveTaskRewardRequest = async (code) => { if (!gulbenActivityId || !code) { return } @@ -2555,6 +2716,8 @@ const receiveTaskReward = async (code) => { } } +const receiveTaskReward = useDebounce(receiveTaskRewardRequest, 600, true) + const getWeeklyGifts = async () => { const rewardsAndGifts = await getKingQueenEffectiveData() if (rewardsAndGifts.gifts?.length) { @@ -2652,7 +2815,7 @@ const getLotteryPrizeDisplayText = (prize) => { } if (prize.days !== undefined && prize.days !== null && prize.days !== '') { - return `${prize.days} days` + return t('reward_days', { quantity: prize.days }) } return prize.prizeValue ?? '' @@ -2667,7 +2830,7 @@ const getHistoryRecordImage = (record = {}) => { const getHistoryRecordPrizeText = (record = {}) => { const days = record?.prize?.days ?? record.days if (days !== undefined && days !== null && days !== '') { - return `${days} days` + return t('reward_days', { quantity: days }) } const prizeValue = record?.prize?.prizeValue ?? record.prizeValue @@ -2700,6 +2863,7 @@ const getHistoryRecords = async (isReset = false) => { try { const resRecords = await apiPostCardRewardRecordList({ activityId: gulbenActivityId, + poolType: activeLotteryPoolMode.value.poolType, size: historySize, current: historyPage.value, }) @@ -2865,13 +3029,15 @@ const getCurrentRankingList = async () => { await getPersonalRanking() } -const handleRankingClick = (rankingItem = {}) => { +const handleRankingClickRequest = (rankingItem = {}) => { if (isPersonalRankingSection.value) { console.log('[GulbenFestival] Personal Rank click userId:', rankingItem.userId, rankingItem) viewUserInfo(rankingItem.userId) } } +const handleRankingClick = useDebounce(handleRankingClickRequest, 600, true) + const loadRankingSection = async () => { const rankingType = activeRankingLoadKey.value @@ -3046,7 +3212,7 @@ const requestLotteryDraw = async (drawCount) => { } } -const handleLotteryDraw = async (drawCount = 1) => { +const handleLotteryDrawRequest = async (drawCount = 1) => { if (isLotteryRolling.value || !canLotteryRewardDraw(drawCount)) { return } @@ -3063,6 +3229,8 @@ const handleLotteryDraw = async (drawCount = 1) => { await startLotteryAnimation(resultIndex) cardResultActionMode.value = 'rewardDraw' cardDrawResultImageUrl.value = getLotteryRewardResultImageUrl(drawResult) + cardDrawResultList.value = getLotteryRewardResultList(drawResult) + cardDrawResultIndex.value = 0 cardDrawResultShow.value = true } catch (error) { showError(error.errorMsg) @@ -3071,12 +3239,14 @@ const handleLotteryDraw = async (drawCount = 1) => { } } +const handleLotteryDraw = useDebounce(handleLotteryDrawRequest, 600, true) + const activeContentTitle = computed(() => { if (currentChildTab.value) { - return `${currentTopTab.value?.label || ''} / ${currentChildTab.value.label}` + return `${t(currentTopTab.value?.label || '')} / ${t(currentChildTab.value.label)}` } - return currentTopTab.value?.label || '' + return t(currentTopTab.value?.label || '') }) const padTime = (value) => String(value).padStart(2, '0') @@ -3139,7 +3309,7 @@ const closeRulePopup = () => { closePopup() } -const openHistoryPopup = async () => { +const openHistoryPopupRequest = async () => { historyShow.value = true historyPage.value = 1 historyHasMore.value = true @@ -3148,10 +3318,14 @@ const openHistoryPopup = async () => { observeHistoryLoadmore() } +const openHistoryPopup = useDebounce(openHistoryPopupRequest, 600, true) + const closePopup = () => { ruleShow.value = false historyShow.value = false cardDrawResultShow.value = false + cardDrawResultList.value = [] + cardDrawResultIndex.value = 0 cardDrawAnimationShow.value = false if (cardDrawAnimationTimer) { @@ -3446,6 +3620,32 @@ onUnmounted(() => { } /* 第四行:当前标签内容区 */ +.pool-arrow { + width: 8vw; + display: block; +} + +.pool-arrow-next { + transform: scaleX(-1); +} + +.result-popup-arrow { + width: 8vw; + display: block; +} + +.result-popup-arrow-next { + transform: scaleX(-1); +} + +[dir='rtl'] .pool-arrow-prev { + transform: scaleX(-1); +} + +[dir='rtl'] .pool-arrow-next { + transform: scaleX(1); +} + .lottery-prize-list { --lottery-prize-gap: 3vw; } @@ -3496,6 +3696,20 @@ onUnmounted(() => { object-fit: contain; } +.room-rule-text { + width: 100%; + color: #fff; + font-size: 1.2em; + font-weight: 600; + line-height: 1.35; + text-align: left; + white-space: pre-wrap; +} + +[dir='rtl'] .room-rule-text { + text-align: right; +} + .ranking-avatar { border-radius: 50%; } diff --git a/src/views/Activities/GulbenFestival/page.config.js b/src/views/Activities/GulbenFestival/page.config.js index 57d870b..f64465c 100644 --- a/src/views/Activities/GulbenFestival/page.config.js +++ b/src/views/Activities/GulbenFestival/page.config.js @@ -105,13 +105,13 @@ export const pageConfig = { modules: { tabs: { enabled: true, - defaultValue: 'CollectCards toWin Prizes', - items: ['CollectCards toWin Prizes', 'Personal Rank', 'Room Rank'], + defaultValue: 'CollectCards to Win Prizes', + items: ['CollectCards to Win Prizes', 'Personal Rank', 'Room Rank'], }, sections: [ { name: 'collectCards', - label: 'CollectCards toWin Prizes', + label: 'CollectCards to Win Prizes', enabled: true, apis: [], images: ['tagActiveBg', 'tagBg'], @@ -230,6 +230,10 @@ export const pageConfig = { }, images: { - localized: {}, + // 只填写实际存在的多语言图片,阿语模式不会自动给所有图片拼 `_ar`。 + // 示例:ar: ['bg'] 会读取 bg_ar.png;或 bg: { ar: 'bg_ar' } 指定具体图片名。 + localized: { + ar: [], + }, }, } diff --git a/src/views/Activities/GulbenFestival/页面创建信息.md b/src/views/Activities/GulbenFestival/页面创建信息.md index fbb32bd..a50e9d3 100644 --- a/src/views/Activities/GulbenFestival/页面创建信息.md +++ b/src/views/Activities/GulbenFestival/页面创建信息.md @@ -99,8 +99,8 @@ | timeBg | 否 | 活动时间背景 | | tagActiveBg | 否 | 一级标签首屏使用 | | tagBg | 否 | 一级标签首屏使用 | -| lotteryBg | 否 | 默认标签 CollectCards toWin Prizes 第一个 container 大背景 | -| collectGameBg | 否 | 默认标签 CollectCards toWin Prizes 第二个 container 大背景 | +| lotteryBg | 否 | 默认标签 CollectCards to Win Prizes 第一个 container 大背景 | +| collectGameBg | 否 | 默认标签 CollectCards to Win Prizes 第二个 container 大背景 | | ruleBtBg | 否 | 首屏规则按钮背景 | ### 3.3 进入页面后后台预加载图片 @@ -171,9 +171,9 @@ { "tabs": { "enabled": true, - "defaultValue": "CollectCards toWin Prizes", + "defaultValue": "CollectCards to Win Prizes", "items": [ - "CollectCards toWin Prizes", + "CollectCards to Win Prizes", "Personal Rank", "Room Rank" ] @@ -334,12 +334,12 @@ } ``` -### 5.3 一级标签:CollectCards toWin Prizes +### 5.3 一级标签:CollectCards to Win Prizes ```json { "sectionName": "collectCards", - "tabText": "CollectCards toWin Prizes", + "tabText": "CollectCards to Win Prizes", "enabled": true, "apis": { "activityDetail": "activityDetail(activityCode):参考 LuckyDollars Season5 的 /activity/lottery/detail/${activityCode}", @@ -577,7 +577,7 @@ } } }, - "remark": "补集卡/抽奖/任务的数据来源和按钮行为。CollectCards toWin Prizes 当前从上到下拆成 lotteryBg、collectGameBg 两个 container 大背景模块;初始不加边框虚线,padding、margin、gap 先设为 0,后续再按预览微调。" + "remark": "补集卡/抽奖/任务的数据来源和按钮行为。CollectCards to Win Prizes 当前从上到下拆成 lotteryBg、collectGameBg 两个 container 大背景模块;初始不加边框虚线,padding、margin、gap 先设为 0,后续再按预览微调。" } ```