Commit 5648c868 by suolong

添加翻译和bug

parent e388292f
Showing with 1088 additions and 19 deletions
......@@ -2028,7 +2028,7 @@
"重新传送密码成功" = "重新传送密码成功";
"[分享]" = "[分享[";
"[分享]" = "分享";
"WEBP资源加载出错" = "WEBP资源加载出错";
......@@ -3430,3 +3430,181 @@
"昨日" = "昨日";
"直播总时长:%ld小时" = "直播总时长:%ld小时";
"进入陪伴" = "进入陪伴";
"马上储值进入陪伴" = "立即充值加入陪伴";
"试看%ldS" = "试看%ldS";
"您可陪伴%ld分钟,%ld/分钟" = "您可陪伴%ld分钟,%ld/分钟";
"%ld/分钟" = "%ld 分钟";
"结束试看" = "结束试看";
"试看" = "预览";
"请选择礼物" = "请选择礼物";
"添加互动" = "添加互动";
"互动描述" = "互动描述";
"例如:做鬼脸" = "做鬼脸";
"绑定礼物" = "绑定礼物";
"礼物数量" = "礼物数量";
"请输入互动描述" = "请输入互动描述";
"请绑定互动礼物" = "请绑定互动礼物";
"仅限中文、英文、空格" = "仅限中文、英文、空格";
"互动描述过长,请重新输入" = "互动描述过长,请重新输入";
"重新开播" = "重新开播";
"礼物互动设置" = "礼物互动设置";
"请至少添加或激活一种互动选项" = "请至少添加或激活一种互动选项";
"互动内容数量已达上限" = "互动内容数量已达到上限";
"互动内容" = "互动内容";
"新增表演" = "新增表演";
"礼物互动" = "礼物互动";
"打开开关后,直播间内展示对应互动所需送出的礼物" = "打开开关后,直播间内展示对应互动所需送出的礼物";
"确认删除该礼物互动吗?" = "您确定要删除该礼物互动吗?";
"设置贴纸文字" = "设置贴纸文字";
"付费屋" = "付费屋";
"玩家需付费观看" = "玩家需付费观看";
"抢当MVP" = "抢MVP";
"支持主播" = "支持主播";
"进入限时表演" = "进入限时表演";
"购票支持" = "购票支持";
"已集票数 %zd 张!" = "已集票数 %zd 张!";
"还差 %zd 张!" = "还差 %zd 张!";
"限时表演" = "限时表演";
"请先取消集票" = "请先取消集票";
"请先完成限时表演" = "请先完成限时表演";
"已开启限时表演" = "已开启限时表演";
"集票进行中" = "投票进行中";
"已集票数 0 张!" = "已集票数 0 张!";
"取消集票" = "取消集票";
"表演中" = "表演中";
"表演结束倒数" = "表演结束倒计时";
"已集票满 50 张!" = "已集齐50张票!";
"确定取消集票?" = "确定取消集票?";
"继续集票" = "继续投票";
"直接开始" = "直接开始";
"已集票数:--/--" = "已集票数:--/--";
"票的贡献" = "票的贡献";
"活动须知" = "活动须知";
"你持有张数" = "你持有张数";
"MVP持有张数" = "MVP持有数量";
"精彩限时表演中" = "精彩限时表演进行中";
"已集票数:" = "已集票数:";
"请输入直播主题" = "请输入直播主题";
"设置主播主题" = "设置主播主题";
"贴纸" = "贴纸";
"每日16:00,来找我一起玩吧。" = "每天16:00,来找我一起玩吧。";
"集票数量" = "集票数量";
"开启集票" = "开启集票";
"最低%zd张" = "最低%zd张";
"最高%zd张" = "最高%zd张";
"票已集齐,请开始表演!" = "票已集齐,请开始表演!";
"开始表演" = "开始表演";
"确定取消表演?" = "确定取消表演?";
"继续表演" = "继续表演";
"后自动取消" = "自动取消后";
"表演结束倒计时:--:--" = "表演结束倒计时:--:--";
"展示实力" = "展示实力";
"表演结束倒计时:%02ld:%02ld" = "表演结束倒计时:%02ld:%02ld";
"確認" = "确认";
"互动" = "互动";
"暂无" = "暂无内容";
"陪伴中" = "陪伴中";
"试看中" = "试看中文";
"本场收入:" = "本场收入:";
"陪伴中:" = "陪伴中:";
"人" = "人";
"试看中:" = "试看中文:";
"%zd人在陪伴" = "共有{0}人在陪伴";
"下次计费" = "下次计费";
"已陪伴:%ld 分钟" = "已陪伴:%ld 分钟";
"您可继续陪伴 %ld 分钟" = "您可以继续陪伴主播 %ld 分钟";
"表演结束" = "表演结束";
"本场票数" = "本场票数";
"集票失败" = "集票失败";
"张票已全部退回" = "所有票已全部退回";
......@@ -3431,93 +3431,180 @@
"昨日" = "昨日";
"直播总时长:%ld小时" = "直播總時長:%ld小時";
"进入陪伴" = "進入陪伴";
"马上储值进入陪伴" = "馬上儲值進入陪伴";
"试看%ldS" = "試看%ldS";
"您可陪伴%ld分钟,%ld/分钟" = "您可陪伴%ld分鐘,%ld/分鐘";
"%ld/分钟" = "%ld/分鐘";
"结束试看" = "結束試看";
"试看" = "試看";
"请选择礼物" = "請選擇禮物";
"添加互动" = "添加互動";
"互动描述" = "互動描述";
"例如:做鬼脸" = "例如:做鬼臉";
"绑定礼物" = "綁定禮物";
"礼物数量" = "禮物數量";
"请输入互动描述" = "請輸入互動描述";
"请绑定互动礼物" = "請綁定互動禮物";
"仅限中文、英文、空格" = "僅限中文、英文、空格";
"互动描述过长,请重新输入" = "互動描述過長,請重新輸入";
"重新开播" = "重新開播";
"礼物互动设置" = "禮物互動設置";
"请至少添加或激活一种互动选项" = "請至少添加或激活一種互動選項";
"互动内容数量已达上限" = "互動內容數量已達上限";
"互动内容" = "互動內容";
"新增表演" = "新增表演";
"礼物互动" = "禮物互動";
"打开开关后,直播间内展示对应互动所需送出的礼物" = "打開開關後,直播間內展示對應互動所需送出的禮物";
"确认删除该礼物互动吗?" = "確認刪除該禮物互動嗎?";
"设置贴纸文字" = "設置貼紙文字";
"付费屋" = "付費屋";
"玩家需付费观看" = "玩家需付費觀看";
"抢当MVP" = "搶當MVP";
"支持主播" = "支持主播";
"进入限时表演" = "進入限時表演";
"购票支持" = "購票支持";
"已集票数 %zd 张!" = "已集票數 %zd 張!";
"还差 %zd 张!" = "還差 %zd 張!";
"限时表演" = "限時表演";
"请先取消集票" = "請先取消集票";
"请先完成限时表演" = "請先完成限時表演";
"已开启限时表演" = "已開啟限時表演";
"集票进行中" = "集票進行中";
"已集票数 0 张!" = "已集票數 0 張!";
"取消集票" = "取消集票";
"表演中" = "表演中";
"表演结束倒数" = "表演結束倒數";
"已集票满 50 张!" = "已集票滿 50 張!";
"确定取消集票?" = "確定取消集票?";
"继续集票" = "繼續集票";
"直接开始" = "直接開始";
"已集票数:--/--" = "已集票數:--/--";
"票的贡献" = "票の貢獻";
"活动须知" = "活動須知";
"你持有张数" = "你持有張數";
"MVP持有张数" = "MVP持有張數";
"精彩限时表演中" = "精彩限時表演中";
"已集票数:" = "已集票數:";
"请输入直播主题" = "請輸入直播主題";
"设置主播主题" = "設置主播主題";
"贴纸" = "貼紙";
"每日16:00,来找我一起玩吧。" = "每日16:00,來找我一起玩吧。";
"集票数量" = "集票數量";
"开启集票" = "開啟集票";
"最低%zd张" = "最低%zd張";
"最高%zd张" = "最高%zd張";
"票已集齐,请开始表演!" = "票已集齊,請開始表演!";
"开始表演" = "開始表演";
"确定取消表演?" = "確定取消表演?";
"继续表演" = "繼續表演";
"后自动取消" = "後自動取消";
"表演结束倒计时:--:--" = "表演結束倒計時:--:--";
"展示实力" = "展示實力";
"表演结束倒计时:%02ld:%02ld" = "表演結束倒計時:%02ld:%02ld";
"確認" = "確認";
"互动" = "互動";
"暂无" = "暫無";
"陪伴中" = "陪伴中";
"试看中" = "試看中";
"本场收入:" = "本場收入:";
"陪伴中:" = "陪伴中:";
"人" = "人";
"试看中:" = "試看中:";
"%zd人在陪伴" = "%zd人在陪伴";
"下次计费" = "下次計費";
"已陪伴:%ld 分钟" = "已陪伴:%ld 分鐘";
"您可继续陪伴 %ld 分钟" = "您可繼續陪伴 %ld 分鐘";
"表演结束" = "表演結束";
"本场票数" = "本場票數";
"集票失败" = "集票失敗";
"张票已全部退回" = "張票已全部退回";
"
......@@ -2028,7 +2028,7 @@
"重新传送密码成功" = "Password resend successfully";
"[分享]" = "[Share]";
"[分享]" = "Share";
"WEBP资源加载出错" = "WEBP resource loading error";
......@@ -3430,3 +3430,181 @@
"昨日" = "Yesterday";
"直播总时长:%ld小时" = "Live duration: %ld hours";
"进入陪伴" = "Enter to accompany";
"马上储值进入陪伴" = "Instant recharge to join the companionship";
"试看%ldS" = "Previewing %ldS";
"您可陪伴%ld分钟,%ld/分钟" = "You can accompany for %ld minutes, %ld/minute";
"%ld/分钟" = "%ld minutes";
"结束试看" = "End of previewing";
"试看" = "Preview";
"请选择礼物" = "Please select a gift";
"添加互动" = "Add Interaction";
"互动描述" = "Interactive Description";
"例如:做鬼脸" = "Make a joker face";
"绑定礼物" = "Gift Binding";
"礼物数量" = "Number of gifts";
"请输入互动描述" = "Please enter the interactive description";
"请绑定互动礼物" = "Please bind interactive gifts";
"仅限中文、英文、空格" = "Limited to Chinese, English, and spaces";
"互动描述过长,请重新输入" = "Interaction description is too long, please re-enter";
"重新开播" = "Restart";
"礼物互动设置" = "Gift Interaction Settings";
"请至少添加或激活一种互动选项" = "Please add or activate at least one interactive option";
"互动内容数量已达上限" = "The number of interactive content has reached the limit";
"互动内容" = "Interactive Content";
"新增表演" = "New Performance";
"礼物互动" = "Gift Interaction";
"打开开关后,直播间内展示对应互动所需送出的礼物" = "After turning on the switch, the corresponding gifts required for interaction in the live room are displayed";
"确认删除该礼物互动吗?" = "Are you sure you want to delete the gift interaction?";
"设置贴纸文字" = "Set sticker text";
"付费屋" = "Paid Room";
"玩家需付费观看" = "Players must pay to watch";
"抢当MVP" = "Grab the MVP";
"支持主播" = "Support broadcaster";
"进入限时表演" = "Enter Time-Limited Performance";
"购票支持" = "Ticket Support";
"已集票数 %zd 张!" = "Number of tickets collected: %zd!";
"还差 %zd 张!" = "Still need %zd more!";
"限时表演" = "Limited-time performance";
"请先取消集票" = "Please cancel the ticket collection first";
"请先完成限时表演" = "Please complete the timed performance first";
"已开启限时表演" = "The performance has been started";
"集票进行中" = "In progress";
"已集票数 0 张!" = "Number of tickets collected: 0!";
"取消集票" = "Cancel the ticket collection";
"表演中" = "Showing";
"表演结束倒数" = "Performance end countdown";
"已集票满 50 张!" = "Tickets have been collected to full capacity of 50!";
"确定取消集票?" = "Confirm cancel of the set ticket?";
"继续集票" = "Continue collecting";
"直接开始" = "Get started directly";
"已集票数:--/--" = "Number of tickets collected: --/--";
"票的贡献" = "Ticket Contribution";
"活动须知" = "Event Notice";
"你持有张数" = "You hold a number of tickets";
"MVP持有张数" = "Number of MVP holdings";
"精彩限时表演中" = "Fantastic limited-time performance in progress";
"已集票数:" = "Number of tickets collected:";
"请输入直播主题" = "Please enter the broadcast topic";
"设置主播主题" = "Set broadcast topic";
"贴纸" = "Sticker";
"每日16:00,来找我一起玩吧。" = "Every day at 16:00, come find me to play together.";
"集票数量" = "Number of tickets collected";
"开启集票" = "Open the ticket collection";
"最低%zd张" = "Minimum %zd tickets";
"最高%zd张" = "Highest %zd tickets";
"票已集齐,请开始表演!" = "The tickets are all collected, please start the performance!";
"开始表演" = "Start the performance";
"确定取消表演?" = "Confirm cancel performance?";
"继续表演" = "Continue performing";
"后自动取消" = "automatic cancellation";
"表演结束倒计时:--:--" = "Performance end countdown: --:--";
"展示实力" = "Show your strength";
"表演结束倒计时:%02ld:%02ld" = "Performance end countdown: %02ld:%02ld";
"確認" = "Sure";
"互动" = "Interaction";
"暂无" = "No content available";
"陪伴中" = "Accompanying in";
"试看中" = "Previewing";
"本场收入:" = "This session's revenue:";
"陪伴中:" = "Accompanying:";
"人" = "persons";
"试看中:" = "Previewing:";
"%zd人在陪伴" = "Number of {0} accompanying";
"下次计费" = "Next billing";
"已陪伴:%ld 分钟" = "Accompanied for: %ld minutes";
"您可继续陪伴 %ld 分钟" = "You can continue to accompany the broadcaster for %ld minutes";
"表演结束" = "Performance ends";
"本场票数" = "Ticket number";
"集票失败" = "Ticket collection failed";
"张票已全部退回" = "All tickets have been refunded";
......@@ -2010,7 +2010,7 @@
"重新传送密码成功" = "パスワードの再送信に成功しました";
"[分享]" = "[共有]";
"[分享]" = "シェア";
"WEBP资源加载出错" = "WEBPリソースの読み込みエラー";
......@@ -3408,3 +3408,181 @@
"昨日" = "昨日";
"直播总时长:%ld小时" = "ライブの総時間:%ld時間";
"进入陪伴" = "伴侶に入る";
"马上储值进入陪伴" = "すぐにチャージして仲間に入ります";
"试看%ldS" = "試聴%ldS";
"您可陪伴%ld分钟,%ld/分钟" = "ご一緒できる時間は%ld分、%ld/分です";
"%ld/分钟" = "%ld 分";
"结束试看" = "試聴終了";
"试看" = "プレビュー";
"请选择礼物" = "ギフトを選んでください";
"添加互动" = "インタラクションを追加";
"互动描述" = "インタラクティブな説明";
"例如:做鬼脸" = "鬼脸をする";
"绑定礼物" = "ギフトバインディング";
"礼物数量" = "贈り物の数";
"请输入互动描述" = "インタラクティブな説明を入力してください";
"请绑定互动礼物" = "インタラクティブなギフトをバインドしてください";
"仅限中文、英文、空格" = "中国語、英語、スペースのみ";
"互动描述过长,请重新输入" = "インタラクションの説明が長すぎます、再入力してください";
"重新开播" = "Restart";
"礼物互动设置" = "ギフトインタラクション設定";
"请至少添加或激活一种互动选项" = "少なくとも1つのインタラクティブオプションを追加またはアクティブにしてください";
"互动内容数量已达上限" = "インタラクティブコンテンツの数が上限に達しました";
"互动内容" = "インタラクティブコンテンツ";
"新增表演" = "新たなパフォーマンス";
"礼物互动" = "ギフトインタラクション";
"打开开关后,直播间内展示对应互动所需送出的礼物" = "スイッチをオンにした後、ライブルーム内で必要な対応するインタラクション用のプレゼントが表示されます";
"确认删除该礼物互动吗?" = "そのギフトインタラクションを削除することに確かですか?";
"设置贴纸文字" = "ステッカーテキストの設定";
"付费屋" = "支払い住宅";
"玩家需付费观看" = "視聴には料金が必要です";
"抢当MVP" = "MVPを奪取する";
"支持主播" = "放送局サポート";
"进入限时表演" = "時間限定のパフォーマンスに入る";
"购票支持" = "チケットサポート";
"已集票数 %zd 张!" = "集まった投票数: %zd!";
"还差 %zd 张!" = "まだ %zd 枚足りません!";
"限时表演" = "限时公演";
"请先取消集票" = "まずはチケットをキャンセルしてください";
"请先完成限时表演" = "時間制限のパフォーマンスをまず完了してください";
"已开启限时表演" = "限时表演を開始しました";
"集票进行中" = "投票進行中";
"已集票数 0 张!" = "集票数 0 件!";
"取消集票" = "セットチケットをキャンセル";
"表演中" = "Showing";
"表演结束倒数" = "パフォーマンス終了カウントダウン";
"已集票满 50 张!" = "チケットが50枚まで集まりました!";
"确定取消集票?" = "セットチケットをキャンセルする確認しますか?";
"继续集票" = "投票を続ける";
"直接开始" = "すぐに始める";
"已集票数:--/--" = "集票数:--/--";
"票的贡献" = "チケットの貢献";
"活动须知" = "活動案内";
"你持有张数" = "あなたはカードの数を持っています";
"MVP持有张数" = "MVP保有数";
"精彩限时表演中" = "限定時間の素晴らしいパフォーマンスが進行中";
"已集票数:" = "集票数:";
"请输入直播主题" = "ライブのテーマを入力してください";
"设置主播主题" = "放送者テーマの設定";
"贴纸" = "ステッカー";
"每日16:00,来找我一起玩吧。" = "毎日16:00に私を見つけて一緒に遊ぼう。";
"集票数量" = "集票数";
"开启集票" = "チケット収集を開始する";
"最低%zd张" = "最低 %zd枚";
"最高%zd张" = "最高%zd枚";
"票已集齐,请开始表演!" = "チケットはすべて揃っており、パフォーマンスを開始してください!";
"开始表演" = "パフォーマンスを開始";
"确定取消表演?" = "パフォーマンスをキャンセルしますか?";
"继续表演" = "続ける";
"后自动取消" = "自動キャンセル後";
"表演结束倒计时:--:--" = "パフォーマンス終了カウントダウン:--:--";
"展示实力" = "実力を示す";
"表演结束倒计时:%02ld:%02ld" = "パフォーマンス終了カウントダウン:%02ld:%02ld";
"確認" = "確認";
"互动" = "対話";
"暂无" = "コンテンツがありません";
"陪伴中" = "お見守りしています";
"试看中" = "中国語で試しに見てください";
"本场收入:" = "今回の収益:";
"陪伴中:" = "お見守り中:";
"人" = "persons";
"试看中:" = "中国語で試してみてください:";
"%zd人在陪伴" = "数 {0} 人がお見守り中";
"下次计费" = "次回の課金";
"已陪伴:%ld 分钟" = "付き合った時間: %ld 分";
"您可继续陪伴 %ld 分钟" = "あなたは放送局と一緒に%ld分続けられる";
"表演结束" = "パフォーマンスが終了します";
"本场票数" = "このセッションのチケット数";
"集票失败" = "チケット収集失敗";
"张票已全部退回" = "すべてのチケットが返却されました";
......@@ -2006,7 +2006,7 @@
"重新传送密码成功" = "ส่งรหัสผ่านอีกครั้งสำเร็จ";
"[分享]" = "[หุ้น]";
"[分享]" = "แบ่งปัน";
"WEBP资源加载出错" = "เกิดข้อผิดพลาดในการโหลดทรัพยากร WEBP";
......@@ -3402,3 +3402,181 @@
"昨日" = "เมื่อวาน";
"直播总时长:%ld小时" = "ระยะเวลาการออกอากาศสด:%ld ชั่วโมง";
"进入陪伴" = "เข้าสู่การความเคียร์ชา";
"马上储值进入陪伴" = "จัดเก็บเงินแบบทันทีเพื่อเข้าร่วมการแข่งขัน";
"试看%ldS" = "ทดสอบดู %ldS";
"您可陪伴%ld分钟,%ld/分钟" = "คุณสามารถแบ่งปันเวลาได้ %ld นาที รายนาที %ld";
"%ld/分钟" = "%ld นาที";
"结束试看" = "จบการดูแบบทดลอง";
"试看" = "ดูแบบทดลอง";
"请选择礼物" = "กรุณาเลือกของขวัญ";
"添加互动" = "เพิ่มปฏิสัมพันธ์";
"互动描述" = "คำอธิบายการปฏิสัมพันธ์";
"例如:做鬼脸" = "ทำหน้าตาแบบ鬼脸";
"绑定礼物" = "การเชื่อมโยงของของขวัญ";
"礼物数量" = "จำนวนของขวัญ";
"请输入互动描述" = "กรุณาใส่คำอธิบายปฏิสัมพันธ์";
"请绑定互动礼物" = "กรุณาเชื่อมโยงของขวัญปฏิสัมพันธ์";
"仅限中文、英文、空格" = "ไทย, อังกฤษ และช่องว่าง";
"互动描述过长,请重新输入" = "คำอธิบายการปฏิสัมพันธ์ยาวเกินไป กรุณาใส่ใหม่";
"重新开播" = "Restart";
"礼物互动设置" = "การตั้งค่าการประสานงานของของขวัญ";
"请至少添加或激活一种互动选项" = "กรุณาเพิ่มหรือเปิดใช้งานตัวเลือกปฏิสัมพันธ์อย่างน้อยหนึ่ง";
"互动内容数量已达上限" = "จำนวนเนื้อหาปฏิสนธ์ได้ขึ้นสูงสุดแล้ว";
"互动内容" = "เนื้อหาปฏิสนธ์";
"新增表演" = "การเพิ่มการแสดง";
"礼物互动" = "ปฏิกิริยาของของขวัญ";
"打开开关后,直播间内展示对应互动所需送出的礼物" = "หลังจากเปิดปิดปุ่ม จะแสดงของขวัญที่ต้องการส่งในการปฏิสัมพันธ์ในห้องสด";
"确认删除该礼物互动吗?" = "คุณแน่ใจว่าต้องการลบ ปฏิกิริยาของของขวัญ ใช่ไหม?";
"设置贴纸文字" = "ตั้งข้อความสติ๊กเกอร์";
"付费屋" = "บ้านเช่าเงิน";
"玩家需付费观看" = "ผู้เล่นต้องจ่ายเพื่อดู";
"抢当MVP" = "เอาตำแหน่ง MVP";
"支持主播" = "สนับสนุนนักแสดง";
"进入限时表演" = "เข้าสู่การแสดงจำกัดเวลา";
"购票支持" = "สนับสนุนการซื้อตั๋ว";
"已集票数 %zd 张!" = "จำนวนคะแนนที่รวบรวม: %zd!";
"还差 %zd 张!" = "ยังเหลือ %zd ใบ!";
"限时表演" = "การแสดงจำกัดเวลา";
"请先取消集票" = "โปรดยกเลิกการลงคะแนนก่อน";
"请先完成限时表演" = "โปรดทำการแสดงที่มีกำหนดเวลาก่อน";
"已开启限时表演" = "การเปิดการแสดงที่มีเวลาจำกัดได้เริ่มขึ้นแล้ว";
"集票进行中" = "การลงคะแนนกำลังดำเนินอยู่";
"已集票数 0 张!" = "จำนวนคะแนนที่รวบรวม: 0!";
"取消集票" = "ยกเลิกบอลทิกเซ็ท";
"表演中" = "Showing";
"表演结束倒数" = "นับถอยหลังจบการแสดง";
"已集票满 50 张!" = "ได้รับคะแนนเลือกตั้งจนถึง 50 ใบ!";
"确定取消集票?" = "ยืนยันการยกเลิกบอลทิกเซ็ท?";
"继续集票" = "ต่อเนื่องด้วยการลงคะแนน";
"直接开始" = "เริ่มต้นทันที";
"已集票数:--/--" = "จำนวนคะแนนที่สะสม: --/--";
"票的贡献" = "การบริจาคตั๋ว";
"活动须知" = "ข้อมูลการแข่งขัน";
"你持有张数" = "คุณมีจำนวนบัตร";
"MVP持有张数" = "จำนวนการครอง MVP";
"精彩限时表演中" = "การแสดงที่มีความสำคัญเฉพาะกาล กำลังดำเนินอยู่";
"已集票数:" = "จำนวนคะแนนที่ได้รับ:";
"请输入直播主题" = "กรุณาใส่หัวข้อการออกอากาศ";
"设置主播主题" = "ตั้งชื่อหัวข้อนักแสดง";
"贴纸" = "ติ๊กเกอร์";
"每日16:00,来找我一起玩吧。" = "ทุกวันเวลา 16:00 มาหาฉันเลยว่าจะเล่นด้วยกัน";
"集票数量" = "จำนวนคะแนนที่รวบรวม";
"开启集票" = "เปิดการรับเลือกตั้งตั๋ว";
"最低%zd张" = "ขั้นต่ำ %zd ใบ";
"最高%zd张" = "สูงสุด %zd ใบ";
"票已集齐,请开始表演!" = "บัตรฉันทุกใบเสร็จแล้ว กรุณาเริ่มแสดง!";
"开始表演" = "เริ่มการแสดง";
"确定取消表演?" = "ยืนยันการยกเลิกการแสดง?";
"继续表演" = "ต่อเนื่องดำเนินการแสดง";
"后自动取消" = "หลังจากที่ยกเลิกอัตโนมัติ";
"表演结束倒计时:--:--" = "นับถอยหลังการแสดง: --:--";
"展示实力" = "แสดงพลังของคุณ";
"表演结束倒计时:%02ld:%02ld" = "นับถอยหลังการแสดง: %02ld:%02ld";
"確認" = "เติมเงิน";
"互动" = "ปฏิสัมพันธ์";
"暂无" = "ไม่มีสิ่งที่มีอยู่";
"陪伴中" = "ความร่วมมือ";
"试看中" = "ทดสอบดูในภาษาจีน";
"本场收入:" = "รายได้ของการแสดงนี้:";
"陪伴中:" = "ความสัมพันธ์ใน:";
"人" = "persons";
"试看中:" = "ทดลองชมภาษาจีน:";
"%zd人在陪伴" = "จำนวน {0} คนที่เข้าร่วม";
"下次计费" = "ครั้งถัดไปในการเรียกเก็บค่าบริการ";
"已陪伴:%ld 分钟" = "ความร่วมมือ: %ld นาที";
"您可继续陪伴 %ld 分钟" = "คุณสามารถแบ่งปันเวลากับนักแสดงในระยะเวลา %ld นาที";
"表演结束" = "สิ้นสุดการแสดง";
"本场票数" = "หมายเลขตั๋วสัมมนานี้";
"集票失败" = "ล้มเหลวในการรับเลขที่ตั๋ว";
"张票已全部退回" = "ทั้งหมดบัตรโหลดได้ถูกคืนค่าแล้ว";
......@@ -2010,7 +2010,7 @@
"重新传送密码成功" = "Gửi lại mật khẩu thành công";
"[分享]" = "[Chia sẻ]";
"[分享]" = "Chia sẻ";
"WEBP资源加载出错" = "Lỗi tải tài nguyên WEBP";
......@@ -3408,3 +3408,181 @@
"昨日" = "hôm qua";
"直播总时长:%ld小时" = "Thời gian trực tiếp: %ld giờ";
"进入陪伴" = "Vào cuộc đồng hành";
"马上储值进入陪伴" = "Nạp tiền ngay lập tức để tham gia vào sự đồng hành";
"试看%ldS" = "Thử xem %ldS";
"您可陪伴%ld分钟,%ld/分钟" = "Bạn có thể đồng hành trong %ld phút, %ld/phút";
"%ld/分钟" = "%ld phút";
"结束试看" = "Kết thúc xem thử";
"试看" = "Xem trước";
"请选择礼物" = "Vui lòng chọn quà tặng";
"添加互动" = "Thêm tương tác";
"互动描述" = "Mô tả tương tác";
"例如:做鬼脸" = "Làm鬼脸";
"绑定礼物" = "Kết nối quà tặng";
"礼物数量" = "Số lượng quà tặng";
"请输入互动描述" = "Vui lòng nhập mô tả tương tác";
"请绑定互动礼物" = "Vui lòng liên kết quà tặng tương tác";
"仅限中文、英文、空格" = "Chỉ có tiếng Trung, tiếng Anh và khoảng trống";
"互动描述过长,请重新输入" = "Mô tả tương tác quá dài, vui lòng nhập lại";
"重新开播" = "Restart";
"礼物互动设置" = "Cài đặt tương tác quà tặng";
"请至少添加或激活一种互动选项" = "Vui lòng thêm hoặc kích hoạt ít nhất một tùy chọn tương tác";
"互动内容数量已达上限" = "Số lượng nội dung tương tác đã đạt đến mức tối đa";
"互动内容" = "Nội dung tương tác";
"新增表演" = "Thêm biểu diễn";
"礼物互动" = "Hoạt động quà tặng";
"打开开关后,直播间内展示对应互动所需送出的礼物" = "Sau khi bật công tắc, sẽ hiển thị quà tặng tương ứng cần gửi để tương tác trong phòng trực tiếp";
"确认删除该礼物互动吗?" = "Bạn có chắc chắn muốn xóa tương tác quà tặng này không?";
"设置贴纸文字" = "Đặt văn bản dán nhãn";
"付费屋" = "Nhà trả góp";
"玩家需付费观看" = "Người chơi phải trả phí để xem";
"抢当MVP" = "Chiếm MVP";
"支持主播" = "Hỗ trợ người phát sóng";
"进入限时表演" = "Vào biểu diễn hạn chế thời gian";
"购票支持" = "Hỗ trợ mua vé";
"已集票数 %zd 张!" = "Số lượng phiếu đã thu thập: %zd!";
"还差 %zd 张!" = "Còn thiếu %zd tờ!";
"限时表演" = "Hiện diễn giới hạn thời gian";
"请先取消集票" = "Vui lòng hủy bỏ việc đặt vé trước";
"请先完成限时表演" = "Vui lòng hoàn thành biểu diễn có thời gian hạn chế trước";
"已开启限时表演" = "Chương trình biểu diễn có thời gian hạn chế đã được mở";
"集票进行中" = "Việc thu thập phiếu đang diễn ra";
"已集票数 0 张!" = "Số lượng phiếu đã thu thập: 0!";
"取消集票" = "Hủy vé tập";
"表演中" = "Showing";
"表演结束倒数" = "Đếm ngược kết thúc biểu diễn";
"已集票满 50 张!" = "Đã có 50 vé được thu thập!";
"确定取消集票?" = "Xác nhận hủy vé tập?";
"继续集票" = "Tiếp tục bỏ phiếu";
"直接开始" = "Bắt đầu ngay lập tức";
"已集票数:--/--" = "Số lượt đã thu thập: --/--";
"票的贡献" = "Đóng góp vé";
"活动须知" = "Thông báo hoạt động";
"你持有张数" = "Bạn đang giữ số lượng thẻ";
"MVP持有张数" = "Số lượng MVP giữ có";
"精彩限时表演中" = "Chương trình biểu diễn限时 tuyệt vời đang diễn ra";
"已集票数:" = "Số lượng phiếu đã thu thập:";
"请输入直播主题" = "Vui lòng nhập chủ đề trực tiếp";
"设置主播主题" = "Đặt chủ đề của người phát sóng";
"贴纸" = "Dán nhãn";
"每日16:00,来找我一起玩吧。" = "Mỗi ngày vào 16:00, hãy tìm tôi để cùng chơi.";
"集票数量" = "Số lượng phiếu thu thập";
"开启集票" = "Mở bộ sưu tập vé";
"最低%zd张" = "Tối thiểu %zd tờ";
"最高%zd张" = "Cao nhất %zd tờ";
"票已集齐,请开始表演!" = "Vé đã đầy đủ, xin bắt đầu biểu diễn!";
"开始表演" = "Bắt đầu biểu diễn";
"确定取消表演?" = "Xác nhận hủy biểu diễn?";
"继续表演" = "Tiếp tục biểu diễn";
"后自动取消" = "Sau khi tự động hủy";
"表演结束倒计时:--:--" = "Đếm ngược kết thúc biểu diễn: --:--";
"展示实力" = "Hiển thị sức mạnh";
"表演结束倒计时:%02ld:%02ld" = "Đếm ngược kết thúc biểu diễn: %02ld:%02ld";
"確認" = "Chắc chắn";
"互动" = "Giao tiếp";
"暂无" = "Chưa có nội dung";
"陪伴中" = "Cùng bên";
"试看中" = "Thử xem tiếng Trung";
"本场收入:" = "Doanh thu của buổi này:";
"陪伴中:" = "Cùng bên:";
"人" = "persons";
"试看中:" = "Thử xem tiếng Trung:";
"%zd人在陪伴" = "Số {0} người tham gia";
"下次计费" = "Lần tiếp theo tính phí";
"已陪伴:%ld 分钟" = "Đã đồng hành: %ld phút";
"您可继续陪伴 %ld 分钟" = "Bạn có thể tiếp tục đồng hành cùng người dẫn chương trình trong %ld phút";
"表演结束" = "Kết thúc biểu diễn";
"本场票数" = "Số vé của phiên bản này";
"集票失败" = "Thất bại trong việc thu thập vé";
"张票已全部退回" = "Tất cả các vé đã được hoàn trả";
......@@ -69,7 +69,7 @@
}
+ (UIColor *)fus_themeColorOnWhiteBg {
return [self colorWithHex:@"#01D9E0"];
return [self colorWithHex:@"#0DD9E0"];
}
+ (UIColor *)fus_themeThirdColor{
......
......@@ -142,6 +142,9 @@ typedef NS_ENUM(NSInteger, FUSFunctionMode) {
- (UIView *)fus_viewWithLayer:(FUSLiveFunctionLayer)layer;
/// 付费屋左侧副本专用容器(挂在 scrollView 的左页,x=0)
- (UIView *)fus_payRoomClearScreenRootView;
/**
添加信息
......
......@@ -355,6 +355,8 @@ BDAlphaPlayerMetalViewDelegate
@property (nonatomic, assign) BOOL requestingAnchorRewardView;
@property (nonatomic, weak) FusAnchorPayRoomView *anchorPayRoomView;
/// 左页副本:与右侧付费屋面板展示和交互保持一致
@property (nonatomic, weak) FusAnchorPayRoomView *anchorPayRoomLeftView;
/// 主播付费房面板数据是否已请求过(与旧逻辑一致:首次自动拉取一次)
@property (nonatomic, assign) BOOL didRequestAnchorPayRoomData;
/// 主播付费房面板数据请求中标记(避免重复并发请求)
......@@ -362,6 +364,9 @@ BDAlphaPlayerMetalViewDelegate
/// 主播付费房面板最新数据缓存(用于视图重建后直接恢复展示)
@property (nonatomic, copy) NSDictionary *anchorPayRoomDataPayload;
/// 左页(x=0)承载付费屋副本 UI 的容器层
@property (nonatomic, strong) FUSLiveFunctionLayerView *payRoomClearScreenLayerView;
@property (nonatomic, assign) CGRect activityChangeFrame;
/// 半屏网页的管理,内部全是弱引用,放心添加网页
......@@ -524,6 +529,12 @@ BDAlphaPlayerMetalViewDelegate
}
self.viewLayerArray = layerViews;
// 单独放一层在左页,避免影响现有右页层级
self.payRoomClearScreenLayerView = [[FUSLiveFunctionLayerView alloc] initWithFrame:self.scrollView.bounds];
self.payRoomClearScreenLayerView.layerType = FUSLiveFunctionLayerFunctionButtons;
self.payRoomClearScreenLayerView.x = 0;
[_scrollView addSubview:self.payRoomClearScreenLayerView];
}
/**
......@@ -772,6 +783,7 @@ BDAlphaPlayerMetalViewDelegate
view.y = -height;
}
}
weakSelf.payRoomClearScreenLayerView.y = -height;
weakSelf.bulletsView.y = weakSelf.bulletsViewY - height*0.5;
......@@ -798,6 +810,7 @@ BDAlphaPlayerMetalViewDelegate
for (UIView *view in weakSelf.viewLayerArray) {
view.y = 0;
}
weakSelf.payRoomClearScreenLayerView.y = 0;
weakSelf.bulletsView.y = weakSelf.bulletsViewY;
CGFloat gameEntranceY = (weakSelf.bottomToolView.y - 55 - 10) - 55 - 10;
weakSelf.treasureBoxListIcon.y = gameEntranceY - 75 - 10;
......@@ -1424,11 +1437,10 @@ BDAlphaPlayerMetalViewDelegate
- (void)fus_updateAnchorPayRoomViewIfNeeded {
if (self.anchorPayRoomView.superview) {
return;
}
__weak typeof(self) weakSelf = self;
// 右页原有面板
if (!self.anchorPayRoomView.superview) {
[FusAnchorPayRoomView fus_showAnchorPayRoomViewIfNeeded:^(FusAnchorPayRoomView * _Nonnull view) {
view.y = weakSelf.pusherPopularView.bottom;
weakSelf.anchorPayRoomView = view;
......@@ -1440,6 +1452,27 @@ BDAlphaPlayerMetalViewDelegate
}
[weakSelf fus_requestAnchorPayRoomDataWithForce:NO];
}];
}
// 左页新增副本
if (!self.anchorPayRoomLeftView.superview) {
FusAnchorPayRoomView *leftView = [FusAnchorPayRoomView fus_createAnchorPayRoomViewIfNeeded];
if (leftView) {
leftView.y = weakSelf.pusherPopularView.bottom;
weakSelf.anchorPayRoomLeftView = leftView;
leftView.requestDataHandler = ^(BOOL force) {
[weakSelf fus_requestAnchorPayRoomDataWithForce:force];
};
if ([weakSelf.anchorPayRoomDataPayload isKindOfClass:NSDictionary.class]) {
[leftView fus_updateWithPayRoomPayload:weakSelf.anchorPayRoomDataPayload];
}
[[weakSelf fus_payRoomClearScreenRootView] addSubview:leftView];
}
}
if (!self.didRequestAnchorPayRoomData) {
[self fus_requestAnchorPayRoomDataWithForce:NO];
}
}
- (void)fus_requestAnchorPayRoomDataWithForce:(BOOL)force {
......@@ -1487,6 +1520,9 @@ BDAlphaPlayerMetalViewDelegate
if (strongSelf.anchorPayRoomView) {
[strongSelf.anchorPayRoomView fus_updateWithPayRoomPayload:strongSelf.anchorPayRoomDataPayload];
}
if (strongSelf.anchorPayRoomLeftView) {
[strongSelf.anchorPayRoomLeftView fus_updateWithPayRoomPayload:strongSelf.anchorPayRoomDataPayload];
}
});
} failure:^(NSString *msg, NSInteger code) {
dispatch_async(dispatch_get_main_queue(), ^{
......@@ -1530,6 +1566,9 @@ BDAlphaPlayerMetalViewDelegate
if (self.anchorPayRoomView) {
[self.anchorPayRoomView fus_updateWithPayRoomPayload:self.anchorPayRoomDataPayload];
}
if (self.anchorPayRoomLeftView) {
[self.anchorPayRoomLeftView fus_updateWithPayRoomPayload:self.anchorPayRoomDataPayload];
}
}
/**
......@@ -6538,6 +6577,12 @@ BDAlphaPlayerMetalViewDelegate
[self.liveTopicWindowView removeFromSuperview];
self.liveTopicWindowView = nil;
[self.anchorPayRoomView removeFromSuperview];
self.anchorPayRoomView = nil;
[self.anchorPayRoomLeftView removeFromSuperview];
self.anchorPayRoomLeftView = nil;
[self.payRoomClearScreenLayerView removeAllSubviews];
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(fus_initFastInputView) object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self];
......@@ -6713,12 +6758,14 @@ BDAlphaPlayerMetalViewDelegate
for (FUSLiveFunctionLayerView *layer in self.viewLayerArray) {
layer.hidden = YES;
}
self.payRoomClearScreenLayerView.hidden = YES;
}
- (void)fus_showAllFunctionLayers {
for (FUSLiveFunctionLayerView *layer in self.viewLayerArray) {
layer.hidden = NO;
}
self.payRoomClearScreenLayerView.hidden = NO;
}
/**
......@@ -8059,12 +8106,14 @@ BDAlphaPlayerMetalViewDelegate
layer.alpha = 0;
}
}
self.payRoomClearScreenLayerView.alpha = 0;
} completion:^(BOOL finished) {
for (FUSLiveFunctionLayerView *layer in self.viewLayerArray) {
if (layer.layerType != FUSLiveFunctionLayerBigEffects && layer != [FUSGiftCenter fus_shareGiftCenter].normalGiftBgView) {
layer.hidden = YES;
}
}
self.payRoomClearScreenLayerView.hidden = YES;
}];
}else {
for (FUSLiveFunctionLayerView *layer in self.viewLayerArray) {
......@@ -8072,6 +8121,7 @@ BDAlphaPlayerMetalViewDelegate
layer.hidden = YES;
}
}
self.payRoomClearScreenLayerView.hidden = YES;
}
}
......@@ -8081,10 +8131,13 @@ BDAlphaPlayerMetalViewDelegate
layer.hidden = NO;
layer.alpha = 0;
}
self.payRoomClearScreenLayerView.hidden = NO;
self.payRoomClearScreenLayerView.alpha = 0;
[UIView animateWithDuration:0.3 animations:^{
for (FUSLiveFunctionLayerView *layer in self.viewLayerArray) {
layer.alpha = 1;
}
self.payRoomClearScreenLayerView.alpha = 1;
} completion:^(BOOL finished) {
}];
......@@ -8092,6 +8145,7 @@ BDAlphaPlayerMetalViewDelegate
for (FUSLiveFunctionLayerView *layer in self.viewLayerArray) {
layer.hidden = NO;
}
self.payRoomClearScreenLayerView.hidden = NO;
}
}
......@@ -8278,6 +8332,18 @@ BDAlphaPlayerMetalViewDelegate
return view;
}
- (UIView *)fus_payRoomClearScreenRootView {
if (!self.payRoomClearScreenLayerView) {
self.payRoomClearScreenLayerView = [[FUSLiveFunctionLayerView alloc] initWithFrame:self.scrollView.bounds];
self.payRoomClearScreenLayerView.layerType = FUSLiveFunctionLayerFunctionButtons;
self.payRoomClearScreenLayerView.x = 0;
[self.scrollView addSubview:self.payRoomClearScreenLayerView];
}
self.payRoomClearScreenLayerView.hidden = NO;
self.payRoomClearScreenLayerView.alpha = 1;
return self.payRoomClearScreenLayerView;
}
- (CGFloat)fus_chatTextViewHeight {
BOOL keyboardDidShow = self.contentView.y < 0;
if (self.bottomToolView.chatTextView.isBulletsHeight && keyboardDidShow) {
......
......@@ -13,6 +13,10 @@ NS_ASSUME_NONNULL_BEGIN
+ (FUSPayRoomCompanionPopView *)fus_showWithRootView:(UIView *)rootView
payRoomData:(FUSPayRoomFrostedGlassDataModel *)payRoomData;
+ (FUSPayRoomCompanionPopView *)fus_showWithRootView:(UIView *)rootView
payRoomData:(FUSPayRoomFrostedGlassDataModel *)payRoomData
reuseTag:(NSInteger)reuseTag;
/// 刷新展示内容(已陪伴/可继续陪伴/是否不足提示/进度条)
- (void)fus_updateWithPayRoomData:(FUSPayRoomFrostedGlassDataModel *)payRoomData;
......
......@@ -67,6 +67,13 @@ static CGFloat const kFUSPayRoomCompanionRechargeDefaultHeight = 160.0;
+ (FUSPayRoomCompanionPopView *)fus_showWithRootView:(UIView *)rootView
payRoomData:(FUSPayRoomFrostedGlassDataModel *)payRoomData
{
return [self fus_showWithRootView:rootView payRoomData:payRoomData reuseTag:90917001];
}
+ (FUSPayRoomCompanionPopView *)fus_showWithRootView:(UIView *)rootView
payRoomData:(FUSPayRoomFrostedGlassDataModel *)payRoomData
reuseTag:(NSInteger)reuseTag
{
if (!rootView) {
return nil;
}
......@@ -76,7 +83,7 @@ static CGFloat const kFUSPayRoomCompanionRechargeDefaultHeight = 160.0;
displayCompanionData = [[FUSPayRoomCompanionDataModel alloc] init];
}
UIView *existView = [rootView viewWithTag:90917001];
UIView *existView = (reuseTag > 0 ? [rootView viewWithTag:reuseTag] : nil);
if ([existView isKindOfClass:FUSPayRoomCompanionPopView.class]) {
[existView removeFromSuperview];
}
......@@ -86,7 +93,9 @@ static CGFloat const kFUSPayRoomCompanionRechargeDefaultHeight = 160.0;
CGFloat viewX = 10;
CGFloat viewY = UIView.fus_SafeTop + 205;
FUSPayRoomCompanionPopView *popView = [[FUSPayRoomCompanionPopView alloc] initWithFrame:CGRectMake(viewX, viewY, viewW, viewH)];
popView.tag = 90917001;
if (reuseTag > 0) {
popView.tag = reuseTag;
}
[rootView addSubview:popView];
[popView fus_updateWithPayRoomData:payRoomData];
return popView;
......
......@@ -88,13 +88,12 @@
self.scrollView.pagingEnabled = YES;
self.scrollView.delegate = self;
[self.contentView addSubview:self.scrollView];
[UIColor fus_themeColor];
self.accompanyUserView = [[FUSPayRoomViewerListView alloc] initWithFrame:self.scrollView.bounds];
self.accompanyUserView.clickUserHandler = ^(NSDictionary * _Nonnull userDict) {
if (weakSelf.clickUserHandler) {
weakSelf.clickUserHandler(userDict);
}
[weakSelf fus_dismissView];
};
[self.scrollView addSubview:self.accompanyUserView];
......@@ -104,7 +103,6 @@
if (weakSelf.clickUserHandler) {
weakSelf.clickUserHandler(userDict);
}
[weakSelf fus_dismissView];
};
[self.scrollView addSubview:self.trialUserView];
}
......
......@@ -14,6 +14,9 @@ NS_ASSUME_NONNULL_BEGIN
/// 外层触发刷新数据(force=YES 对应展开后强制刷新)
@property (nonatomic, copy) void (^requestDataHandler)(BOOL force);
/// 只创建视图,不自动添加到父视图(用于左右两侧分别挂载)
+ (nullable FusAnchorPayRoomView *)fus_createAnchorPayRoomViewIfNeeded;
+ (void)fus_showAnchorPayRoomViewIfNeeded:(void(^)(FusAnchorPayRoomView *view))viewHasShowhandler;
/// 外层下发完整数据(/payRoom/getPayRoomData 的 payload 或等价结构)
......
......@@ -77,14 +77,14 @@
@implementation FusAnchorPayRoomView
+ (void)fus_showAnchorPayRoomViewIfNeeded:(void(^)(FusAnchorPayRoomView *view))viewHasShowhandler {
+ (FusAnchorPayRoomView *)fus_createAnchorPayRoomViewIfNeeded {
if (FUSLiveHelper.shareInstance.liveType != FUSLiveTypeAnchor) {
return;
return nil;
}
if (FUSLiveHelper.shareInstance.roomScopeType != FUSLiveRoomScopeTypePay) {
return;
return nil;
}
CGFloat viewW = 120;
......@@ -93,6 +93,15 @@
FusAnchorPayRoomView *payRoomView = [[FusAnchorPayRoomView alloc] initWithFrame:CGRectMake(10, viewY, viewW, viewH)];
payRoomView.originalHeight = payRoomView.height;
return payRoomView;
}
+ (void)fus_showAnchorPayRoomViewIfNeeded:(void(^)(FusAnchorPayRoomView *view))viewHasShowhandler {
FusAnchorPayRoomView *payRoomView = [self fus_createAnchorPayRoomViewIfNeeded];
if (!payRoomView) {
return;
}
UIView *containerView = [[FUSLiveHelper shareInstance].currentFunctionView fus_viewWithLayer:FUSLiveFunctionLayerFunctionButtons];
[containerView addSubview:payRoomView];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment