diff --git a/src/locales/ar.json b/src/locales/ar.json index e7f0a70..994fc26 100644 --- a/src/locales/ar.json +++ b/src/locales/ar.json @@ -508,5 +508,9 @@ "active_game_rule_3": "(3) يجب إكمال المهمتين للانتقال إلى المستوى التالي.", "active_game_rule_4": "(4) سيتم إعادة تعيين الشحن اليومي عند الساعة 00:00 (بتوقيت السعودية). يجب على المستخدمين الذين أكملوا مهمة إعادة التعيين المطالبة بمكافآتهم في الوقت المناسب. ستصبح المكافآت غير المطالب بها غير متاحة بعد إعادة التعيين.", "active_game_vap_playback_failed": "فشل تشغيل VAP", - "active_game_claim_reward_failed": "فشل المطالبة بالمكافأة" + "active_game_claim_reward_failed": "فشل المطالبة بالمكافأة", + "active_game_reward_gift": "هدايا مخصصة *1", + "active_game_reward_frame": "إطارات مخصصة * 365 يوم", + "active_game_reward_ride": "مركبات مخصصة * 60 يوم", + "active_game_reward_banner": "لافتات مخصصة * 15 يوم" } diff --git a/src/locales/bn.json b/src/locales/bn.json index 11e6a1c..1f04998 100644 --- a/src/locales/bn.json +++ b/src/locales/bn.json @@ -508,5 +508,9 @@ "active_game_rule_3": "(3) পরবর্তী লেভেলে যেতে দুটি টাস্কই সম্পন্ন করতে হবে।", "active_game_rule_4": "(4) দৈনিক রিচার্জ 00:00 (সৌদি আরব সময়) এ রিসেট হবে। যারা রিসেট টাস্ক সম্পন্ন করেছে, তাদের সময়মতো পুরস্কার দাবি করতে হবে। রিসেটের পর দাবি না করা পুরস্কার আর পাওয়া যাবে না।", "active_game_vap_playback_failed": "VAP প্লেব্যাক ব্যর্থ হয়েছে", - "active_game_claim_reward_failed": "পুরস্কার দাবি করতে ব্যর্থ হয়েছে" + "active_game_claim_reward_failed": "পুরস্কার দাবি করতে ব্যর্থ হয়েছে", + "active_game_reward_gift": "কাস্টমাইজড গিফট *1", + "active_game_reward_frame": "কাস্টমাইজড ফ্রেম * 365 দিন", + "active_game_reward_ride": "কাস্টমাইজড ভেহিকল * 60 দিন", + "active_game_reward_banner": "কাস্টমাইজড ব্যানার * 15 দিন" } diff --git a/src/locales/en.json b/src/locales/en.json index bbdd8ee..0de30d7 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -508,5 +508,9 @@ "active_game_rule_3": "(3) You must complete both tasks to proceed to the next level.", "active_game_rule_4": "(4) Daily recharge will reset at 00:00 (Saudi Arabia Time). Users who have completed the reset task must claim their rewards in time. Unclaimed rewards will become unavailable after the reset.", "active_game_vap_playback_failed": "VAP playback failed", - "active_game_claim_reward_failed": "Failed to claim reward" + "active_game_claim_reward_failed": "Failed to claim reward", + "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" } diff --git a/src/locales/tr.json b/src/locales/tr.json index 5265627..e3f76ea 100644 --- a/src/locales/tr.json +++ b/src/locales/tr.json @@ -508,5 +508,9 @@ "active_game_rule_3": "(3) Sonraki seviyeye geçmek için iki görevi de tamamlamalısınız.", "active_game_rule_4": "(4) Günlük yükleme saat 00:00'da (Suudi Arabistan Saati) sıfırlanır. Sıfırlama görevini tamamlayan kullanıcılar ödüllerini zamanında almalıdır. Alınmayan ödüller sıfırlamadan sonra kullanılamaz hale gelir.", "active_game_vap_playback_failed": "VAP oynatma başarısız", - "active_game_claim_reward_failed": "Ödül alınamadı" + "active_game_claim_reward_failed": "Ödül alınamadı", + "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" } diff --git a/src/locales/zh.json b/src/locales/zh.json index 712d0ca..d4b5084 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -508,5 +508,9 @@ "active_game_rule_3": "(3)必须完成两个任务才能进入下一等级。", "active_game_rule_4": "(4)每日充值将在沙特时间 00:00 重置。已完成重置任务的用户需及时领取奖励,未领取的奖励将在重置后失效。", "active_game_vap_playback_failed": "VAP 播放失败", - "active_game_claim_reward_failed": "领取奖励失败" + "active_game_claim_reward_failed": "领取奖励失败", + "active_game_reward_gift": "定制礼物 *1", + "active_game_reward_frame": "定制头像框 * 365 天", + "active_game_reward_ride": "定制座驾 * 60 天", + "active_game_reward_banner": "定制横幅 * 15 天" } diff --git a/src/views/Activities/DailyRecharge/index.vue b/src/views/Activities/DailyRecharge/index.vue index c9f90f6..76e61e0 100644 --- a/src/views/Activities/DailyRecharge/index.vue +++ b/src/views/Activities/DailyRecharge/index.vue @@ -348,7 +348,7 @@ justify-content: flex-start; justify-content: center; " > -
{{ formatRewardDisplay(mainReward.type, mainReward) }}
+
{{ getRewardDisplayText(mainReward) }}
@@ -387,12 +387,33 @@ justify-content: flex-start; style=" flex: 1; min-height: 0; + width: 100%; + min-width: 0; + overflow: hidden; display: flex; align-items: center; justify-content: center; " > -
{{ formatRewardDisplay(reward.type, reward) }}
+
+
+
+ {{ getRewardDisplayText(reward) }} +
+
+
+
{{ getRewardDisplayText(reward) }}
@@ -680,6 +701,10 @@ const isLocalRewardAsset = (reward) => { return Boolean(reward?.localRewardAsset) } +const getRewardDisplayText = (reward) => { + return formatRewardDisplay(reward.type, reward) +} + const getRewardRenderKey = (reward, index) => { return [ selectedRewardLevel.value, @@ -698,33 +723,33 @@ const getExtraRewardsByLevel = (level) => { { type: 'GIFT', cover: imageUrl('reward_gift'), - content: 1, + content: t('active_game_reward_gift'), localRewardAsset: true, }, ] case 9: return [ { - type: 'PROPS', + type: 'GIFT', detailType: 'AVATAR_FRAME', cover: imageUrl('reward_frame'), - quantity: 365, + content: t('active_game_reward_frame'), localRewardAsset: true, }, ] case 10: return [ { - type: 'PROPS', + type: 'GIFT', detailType: 'RIDE', cover: imageUrl('reward_ride'), - quantity: 60, + content: t('active_game_reward_ride'), localRewardAsset: true, }, { - type: 'BANNER', + type: 'GIFT', cover: imageUrl('reward_banner'), - quantity: 15, + content: t('active_game_reward_banner'), localRewardAsset: true, }, ] @@ -1096,6 +1121,61 @@ onMounted(() => { text-align: center; } +.reward-extra-scroll-viewport { + width: 100%; + max-width: 100%; + min-width: 0; + overflow: hidden; + white-space: nowrap; + direction: ltr; +} + +.reward-extra-scroll-viewport-rtl { + direction: rtl; +} + +.reward-extra-scroll-wrapper { + display: flex; + width: fit-content; + animation-name: reward-scroll-left; + animation-duration: 6s; + animation-timing-function: linear; + animation-iteration-count: infinite; + will-change: transform; + direction: ltr; +} + +.reward-extra-scroll-wrapper-rtl { + animation-name: reward-scroll-right; + direction: rtl; +} + +.reward-extra-scroll-content { + flex: 0 0 auto; + padding: 0 2vw; + white-space: nowrap; +} + +@keyframes reward-scroll-left { + 0% { + transform: translateX(0); + } + + 100% { + transform: translateX(-50%); + } +} + +@keyframes reward-scroll-right { + 0% { + transform: translateX(0); + } + + 100% { + transform: translateX(50%); + } +} + .scroll::-webkit-scrollbar { display: none; }