feat(admin,api,player): 赛事分组管理、盘口独立页与多语言展示优化
- 管理端按联赛展示单场,新增赛事/单场流程与列表展开状态保持 - 盘口赔率迁至独立页面,保存按钮仅在有修改时高亮 - API 新增联赛列表与子场查询,按 locale 返回队名并修复编译 - 波胆其它选项与促销标签等 i18n 补齐,文案更易懂
This commit is contained in:
@@ -123,23 +123,42 @@ export const adminPagesMs: Record<string, string> = {
|
||||
'agent.ph.select_user': 'Cari nama pengguna pemain',
|
||||
'agent.hint.select_user': 'Pilih akaun pemain sedia ada untuk naik taraf ke ejen peringkat 1',
|
||||
|
||||
'match.create_btn': '+ Perlawanan baharu',
|
||||
'match.filter.keyword_ph': 'Nama perlawanan / kod pasukan',
|
||||
'match.create_btn': '+ Kejohanan baharu',
|
||||
'match.create_fixture_btn': '+ Perlawanan tunggal',
|
||||
'match.btn.markets': 'Pasaran',
|
||||
'match.filter.keyword_ph': 'Nama kejohanan / kod pasukan',
|
||||
'match.col.league': 'Kejohanan',
|
||||
'match.col.fixture_count': 'Perlawanan',
|
||||
'match.col.league_code': 'Kod',
|
||||
'match.col.matchup': 'Perlawanan',
|
||||
'match.col.kickoff': 'Masa mula',
|
||||
'match.dialog.create': 'Perlawanan baharu',
|
||||
'match.dialog.edit': 'Edit perlawanan',
|
||||
'match.dialog.create_league': 'Kejohanan baharu',
|
||||
'match.dialog.create_fixture': 'Perlawanan tunggal baharu',
|
||||
'match.dialog.create': 'Perlawanan tunggal baharu',
|
||||
'match.dialog.edit': 'Edit perlawanan tunggal',
|
||||
'match.dialog.import': 'Import perlawanan',
|
||||
'match.field.league_en': 'Liga (EN)',
|
||||
'match.field.league_zh': 'Liga (ZH)',
|
||||
'match.field.league_ms': 'Liga (MS)',
|
||||
'match.field.league_logo': 'Logo kejohanan',
|
||||
'match.field.lang_zh': 'ZH',
|
||||
'match.field.lang_en': 'EN',
|
||||
'match.field.lang_ms': 'MS',
|
||||
'match.field.kickoff': 'Masa mula',
|
||||
'match.field.home_en': 'Tuan rumah (EN)',
|
||||
'match.field.home_zh': 'Tuan rumah (ZH)',
|
||||
'match.field.home_ms': 'Tuan rumah (MS)',
|
||||
'match.field.away_en': 'Pelawat (EN)',
|
||||
'match.field.away_zh': 'Pelawat (ZH)',
|
||||
'match.field.away_ms': 'Pelawat (MS)',
|
||||
'match.field.featured': 'Pilihan utama',
|
||||
'match.hint.create_draft': 'Disimpan sebagai draf; klik Terbitkan dalam senarai untuk buka pasaran.',
|
||||
'match.hint.create_draft': 'Disimpan sebagai draf; kembangkan kejohanan dan terbitkan setiap perlawanan tunggal.',
|
||||
'match.hint.create_league': 'Cipta kejohanan dahulu, kemudian kembangkan untuk tambah perlawanan tunggal.',
|
||||
'match.hint.edit_published': 'Diterbitkan: edit masa mula, pilihan utama, nama paparan; tertutup/selesai dikunci.',
|
||||
'match.expand_league_hint': 'Kembangkan kejohanan untuk senarai perlawanan; klik Pasaran untuk halaman tetapan odds (sama seperti aplikasi pemain).',
|
||||
'match.expand_markets_hint': 'Klik Pasaran pada perlawanan tunggal untuk halaman pasaran berasingan.',
|
||||
'match.no_fixtures': 'Tiada perlawanan tunggal di bawah kejohanan ini.',
|
||||
'match.ph.league_ms': 'Piala Dunia 2027',
|
||||
|
||||
'bet.filter.keyword_ph': 'No. pertaruhan / nama pengguna',
|
||||
'bet.filter.date_from': 'Tarikh pertaruhan dari',
|
||||
@@ -211,6 +230,64 @@ export const adminPagesMs: Record<string, string> = {
|
||||
'match.ph.away_en': 'South Africa',
|
||||
'match.ph.away_zh': 'Afrika Selatan',
|
||||
|
||||
'matchEditor.manage_btn': 'Maklumat asas',
|
||||
'matchEditor.back': 'Kembali ke senarai',
|
||||
'matchEditor.title': 'Edit maklumat asas',
|
||||
'matchEditor.section_info': 'Maklumat asas',
|
||||
'matchEditor.section_markets': 'Pasaran & odds',
|
||||
'matchEditor.field.league_logo': 'Logo',
|
||||
'matchEditor.field.home_logo': 'Logo',
|
||||
'matchEditor.field.away_logo': 'Logo',
|
||||
'matchEditor.field.pick_flag': 'Pilih bendera',
|
||||
'matchEditor.field.custom_logo_url': 'URL imej tersuai',
|
||||
'matchEditor.ph.logo_url': 'https://...',
|
||||
'matchEditor.field.match_name': 'Nama paparan',
|
||||
'matchEditor.field.stage': 'Peringkat',
|
||||
'matchEditor.field.group': 'Kumpulan',
|
||||
'matchEditor.field.display_order': 'Susunan',
|
||||
'matchEditor.field.promo_label': 'Label promosi',
|
||||
'matchEditor.field.promo_label_optional': 'Label promosi (pilihan)',
|
||||
'matchEditor.field.line_value': 'Garisan',
|
||||
'matchEditor.ph.kickoff': 'Pilih tarikh & masa mula',
|
||||
'matchEditor.group.league': 'Liga',
|
||||
'matchEditor.group.home': 'Tuan rumah',
|
||||
'matchEditor.group.away': 'Pelawat',
|
||||
'matchEditor.group.schedule': 'Jadual & paparan',
|
||||
'matchEditor.save_info': 'Simpan maklumat',
|
||||
'matchEditor.save_market': 'Simpan pasaran',
|
||||
'matchEditor.save_odds': 'Simpan odds',
|
||||
'matchEditor.generate_templates': 'Jana templat lalai',
|
||||
'matchEditor.templates_generated': 'Templat pasaran dijana',
|
||||
'matchEditor.no_markets': 'Tiada pasaran — terbitkan perlawanan atau jana templat.',
|
||||
'matchEditor.market.FT_1X2': 'FT 1X2',
|
||||
'matchEditor.market.FT_HANDICAP': 'FT handicap',
|
||||
'matchEditor.market.FT_OVER_UNDER': 'FT O/U',
|
||||
'matchEditor.market.FT_ODD_EVEN': 'FT ganjil/genap',
|
||||
'matchEditor.market.HT_1X2': 'HT 1X2',
|
||||
'matchEditor.market.HT_HANDICAP': 'HT handicap',
|
||||
'matchEditor.market.HT_OVER_UNDER': 'HT O/U',
|
||||
'matchEditor.market.FT_CORRECT_SCORE': 'FT skor tepat',
|
||||
'matchEditor.market.HT_CORRECT_SCORE': 'HT skor tepat',
|
||||
'matchEditor.market.SH_CORRECT_SCORE': '2H skor tepat',
|
||||
'matchEditor.period.FT': 'Sepenuh masa',
|
||||
'matchEditor.period.HT': 'Separuh masa',
|
||||
'matchEditor.period.SH': 'Separuh masa ke-2',
|
||||
'matchEditor.period.OUTRIGHT': 'Juara',
|
||||
'matchEditor.selection.HOME': 'Tuan rumah',
|
||||
'matchEditor.selection.DRAW': 'Seri',
|
||||
'matchEditor.selection.AWAY': 'Pelawat',
|
||||
'matchEditor.selection.OVER': 'Atas',
|
||||
'matchEditor.selection.UNDER': 'Bawah',
|
||||
'matchEditor.selection.ODD': 'Ganjil',
|
||||
'matchEditor.selection.EVEN': 'Genap',
|
||||
'matchEditor.selection.OTHER_DRAW': 'Seri (skor lain)',
|
||||
'matchEditor.selection.OTHER_HOME': 'Menang rumah (skor lain)',
|
||||
'matchEditor.selection.OTHER_AWAY': 'Menang pelawat (skor lain)',
|
||||
'matchEditor.col.selection_code': 'Pilihan',
|
||||
'matchEditor.col.selection_name': 'Nama paparan',
|
||||
'matchEditor.col.odds': 'Odds',
|
||||
'matchEditor.ph.selection_name': 'Nama dipaparkan kepada pemain',
|
||||
|
||||
'err.username_required': 'Sila isi nama pengguna',
|
||||
'err.password_min': 'Kata laluan sekurang-kurangnya 8 aksara',
|
||||
'err.password_mismatch': 'Kata laluan tidak sepadan',
|
||||
@@ -256,7 +333,8 @@ export const adminPagesMs: Record<string, string> = {
|
||||
'msg.save_failed': 'Gagal menyimpan',
|
||||
'msg.deleted': 'Dipadam',
|
||||
'msg.delete_failed': 'Gagal memadam',
|
||||
'msg.match_created_draft': 'Perlawanan dicipta (draf)',
|
||||
'msg.league_created': 'Kejohanan dicipta',
|
||||
'msg.match_created_draft': 'Perlawanan tunggal dicipta (draf)',
|
||||
'msg.published': 'Diterbitkan dengan pasaran',
|
||||
'msg.closed': 'Pertaruhan ditutup',
|
||||
'msg.invalid_json': 'JSON tidak sah',
|
||||
|
||||
@@ -124,22 +124,41 @@ export const adminPagesZh: Record<string, string> = {
|
||||
'agent.hint.select_user': '从已有玩家账号中选择,将其设为一级代理(不新建登录账号)',
|
||||
|
||||
'match.create_btn': '+ 新增赛事',
|
||||
'match.create_fixture_btn': '+ 新增单场',
|
||||
'match.btn.markets': '盘口',
|
||||
'match.filter.keyword_ph': '赛事名 / 球队代码',
|
||||
'match.col.league': '赛事',
|
||||
'match.col.fixture_count': '单场',
|
||||
'match.col.league_code': '代码',
|
||||
'match.col.matchup': '对阵',
|
||||
'match.col.kickoff': '开赛时间',
|
||||
'match.dialog.create': '新增赛事',
|
||||
'match.dialog.edit': '编辑赛事',
|
||||
'match.dialog.create_league': '新增赛事',
|
||||
'match.dialog.create_fixture': '新增单场',
|
||||
'match.dialog.create': '新增单场',
|
||||
'match.dialog.edit': '编辑单场',
|
||||
'match.dialog.import': '导入赛事',
|
||||
'match.field.league_en': '联赛(英)',
|
||||
'match.field.league_zh': '联赛(中)',
|
||||
'match.field.league_ms': '联赛(马来)',
|
||||
'match.field.league_logo': '赛事 Logo',
|
||||
'match.field.lang_zh': '中',
|
||||
'match.field.lang_en': 'EN',
|
||||
'match.field.lang_ms': 'MS',
|
||||
'match.field.kickoff': '开赛时间',
|
||||
'match.field.home_en': '主队(英)',
|
||||
'match.field.home_zh': '主队(中)',
|
||||
'match.field.home_ms': '主队(马来)',
|
||||
'match.field.away_en': '客队(英)',
|
||||
'match.field.away_zh': '客队(中)',
|
||||
'match.field.away_ms': '客队(马来)',
|
||||
'match.field.featured': '热门',
|
||||
'match.hint.create_draft': '创建后为草稿,请在列表点击「发布」并生成盘口。',
|
||||
'match.hint.create_draft': '创建后为草稿,请展开赛事后在单场行点击「发布」并生成盘口。',
|
||||
'match.hint.create_league': '创建赛事(联赛)后,展开该行可添加多场单场比赛。',
|
||||
'match.hint.edit_published': '已发布:可修改开赛时间、热门及显示名称;封盘/已结算后不可编辑。',
|
||||
'match.expand_league_hint': '展开赛事查看单场列表;点击「盘口」进入单独页面设置盘口与赔率(与玩家端按联赛分组一致)。',
|
||||
'match.expand_markets_hint': '在单场列表点击「盘口」进入单独页面设置盘口与赔率。',
|
||||
'match.no_fixtures': '该赛事下暂无单场。',
|
||||
'match.ph.league_ms': '2027 世界杯',
|
||||
|
||||
'bet.filter.keyword_ph': '流水编号 / 玩家用户名',
|
||||
'bet.filter.date_from': '投注日起',
|
||||
@@ -211,13 +230,71 @@ export const adminPagesZh: Record<string, string> = {
|
||||
'match.ph.away_en': 'South Africa',
|
||||
'match.ph.away_zh': '南非',
|
||||
|
||||
'matchEditor.manage_btn': '基本信息',
|
||||
'matchEditor.back': '返回列表',
|
||||
'matchEditor.title': '编辑基本信息',
|
||||
'matchEditor.section_info': '基本信息',
|
||||
'matchEditor.section_markets': '盘口与赔率',
|
||||
'matchEditor.field.league_logo': 'Logo',
|
||||
'matchEditor.field.home_logo': 'Logo',
|
||||
'matchEditor.field.away_logo': 'Logo',
|
||||
'matchEditor.field.pick_flag': '选择国旗',
|
||||
'matchEditor.field.custom_logo_url': '自定义图片 URL',
|
||||
'matchEditor.ph.logo_url': 'https://...',
|
||||
'matchEditor.field.match_name': '赛事显示名',
|
||||
'matchEditor.field.stage': '阶段',
|
||||
'matchEditor.field.group': '小组',
|
||||
'matchEditor.field.display_order': '排序',
|
||||
'matchEditor.field.promo_label': '促销标签',
|
||||
'matchEditor.field.promo_label_optional': '促销标签(可选)',
|
||||
'matchEditor.field.line_value': '盘口线',
|
||||
'matchEditor.ph.kickoff': '选择开赛日期与时间',
|
||||
'matchEditor.group.league': '联赛信息',
|
||||
'matchEditor.group.home': '主队',
|
||||
'matchEditor.group.away': '客队',
|
||||
'matchEditor.group.schedule': '赛程与展示',
|
||||
'matchEditor.save_info': '保存基本信息',
|
||||
'matchEditor.save_market': '保存盘口设置',
|
||||
'matchEditor.save_odds': '保存赔率',
|
||||
'matchEditor.generate_templates': '生成默认盘口',
|
||||
'matchEditor.templates_generated': '盘口模板已生成',
|
||||
'matchEditor.no_markets': '暂无盘口,请先发布赛事或点击「生成默认盘口」。',
|
||||
'matchEditor.market.FT_1X2': '全场 1X2',
|
||||
'matchEditor.market.FT_HANDICAP': '全场让球',
|
||||
'matchEditor.market.FT_OVER_UNDER': '全场大小',
|
||||
'matchEditor.market.FT_ODD_EVEN': '全场单双',
|
||||
'matchEditor.market.HT_1X2': '半场 1X2',
|
||||
'matchEditor.market.HT_HANDICAP': '半场让球',
|
||||
'matchEditor.market.HT_OVER_UNDER': '半场大小',
|
||||
'matchEditor.market.FT_CORRECT_SCORE': '全场波胆',
|
||||
'matchEditor.market.HT_CORRECT_SCORE': '半场波胆',
|
||||
'matchEditor.market.SH_CORRECT_SCORE': '下半场波胆',
|
||||
'matchEditor.period.FT': '全场',
|
||||
'matchEditor.period.HT': '半场',
|
||||
'matchEditor.period.SH': '下半场',
|
||||
'matchEditor.period.OUTRIGHT': '冠军',
|
||||
'matchEditor.selection.HOME': '主',
|
||||
'matchEditor.selection.DRAW': '和',
|
||||
'matchEditor.selection.AWAY': '客',
|
||||
'matchEditor.selection.OVER': '大',
|
||||
'matchEditor.selection.UNDER': '小',
|
||||
'matchEditor.selection.ODD': '单',
|
||||
'matchEditor.selection.EVEN': '双',
|
||||
'matchEditor.selection.OTHER_DRAW': '和局其它比分',
|
||||
'matchEditor.selection.OTHER_HOME': '主胜其它比分',
|
||||
'matchEditor.selection.OTHER_AWAY': '客胜其它比分',
|
||||
'matchEditor.col.selection_code': '选项',
|
||||
'matchEditor.col.selection_name': '显示名',
|
||||
'matchEditor.col.odds': '赔率',
|
||||
'matchEditor.ph.selection_name': '玩家端显示名称',
|
||||
|
||||
'err.username_required': '请填写用户名',
|
||||
'err.password_min': '密码至少 8 位',
|
||||
'err.password_mismatch': '两次密码不一致',
|
||||
'err.credit_negative': '授信额度不能为负',
|
||||
'err.kickoff_required': '请填写开赛时间',
|
||||
'err.teams_required': '请填写主客队名称(中文或英文至少一项)',
|
||||
'err.league_required': '请填写联赛名称',
|
||||
'err.teams_required': '请填写主客队名称(中文、英文或马来文至少一项)',
|
||||
'err.league_required': '请填写联赛名称(中文、英文或马来文至少一项)',
|
||||
'err.user_required': '请选择用户',
|
||||
'err.agent_no_parent': '一级代理不可设置上级玩家',
|
||||
'err.agent_no_initial_deposit': '设为代理时请勿填写玩家初始余额',
|
||||
@@ -256,7 +333,8 @@ export const adminPagesZh: Record<string, string> = {
|
||||
'msg.save_failed': '保存失败',
|
||||
'msg.deleted': '已删除',
|
||||
'msg.delete_failed': '删除失败',
|
||||
'msg.match_created_draft': '赛事已创建(草稿)',
|
||||
'msg.league_created': '赛事已创建',
|
||||
'msg.match_created_draft': '单场已创建(草稿)',
|
||||
'msg.published': '已发布并生成盘口',
|
||||
'msg.closed': '已封盘',
|
||||
'msg.invalid_json': 'JSON 格式无效',
|
||||
@@ -499,23 +577,42 @@ export const adminPagesEn: Record<string, string> = {
|
||||
'agent.ph.select_user': 'Search player username',
|
||||
'agent.hint.select_user': 'Pick an existing player account to promote to tier-1 agent (no new login)',
|
||||
|
||||
'match.create_btn': '+ New match',
|
||||
'match.filter.keyword_ph': 'Match name / team code',
|
||||
'match.create_btn': '+ New tournament',
|
||||
'match.create_fixture_btn': '+ Add fixture',
|
||||
'match.btn.markets': 'Markets',
|
||||
'match.filter.keyword_ph': 'Tournament / team code',
|
||||
'match.col.league': 'Tournament',
|
||||
'match.col.fixture_count': 'Fixtures',
|
||||
'match.col.league_code': 'Code',
|
||||
'match.col.matchup': 'Matchup',
|
||||
'match.col.kickoff': 'Kickoff',
|
||||
'match.dialog.create': 'New match',
|
||||
'match.dialog.edit': 'Edit match',
|
||||
'match.dialog.create_league': 'New tournament',
|
||||
'match.dialog.create_fixture': 'New fixture',
|
||||
'match.dialog.create': 'New fixture',
|
||||
'match.dialog.edit': 'Edit fixture',
|
||||
'match.dialog.import': 'Import matches',
|
||||
'match.field.league_en': 'League (EN)',
|
||||
'match.field.league_zh': 'League (ZH)',
|
||||
'match.field.league_ms': 'League (MS)',
|
||||
'match.field.league_logo': 'Tournament logo',
|
||||
'match.field.lang_zh': 'ZH',
|
||||
'match.field.lang_en': 'EN',
|
||||
'match.field.lang_ms': 'MS',
|
||||
'match.field.kickoff': 'Kickoff time',
|
||||
'match.field.home_en': 'Home (EN)',
|
||||
'match.field.home_zh': 'Home (ZH)',
|
||||
'match.field.home_ms': 'Home (MS)',
|
||||
'match.field.away_en': 'Away (EN)',
|
||||
'match.field.away_zh': 'Away (ZH)',
|
||||
'match.field.away_ms': 'Away (MS)',
|
||||
'match.field.featured': 'Featured',
|
||||
'match.hint.create_draft': 'Saved as draft; click Publish in the list to open markets.',
|
||||
'match.hint.create_draft': 'Saved as draft; expand the tournament and publish each fixture to open markets.',
|
||||
'match.hint.create_league': 'Create a tournament first, then expand it to add fixtures.',
|
||||
'match.hint.edit_published': 'Published: edit kickoff, featured, display names; closed/settled are locked.',
|
||||
'match.expand_league_hint': 'Expand a tournament to see fixtures; use Markets for a dedicated odds page (same grouping as player app).',
|
||||
'match.expand_markets_hint': 'Click Markets on a fixture to open the dedicated markets page.',
|
||||
'match.no_fixtures': 'No fixtures under this tournament yet.',
|
||||
'match.ph.league_ms': 'World Cup 2027',
|
||||
|
||||
'bet.filter.keyword_ph': 'Bet no. / username',
|
||||
'bet.filter.date_from': 'Placed from',
|
||||
@@ -587,6 +684,64 @@ export const adminPagesEn: Record<string, string> = {
|
||||
'match.ph.away_en': 'South Africa',
|
||||
'match.ph.away_zh': 'South Africa',
|
||||
|
||||
'matchEditor.manage_btn': 'Basic info',
|
||||
'matchEditor.back': 'Back to list',
|
||||
'matchEditor.title': 'Edit basic info',
|
||||
'matchEditor.section_info': 'Basic info',
|
||||
'matchEditor.section_markets': 'Markets & odds',
|
||||
'matchEditor.field.league_logo': 'Logo',
|
||||
'matchEditor.field.home_logo': 'Logo',
|
||||
'matchEditor.field.away_logo': 'Logo',
|
||||
'matchEditor.field.pick_flag': 'Pick flag',
|
||||
'matchEditor.field.custom_logo_url': 'Custom image URL',
|
||||
'matchEditor.ph.logo_url': 'https://...',
|
||||
'matchEditor.field.match_name': 'Display name',
|
||||
'matchEditor.field.stage': 'Stage',
|
||||
'matchEditor.field.group': 'Group',
|
||||
'matchEditor.field.display_order': 'Sort order',
|
||||
'matchEditor.field.promo_label': 'Promo label',
|
||||
'matchEditor.field.promo_label_optional': 'Promo label (optional)',
|
||||
'matchEditor.field.line_value': 'Line',
|
||||
'matchEditor.ph.kickoff': 'Select kickoff date & time',
|
||||
'matchEditor.group.league': 'League',
|
||||
'matchEditor.group.home': 'Home team',
|
||||
'matchEditor.group.away': 'Away team',
|
||||
'matchEditor.group.schedule': 'Schedule & display',
|
||||
'matchEditor.save_info': 'Save info',
|
||||
'matchEditor.save_market': 'Save market',
|
||||
'matchEditor.save_odds': 'Save odds',
|
||||
'matchEditor.generate_templates': 'Generate templates',
|
||||
'matchEditor.templates_generated': 'Market templates created',
|
||||
'matchEditor.no_markets': 'No markets yet — publish the match or generate templates.',
|
||||
'matchEditor.market.FT_1X2': 'FT 1X2',
|
||||
'matchEditor.market.FT_HANDICAP': 'FT handicap',
|
||||
'matchEditor.market.FT_OVER_UNDER': 'FT O/U',
|
||||
'matchEditor.market.FT_ODD_EVEN': 'FT odd/even',
|
||||
'matchEditor.market.HT_1X2': 'HT 1X2',
|
||||
'matchEditor.market.HT_HANDICAP': 'HT handicap',
|
||||
'matchEditor.market.HT_OVER_UNDER': 'HT O/U',
|
||||
'matchEditor.market.FT_CORRECT_SCORE': 'FT correct score',
|
||||
'matchEditor.market.HT_CORRECT_SCORE': 'HT correct score',
|
||||
'matchEditor.market.SH_CORRECT_SCORE': '2H correct score',
|
||||
'matchEditor.period.FT': 'Full time',
|
||||
'matchEditor.period.HT': 'Half time',
|
||||
'matchEditor.period.SH': 'Second half',
|
||||
'matchEditor.period.OUTRIGHT': 'Outright',
|
||||
'matchEditor.selection.HOME': 'Home',
|
||||
'matchEditor.selection.DRAW': 'Draw',
|
||||
'matchEditor.selection.AWAY': 'Away',
|
||||
'matchEditor.selection.OVER': 'Over',
|
||||
'matchEditor.selection.UNDER': 'Under',
|
||||
'matchEditor.selection.ODD': 'Odd',
|
||||
'matchEditor.selection.EVEN': 'Even',
|
||||
'matchEditor.selection.OTHER_DRAW': 'Draw (other score)',
|
||||
'matchEditor.selection.OTHER_HOME': 'Home win (other score)',
|
||||
'matchEditor.selection.OTHER_AWAY': 'Away win (other score)',
|
||||
'matchEditor.col.selection_code': 'Option',
|
||||
'matchEditor.col.selection_name': 'Display name',
|
||||
'matchEditor.col.odds': 'Odds',
|
||||
'matchEditor.ph.selection_name': 'Name shown to players',
|
||||
|
||||
'err.username_required': 'Username is required',
|
||||
'err.password_min': 'Password must be at least 8 characters',
|
||||
'err.password_mismatch': 'Passwords do not match',
|
||||
@@ -632,7 +787,8 @@ export const adminPagesEn: Record<string, string> = {
|
||||
'msg.save_failed': 'Save failed',
|
||||
'msg.deleted': 'Deleted',
|
||||
'msg.delete_failed': 'Delete failed',
|
||||
'msg.match_created_draft': 'Match created (draft)',
|
||||
'msg.league_created': 'Tournament created',
|
||||
'msg.match_created_draft': 'Fixture created (draft)',
|
||||
'msg.published': 'Published with markets',
|
||||
'msg.closed': 'Betting closed',
|
||||
'msg.invalid_json': 'Invalid JSON',
|
||||
|
||||
Reference in New Issue
Block a user