add configurable gift menu overlays
Add tenant-scoped gift menu settings, catalog-backed triggers, infinite OBS rendering, and guard assets. Normalize legacy and protobuf gift values for blind-box, battery-tier, and transaction-aware matching.
This commit is contained in:
@@ -223,6 +223,8 @@ name = "简体中文"
|
||||
"test.nickname" = "测试昵称"
|
||||
"test.danmaku_text" = "弹幕内容"
|
||||
"test.gift_name" = "礼物名称"
|
||||
"test.gift_id" = "礼物 ID(可选)"
|
||||
"test.gift_id_placeholder" = "用于测试指定礼物菜单项"
|
||||
"test.quantity" = "数量"
|
||||
"test.battery" = "电池数"
|
||||
"test.guard" = "上舰"
|
||||
@@ -237,10 +239,12 @@ name = "简体中文"
|
||||
"components.danmaku_mark" = "弹"
|
||||
"components.song_mark" = "歌"
|
||||
"components.gift_mark" = "礼"
|
||||
"components.gift_menu_mark" = "单"
|
||||
"components.generic_mark" = "件"
|
||||
"components.danmaku_type" = "直播弹幕姬"
|
||||
"components.song_type" = "直播点歌姬"
|
||||
"components.gift_type" = "全屏礼物星雨"
|
||||
"components.gift_menu_type" = "直播礼物菜单"
|
||||
"components.coming_soon" = "即将支持"
|
||||
"components.future" = "更多主题 · 互动组件"
|
||||
"components.settings_blocker" = "保存或还原当前组件设置"
|
||||
@@ -255,6 +259,8 @@ name = "简体中文"
|
||||
"components.song_description" = "观众发送「点歌 歌名」入队,发送「打分 1-5」评价当前歌曲。"
|
||||
"components.gift_settings" = "全屏礼物特效设置"
|
||||
"components.gift_description" = "礼物化作流星横跨透明画布;舰长、提督和总督触发全屏星光献礼。"
|
||||
"components.gift_menu_settings" = "礼物菜单设置"
|
||||
"components.gift_menu_description" = "把当前直播间的礼物、大航海身份或指定电池单价映射为主播提供的直播内容。"
|
||||
"components.open_song_stats" = "打开点歌统计"
|
||||
"components.generic_settings" = "组件设置"
|
||||
"components.no_editor" = "该组件类型的设置编辑器尚未安装。"
|
||||
@@ -391,6 +397,54 @@ name = "简体中文"
|
||||
"gift.guard_salute" = "星河为你闪耀"
|
||||
"gift.guard_title" = "{guard}·星光献礼"
|
||||
"gift.guard_viewer" = "感谢 {viewer} 的守护"
|
||||
"gift_menu.theme.jade_banquet.name" = "青玉华宴"
|
||||
"gift_menu.theme.jade_banquet.description" = "青玉玻璃、流金花枝和星光高亮组成的古风礼物菜单。"
|
||||
"gift_menu.catalog.title" = "当前直播间礼物目录"
|
||||
"gift_menu.catalog.loading" = "正在读取礼物与图标…"
|
||||
"gift_menu.catalog.count" = "已加载 {count} 种礼物"
|
||||
"gift_menu.catalog.refresh" = "立即刷新礼物目录"
|
||||
"gift_menu.catalog.failed" = "礼物目录读取失败"
|
||||
"gift_menu.editor.add_title" = "添加菜单项"
|
||||
"gift_menu.editor.trigger_type" = "触发类型"
|
||||
"gift_menu.trigger.gift" = "指定普通礼物"
|
||||
"gift_menu.trigger.guard" = "指定大航海身份"
|
||||
"gift_menu.trigger.battery" = "指定礼物单价"
|
||||
"gift_menu.editor.gift" = "直播间礼物"
|
||||
"gift_menu.editor.gift_option" = "{name} · {battery} 电池"
|
||||
"gift_menu.editor.guard_level" = "大航海身份"
|
||||
"gift_menu.editor.battery_amount" = "单价电池数"
|
||||
"gift_menu.editor.description" = "对应直播内容"
|
||||
"gift_menu.editor.description_placeholder" = "例如:点歌一首 / 学唱一首歌"
|
||||
"gift_menu.editor.add" = "加入礼物菜单"
|
||||
"gift_menu.editor.description_required" = "请填写该礼物对应的直播内容。"
|
||||
"gift_menu.editor.gift_required" = "请先从当前直播间目录选择礼物。"
|
||||
"gift_menu.editor.duplicate" = "这个触发条件已经存在于菜单中。"
|
||||
"gift_menu.editor.empty" = "还没有菜单项,请从上方添加。"
|
||||
"gift_menu.editor.move_up" = "上移菜单项"
|
||||
"gift_menu.editor.move_down" = "下移菜单项"
|
||||
"gift_menu.editor.remove" = "移除"
|
||||
"gift_menu.guard.captain" = "舰长"
|
||||
"gift_menu.guard.admiral" = "提督"
|
||||
"gift_menu.guard.governor" = "总督"
|
||||
"gift_menu.guard_mark.captain" = "舰"
|
||||
"gift_menu.guard_mark.admiral" = "提"
|
||||
"gift_menu.guard_mark.governor" = "总"
|
||||
"gift_menu.battery_mark" = "电"
|
||||
"gift_menu.settings.visible_rows" = "最多展示行数"
|
||||
"gift_menu.settings.row_height" = "每行高度"
|
||||
"gift_menu.settings.scroll_speed" = "循环滚动速度"
|
||||
"gift_menu.settings.highlight_duration" = "触发高亮时长"
|
||||
"gift_menu.settings.font_scale" = "文字缩放"
|
||||
"gift_menu.settings.motion" = "动效强度"
|
||||
"gift_menu.unit.pixels" = "{value} 像素"
|
||||
"gift_menu.unit.speed" = "{value} 像素/秒"
|
||||
"gift_menu.unit.seconds" = "{value} 秒"
|
||||
"gift_menu.preview.title" = "礼物菜单预览"
|
||||
"gift_menu.preview.description" = "点击任意菜单行可预览定位、暂停滚动与渐变高亮动画。"
|
||||
"gift_menu.aria" = "直播间礼物菜单"
|
||||
"gift_menu.overlay.battery" = "电池 ×{amount}"
|
||||
"gift_menu.overlay.triggered_by" = "{viewer} 已触发"
|
||||
"gift_menu.overlay.empty" = "请先在控制台配置礼物菜单"
|
||||
"pwa.blocked" = "暂时不能更新,请先处理以下内容:\n\n{reasons}"
|
||||
"pwa.confirm_update" = "更新会刷新控制台。请先保存设置、邀请码、恢复码或刚轮换的 OBS 令牌,确定现在更新吗?"
|
||||
"pwa.offline" = "离线"
|
||||
@@ -621,6 +675,8 @@ name = "English"
|
||||
"test.nickname" = "Test nickname"
|
||||
"test.danmaku_text" = "Chat message"
|
||||
"test.gift_name" = "Gift name"
|
||||
"test.gift_id" = "Gift ID (optional)"
|
||||
"test.gift_id_placeholder" = "Tests a specific gift-menu entry"
|
||||
"test.quantity" = "Quantity"
|
||||
"test.battery" = "Battery value"
|
||||
"test.guard" = "Guard purchase"
|
||||
@@ -635,10 +691,12 @@ name = "English"
|
||||
"components.danmaku_mark" = "Chat"
|
||||
"components.song_mark" = "Song"
|
||||
"components.gift_mark" = "Gift"
|
||||
"components.gift_menu_mark" = "Menu"
|
||||
"components.generic_mark" = "App"
|
||||
"components.danmaku_type" = "Live chat overlay"
|
||||
"components.song_type" = "Song request overlay"
|
||||
"components.gift_type" = "Full-screen gift starfall"
|
||||
"components.gift_menu_type" = "Live gift menu"
|
||||
"components.coming_soon" = "Coming soon"
|
||||
"components.future" = "More themes · Interactive components"
|
||||
"components.settings_blocker" = "save or revert the current component settings"
|
||||
@@ -653,6 +711,8 @@ name = "English"
|
||||
"components.song_description" = "Viewers send “点歌 Song name” to queue a song and “打分 1-5” to rate the current song."
|
||||
"components.gift_settings" = "Full-screen gift effect settings"
|
||||
"components.gift_description" = "Gifts become meteors crossing a transparent canvas; Guard, Admiral, and Governor purchases trigger a full-screen starlight celebration."
|
||||
"components.gift_menu_settings" = "Gift menu settings"
|
||||
"components.gift_menu_description" = "Map gifts available in the current room, membership tiers, or a gift unit price to content the streamer will perform."
|
||||
"components.open_song_stats" = "Open song statistics"
|
||||
"components.generic_settings" = "Component settings"
|
||||
"components.no_editor" = "No settings editor is installed for this component kind."
|
||||
@@ -789,6 +849,54 @@ name = "English"
|
||||
"gift.guard_salute" = "THE STARS SHINE FOR YOU"
|
||||
"gift.guard_title" = "{guard} · STARLIGHT TRIBUTE"
|
||||
"gift.guard_viewer" = "Thank you, {viewer}, for your support"
|
||||
"gift_menu.theme.jade_banquet.name" = "Jade Banquet"
|
||||
"gift_menu.theme.jade_banquet.description" = "An ornate gift menu of jade glass, gilded blossoms, and starlight highlights."
|
||||
"gift_menu.catalog.title" = "Current room gift catalog"
|
||||
"gift_menu.catalog.loading" = "Loading gifts and icons…"
|
||||
"gift_menu.catalog.count" = "Loaded {count} gifts"
|
||||
"gift_menu.catalog.refresh" = "Refresh gift catalog"
|
||||
"gift_menu.catalog.failed" = "Could not load the gift catalog"
|
||||
"gift_menu.editor.add_title" = "Add menu item"
|
||||
"gift_menu.editor.trigger_type" = "Trigger type"
|
||||
"gift_menu.trigger.gift" = "Specific regular gift"
|
||||
"gift_menu.trigger.guard" = "Specific membership tier"
|
||||
"gift_menu.trigger.battery" = "Specific gift unit price"
|
||||
"gift_menu.editor.gift" = "Room gift"
|
||||
"gift_menu.editor.gift_option" = "{name} · {battery} battery"
|
||||
"gift_menu.editor.guard_level" = "Membership tier"
|
||||
"gift_menu.editor.battery_amount" = "Unit price in battery"
|
||||
"gift_menu.editor.description" = "Stream content"
|
||||
"gift_menu.editor.description_placeholder" = "For example: request a song / learn a song"
|
||||
"gift_menu.editor.add" = "Add to gift menu"
|
||||
"gift_menu.editor.description_required" = "Describe the content triggered by this gift."
|
||||
"gift_menu.editor.gift_required" = "Select a gift from the current room catalog first."
|
||||
"gift_menu.editor.duplicate" = "This trigger is already present in the menu."
|
||||
"gift_menu.editor.empty" = "No menu items yet. Add one above."
|
||||
"gift_menu.editor.move_up" = "Move menu item up"
|
||||
"gift_menu.editor.move_down" = "Move menu item down"
|
||||
"gift_menu.editor.remove" = "Remove"
|
||||
"gift_menu.guard.captain" = "Guard"
|
||||
"gift_menu.guard.admiral" = "Admiral"
|
||||
"gift_menu.guard.governor" = "Governor"
|
||||
"gift_menu.guard_mark.captain" = "G"
|
||||
"gift_menu.guard_mark.admiral" = "A"
|
||||
"gift_menu.guard_mark.governor" = "V"
|
||||
"gift_menu.battery_mark" = "B"
|
||||
"gift_menu.settings.visible_rows" = "Maximum visible rows"
|
||||
"gift_menu.settings.row_height" = "Row height"
|
||||
"gift_menu.settings.scroll_speed" = "Loop scroll speed"
|
||||
"gift_menu.settings.highlight_duration" = "Trigger highlight duration"
|
||||
"gift_menu.settings.font_scale" = "Text scale"
|
||||
"gift_menu.settings.motion" = "Motion intensity"
|
||||
"gift_menu.unit.pixels" = "{value} px"
|
||||
"gift_menu.unit.speed" = "{value} px/s"
|
||||
"gift_menu.unit.seconds" = "{value} s"
|
||||
"gift_menu.preview.title" = "Gift menu preview"
|
||||
"gift_menu.preview.description" = "Click any row to preview targeting, scroll pause, and the gradient highlight animation."
|
||||
"gift_menu.aria" = "Live room gift menu"
|
||||
"gift_menu.overlay.battery" = "Battery ×{amount}"
|
||||
"gift_menu.overlay.triggered_by" = "Triggered by {viewer}"
|
||||
"gift_menu.overlay.empty" = "Configure the gift menu in the control console"
|
||||
"pwa.blocked" = "The update is blocked. Finish these items first:\n\n{reasons}"
|
||||
"pwa.confirm_update" = "Updating refreshes the console. Save settings, invitations, recovery codes, and newly rotated OBS tokens first. Update now?"
|
||||
"pwa.offline" = "Offline"
|
||||
|
||||
Reference in New Issue
Block a user