@courthive/i18n 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -295,133 +295,134 @@
295
295
  "confirmRemoveUser": "移除用户",
296
296
  "removeUserConfirm": "确定要移除",
297
297
  "searchProviders": "搜索供应商...",
298
- "lastAccess": "__TODO__",
299
- "activeRooms": "__TODO__",
300
- "activeRoomsTitle": "__TODO__",
301
- "noActiveRooms": "__TODO__",
302
- "tournamentColumn": "__TODO__",
303
- "userCountColumn": "__TODO__",
304
- "presenceLoadError": "__TODO__",
305
- "joinedAt": "__TODO__",
306
- "anonymous": "__TODO__",
307
- "refreshNow": "__TODO__",
308
- "lastRefreshed": "__TODO__",
309
- "tmxUrlMissing": "__TODO__",
310
- "createUser": "__TODO__",
311
- "archiveProvider": "__TODO__",
312
- "deleteProvider": "__TODO__",
313
- "resetPassword": "__TODO__",
314
- "resetPasswordTitle": "__TODO__",
315
- "newPassword": "__TODO__",
316
- "generatePassword": "__TODO__",
317
- "passwordCopied": "__TODO__",
318
- "passwordReset": "__TODO__",
319
- "passwordResetError": "__TODO__",
320
- "provisioners": "__TODO__",
321
- "provisionerName": "__TODO__",
322
- "provisionerNamePlaceholder": "__TODO__",
323
- "noProvisioners": "__TODO__",
324
- "selectProvisioner": "__TODO__",
325
- "searchProvisioners": "__TODO__",
326
- "createProvisioner": "__TODO__",
327
- "editProvisioner": "__TODO__",
328
- "provisionerCreated": "__TODO__",
329
- "createFailed": "__TODO__",
330
- "updateFailed": "__TODO__",
331
- "updated": "__TODO__",
332
- "create": "__TODO__",
333
- "active": "__TODO__",
334
- "inactive": "__TODO__",
335
- "activate": "__TODO__",
336
- "deactivate": "__TODO__",
337
- "activateProvisioner": "__TODO__",
338
- "deactivateProvisioner": "__TODO__",
339
- "activateConfirm": "__TODO__",
340
- "deactivateConfirm": "__TODO__",
341
- "status": "__TODO__",
342
- "createdAt": "__TODO__",
343
- "created": "__TODO__",
344
- "lastUsed": "__TODO__",
345
- "apiKeys": "__TODO__",
346
- "label": "__TODO__",
347
- "noKeys": "__TODO__",
348
- "generateKey": "__TODO__",
349
- "generate": "__TODO__",
350
- "generateFailed": "__TODO__",
351
- "keyLabel": "__TODO__",
352
- "keyLabelPlaceholder": "__TODO__",
353
- "keyGenerated": "__TODO__",
354
- "keyRevealWarning": "__TODO__",
355
- "copy": "__TODO__",
356
- "copiedToClipboard": "__TODO__",
357
- "revoke": "__TODO__",
358
- "revoked": "__TODO__",
359
- "revokeKey": "__TODO__",
360
- "revokeKeyConfirm": "__TODO__",
361
- "keyRevoked": "__TODO__",
362
- "associatedProviders": "__TODO__",
363
- "noAssociatedProviders": "__TODO__",
364
- "associateProvider": "__TODO__",
365
- "associate": "__TODO__",
366
- "associated": "__TODO__",
367
- "disassociate": "__TODO__",
368
- "disassociateProvider": "__TODO__",
369
- "disassociateConfirm": "__TODO__",
370
- "disassociated": "__TODO__",
371
- "selectProviderFirst": "__TODO__",
372
- "relationship": "__TODO__",
373
- "owner": "__TODO__",
374
- "subsidiary": "__TODO__",
375
- "nameRequired": "__TODO__",
376
- "deleteProvisioner": "__TODO__",
377
- "deletePermanently": "__TODO__",
378
- "deleteProvisionerWarning": "__TODO__",
379
- "typeNameToConfirm": "__TODO__",
380
- "provisionerDeleted": "__TODO__",
381
- "deleteFailed": "__TODO__",
382
- "representatives": "__TODO__",
383
- "noRepresentatives": "__TODO__",
384
- "user": "__TODO__",
385
- "displayName": "__TODO__",
386
- "granted": "__TODO__",
387
- "assignUser": "__TODO__",
388
- "assign": "__TODO__",
389
- "remove": "__TODO__",
390
- "representativeAssigned": "__TODO__",
391
- "representativeRemoved": "__TODO__",
392
- "removeRepresentative": "__TODO__",
393
- "removeRepresentativeConfirm": "__TODO__",
298
+ "lastAccess": "上次访问",
299
+ "activeRooms": "活跃房间",
300
+ "activeRoomsTitle": "实时赛事会话",
301
+ "noActiveRooms": "没有活跃的赛事会话",
302
+ "tournamentColumn": "赛事",
303
+ "userCountColumn": "活跃用户",
304
+ "presenceLoadError": "加载活跃房间失败",
305
+ "joinedAt": "加入时间",
306
+ "anonymous": "匿名",
307
+ "refreshNow": "立即刷新",
308
+ "lastRefreshed": "{{ago}} 秒前刷新",
309
+ "tmxUrlMissing": "无法打开 TMX — 服务器未提供 TMX URL。请检查服务器 .env 中的 TMX_URL。",
310
+ "createUser": "创建用户",
311
+ "archiveProvider": "归档",
312
+ "deleteProvider": "删除",
313
+ "resetPassword": "重置密码",
314
+ "resetPasswordTitle": "重置密码",
315
+ "newPassword": "新密码",
316
+ "generatePassword": "生成",
317
+ "passwordCopied": "密码已复制到剪贴板",
318
+ "passwordReset": "密码重置成功",
319
+ "passwordResetError": "重置密码失败",
320
+ "provisioners": "供应方",
321
+ "provisionerName": "供应方名称",
322
+ "provisionerNamePlaceholder": "例如 TMX Sandbox",
323
+ "noProvisioners": "未找到供应方",
324
+ "selectProvisioner": "选择一个供应方以查看详情",
325
+ "searchProvisioners": "搜索供应方…",
326
+ "createProvisioner": "创建供应方",
327
+ "editProvisioner": "编辑供应方",
328
+ "provisionerCreated": "供应方已创建",
329
+ "createFailed": "创建失败",
330
+ "updateFailed": "更新失败",
331
+ "updated": "已更新",
332
+ "create": "创建",
333
+ "active": "活跃",
334
+ "inactive": "非活跃",
335
+ "activate": "激活",
336
+ "deactivate": "停用",
337
+ "activateProvisioner": "激活供应方",
338
+ "deactivateProvisioner": "停用供应方",
339
+ "activateConfirm": "激活供应方“{{name}}”?",
340
+ "deactivateConfirm": "停用供应方“{{name}}”?其 API 密钥将停止工作。",
341
+ "status": "状态",
342
+ "createdAt": "创建时间",
343
+ "created": "已创建",
344
+ "lastUsed": "上次使用",
345
+ "apiKeys": "API 密钥",
346
+ "label": "标签",
347
+ "noKeys": "没有 API 密钥",
348
+ "generateKey": "生成密钥",
349
+ "generate": "生成",
350
+ "generateFailed": "生成 API 密钥失败",
351
+ "keyLabel": "密钥标签",
352
+ "keyLabelPlaceholder": "例如 生产、预发布",
353
+ "keyGenerated": "API 密钥已生成",
354
+ "keyRevealWarning": "这是唯一一次显示完整密钥的机会。请在关闭此对话框前将其保存到安全的地方。",
355
+ "copy": "复制",
356
+ "copiedToClipboard": "已复制到剪贴板",
357
+ "revoke": "撤销",
358
+ "revoked": "已撤销",
359
+ "revokeKey": "撤销 API 密钥",
360
+ "revokeKeyConfirm": "撤销密钥“{{label}}”?此操作无法撤销。",
361
+ "keyRevoked": "API 密钥已撤销",
362
+ "associatedProviders": "已关联的服务商",
363
+ "noAssociatedProviders": "没有关联的服务商",
364
+ "associateProvider": "关联服务商",
365
+ "associate": "关联",
366
+ "associated": "服务商已关联",
367
+ "disassociate": "移除",
368
+ "disassociateProvider": "移除服务商关联",
369
+ "disassociateConfirm": "移除与“{{name}}”的关联?",
370
+ "disassociated": "服务商关联已移除",
371
+ "selectProviderFirst": "请先选择一个服务商",
372
+ "relationship": "关系",
373
+ "owner": "所有者",
374
+ "subsidiary": "子公司",
375
+ "nameRequired": "名称为必填项",
376
+ "deleteProvisioner": "永久删除",
377
+ "deletePermanently": "永久删除",
378
+ "deleteProvisionerWarning": "<strong>此操作无法撤销。</strong>“{{name}}”的所有 API 密钥、服务商关联和赛事所有权标记都将被移除。服务商及其赛事<em>不会</em>被删除。",
379
+ "typeNameToConfirm": "输入 {{name}} 以确认:",
380
+ "provisionerDeleted": "供应方已删除(清理了 {{apiKeys}} 个密钥、{{providerAssociations}} 个关联、{{tournamentStamps}} 个标记)",
381
+ "deleteFailed": "删除失败",
382
+ "representatives": "代表",
383
+ "noRepresentatives": "没有分配代表",
384
+ "user": "用户",
385
+ "displayName": "名称",
386
+ "granted": "已授予",
387
+ "assignUser": "分配用户",
388
+ "assign": "分配",
389
+ "remove": "移除",
390
+ "representativeAssigned": "用户已分配为代表",
391
+ "representativeRemoved": "代表已移除",
392
+ "removeRepresentative": "移除代表",
393
+ "removeRepresentativeConfirm": "移除 {{email}} 作为代表?他们将无法再以此供应方身份行事。",
394
394
  "contactEmailCoverage": {
395
- "label": "__TODO__",
396
- "loading": "__TODO__",
397
- "verified": "__TODO__",
398
- "unverified": "__TODO__",
399
- "missing": "__TODO__",
400
- "equalsLogin": "__TODO__",
401
- "total": "__TODO__"
395
+ "label": "恢复邮箱覆盖率",
396
+ "loading": "正在加载…",
397
+ "verified": "已验证",
398
+ "unverified": "待处理",
399
+ "missing": "缺失",
400
+ "equalsLogin": "= 登录 ID",
401
+ "total": "共 {{count}} 名用户"
402
402
  },
403
403
  "audit": {
404
- "tabLabel": "__TODO__",
405
- "title": "__TODO__",
406
- "tournamentsLabel": "__TODO__",
407
- "tournamentFilterPlaceholder": "__TODO__",
408
- "deletedDrawsLabel": "__TODO__",
409
- "selectTournament": "__TODO__",
410
- "noTournaments": "__TODO__",
411
- "tournamentName": "__TODO__",
412
- "tournamentId": "__TODO__",
413
- "startDate": "__TODO__",
414
- "drawName": "__TODO__",
415
- "eventId": "__TODO__",
416
- "deletedAt": "__TODO__",
417
- "deletedBy": "__TODO__",
418
- "restore": "__TODO__",
419
- "restoreTitle": "__TODO__",
420
- "restorePrompt": "__TODO__",
421
- "restoreSuccess": "__TODO__",
422
- "restoreFailure": "__TODO__",
423
- "calendarLoadError": "__TODO__",
424
- "deletedDrawsLoadError": "__TODO__"
404
+ "tabLabel": "审计",
405
+ "title": "已删除签表审计跟踪",
406
+ "tournamentsLabel": "赛事",
407
+ "tournamentFilterPlaceholder": "按赛事名称或 ID 筛选",
408
+ "deletedDrawsLabel": "已删除的签表",
409
+ "selectTournament": "选择一项赛事以查看其已删除的签表",
410
+ "noTournaments": "此服务商没有赛事",
411
+ "tournamentName": "赛事",
412
+ "tournamentId": "赛事 ID",
413
+ "startDate": "开始日期",
414
+ "drawName": "签表",
415
+ "eventId": "赛事",
416
+ "deletedAt": "删除时间",
417
+ "deletedBy": "删除者",
418
+ "restore": "恢复",
419
+ "restoreTitle": "恢复已删除的签表",
420
+ "restorePrompt": "恢复将重新插入该签表及其所有比赛、比分和分配。",
421
+ "restoreSuccess": "签表已恢复",
422
+ "restoreFailure": "恢复失败",
423
+ "calendarLoadError": "加载日历失败",
424
+ "deletedDrawsLoadError": "加载已删除签表失败",
425
+ "providerLockedToActive": "锁定到您会话中的活跃服务商。停止模拟(或切换服务商)以检查另一租户的已删除签表。"
425
426
  }
426
427
  },
427
428
  "round_names": {
@@ -469,7 +470,9 @@
469
470
  "normal": "正常",
470
471
  "winloss_abbreviation": "胜/负",
471
472
  "cancelled": "已取消",
472
- "abandoned": "已中止"
473
+ "abandoned": "已中止",
474
+ "scoreThisMatch": "为此比赛计分",
475
+ "openScorecard": "打开记分卡"
473
476
  },
474
477
  "draws": {
475
478
  "seedlimit": "种子上限",
@@ -747,7 +750,7 @@
747
750
  "blocked": "弹出窗口已被浏览器屏蔽",
748
751
  "enablepopups": "请启用弹出窗口以打印PDF",
749
752
  "nopersist": "不保证数据持久性",
750
- "filters": "__TODO__"
753
+ "filters": "筛选"
751
754
  },
752
755
  "events": {
753
756
  "name": "名称",
@@ -916,31 +919,33 @@
916
919
  "unscheduled": "未安排",
917
920
  "noScheduledMatchUps": "没有已安排的比赛",
918
921
  "noTimeSet": "未设定时间",
919
- "showAll": "__TODO__",
920
- "hideEmpty": "__TODO__",
921
- "empty": "__TODO__",
922
- "court": "__TODO__",
923
- "event": "__TODO__",
924
- "round": "__TODO__",
925
- "matchUp": "__TODO__",
926
- "noScheduledMatchUpsMatch": "__TODO__",
927
- "searchScheduledMatchUps": "__TODO__",
928
- "scheduledTitle": "__TODO__",
929
- "scheduledCount_one": "__TODO__",
930
- "scheduledCount_other": "__TODO__",
931
- "filterMatchUps": "__TODO__",
932
- "filterClearAll": "__TODO__",
933
- "filterAllEventTypes": "__TODO__",
934
- "filterAllEvents": "__TODO__",
935
- "filterAllFlights": "__TODO__",
936
- "filterAllGenders": "__TODO__",
937
- "filterAllRounds": "__TODO__",
922
+ "showAll": "显示全部",
923
+ "hideEmpty": "隐藏空项",
924
+ "empty": "",
925
+ "court": "球场",
926
+ "event": "赛事",
927
+ "round": "轮次",
928
+ "matchUp": "比赛",
929
+ "noScheduledMatchUpsMatch": "没有已排期的比赛与搜索匹配",
930
+ "searchScheduledMatchUps": "搜索已排期的比赛…",
931
+ "scheduledTitle": "已排期的比赛",
932
+ "scheduledCount_one": "{{count}} 场已排期",
933
+ "scheduledCount_other": "{{count}} 场已排期",
934
+ "filterMatchUps": "筛选比赛",
935
+ "filterClearAll": "全部清除",
936
+ "filterAllEventTypes": "所有赛事类型",
937
+ "filterAllEvents": "所有赛事",
938
+ "filterAllFlights": "所有分组",
939
+ "filterAllGenders": "所有性别",
940
+ "filterAllRounds": "所有轮次",
938
941
  "groupBy": {
939
- "event": "__TODO__",
940
- "draw": "__TODO__",
941
- "round": "__TODO__",
942
- "structure": "__TODO__"
943
- }
942
+ "event": "按赛事",
943
+ "draw": "按签表",
944
+ "round": "按轮次",
945
+ "structure": "按结构",
946
+ "time": "按时间"
947
+ },
948
+ "showCompleted": "显示已完成"
944
949
  },
945
950
  "penalties": {
946
951
  "fail2signout": "未签退",
@@ -973,12 +978,13 @@
973
978
  "success": "成功",
974
979
  "required": "必填",
975
980
  "send": "发送",
976
- "back": "__TODO__",
981
+ "back": "返回",
977
982
  "details": "详情",
978
983
  "validationDetails": "验证详情",
979
- "dismiss": "__TODO__",
980
- "iSavedIt": "__TODO__",
981
- "remove": "__TODO__"
984
+ "dismiss": "关闭",
985
+ "iSavedIt": "我已保存",
986
+ "remove": "移除",
987
+ "continueAndUnschedule": "继续并取消排期"
982
988
  },
983
989
  "modals": {
984
990
  "deleteEvents": {
@@ -1009,8 +1015,8 @@
1009
1015
  "passwordLabel": "密码",
1010
1016
  "passwordPlaceholder": "最少8个字符",
1011
1017
  "loginButton": "登录",
1012
- "magicLinkButton": "__TODO__",
1013
- "forgotPassword": "__TODO__"
1018
+ "magicLinkButton": "向我发送登录链接邮件",
1019
+ "forgotPassword": "忘记密码?"
1014
1020
  },
1015
1021
  "settings": {
1016
1022
  "title": "设置",
@@ -1037,7 +1043,7 @@
1037
1043
  "themeSystem": "跟随系统",
1038
1044
  "font": "字体",
1039
1045
  "dangerZone": "危险区域",
1040
- "schedule2": "__TODO__"
1046
+ "schedule2": "日程页面 2"
1041
1047
  },
1042
1048
  "editTournamentName": {
1043
1049
  "title": "编辑锦标赛名称",
@@ -1048,7 +1054,8 @@
1048
1054
  "editDates": {
1049
1055
  "title": "编辑日期",
1050
1056
  "startDateLabel": "开始日期",
1051
- "endDateLabel": "结束日期"
1057
+ "endDateLabel": "结束日期",
1058
+ "timeZoneDetectedHint": "从您的浏览器检测到({{zone}})。确认、更改或清除。"
1052
1059
  },
1053
1060
  "invalidParticipants": {
1054
1061
  "title": "无效参赛者"
@@ -1200,8 +1207,8 @@
1200
1207
  "services": "服务",
1201
1208
  "tournamentProfiles": "锦标赛配置文件(获取)",
1202
1209
  "invite": "邀请",
1203
- "providerRole": "__TODO__",
1204
- "existingUserAdded": "__TODO__"
1210
+ "providerRole": "服务商角色",
1211
+ "existingUserAdded": "{{email}} 已有账户 — 已作为 {{role}} 添加到 {{provider}}。"
1205
1212
  },
1206
1213
  "fetchTournament": {
1207
1214
  "title": "获取锦标赛详情",
@@ -1239,8 +1246,7 @@
1239
1246
  "groupSize": "小组大小",
1240
1247
  "positionsToBePlayedOff": "需要进行附加赛的位置:",
1241
1248
  "selectPositions": "选择小组最终位置。选择必须连续",
1242
- "structureAdded": "已添加结构",
1243
- "selectEligible": "选择符合条件的参赛者"
1249
+ "structureAdded": "已添加结构"
1244
1250
  },
1245
1251
  "addToEvent": {
1246
1252
  "title": "添加到赛事",
@@ -1268,7 +1274,7 @@
1268
1274
  "title": "创建队伍",
1269
1275
  "selectAttribute": "选择属性",
1270
1276
  "create": "创建",
1271
- "teamAffiliation": "__TODO__"
1277
+ "teamAffiliation": "团队归属"
1272
1278
  },
1273
1279
  "getLatLong": {
1274
1280
  "title": "位置",
@@ -1374,244 +1380,244 @@
1374
1380
  },
1375
1381
  "selectTeam": "选择队伍",
1376
1382
  "importParticipants": {
1377
- "title": "__TODO__",
1378
- "summary": "__TODO__",
1379
- "mergeNotice": "__TODO__",
1380
- "import": "__TODO__",
1381
- "reAutoDetect": "__TODO__",
1383
+ "title": "导入参赛者",
1384
+ "summary": "{{count}} 行可供导入",
1385
+ "mergeNotice": "{{count}} 个重复行将按邮箱合并(每个字段以最后一个非空值为准)",
1386
+ "import": "导入",
1387
+ "reAutoDetect": "重新自动检测",
1382
1388
  "column": {
1383
- "header": "__TODO__",
1384
- "sample": "__TODO__",
1385
- "target": "__TODO__"
1389
+ "header": "源列",
1390
+ "sample": "示例值",
1391
+ "target": "目标字段"
1386
1392
  },
1387
1393
  "target": {
1388
- "firstName": "__TODO__",
1389
- "lastName": "__TODO__",
1390
- "fullName": "__TODO__",
1391
- "otherName": "__TODO__",
1392
- "sex": "__TODO__",
1393
- "birthDate": "__TODO__",
1394
- "nationalityCode": "__TODO__",
1395
- "wheelchair": "__TODO__",
1396
- "city": "__TODO__",
1397
- "state": "__TODO__",
1398
- "countryCode": "__TODO__",
1399
- "postalCode": "__TODO__",
1400
- "addressLine1": "__TODO__",
1401
- "email": "__TODO__",
1402
- "phone": "__TODO__",
1403
- "mobilePhone": "__TODO__",
1404
- "tennisId": "__TODO__",
1405
- "ustaId": "__TODO__",
1406
- "itfId": "__TODO__",
1407
- "utrProfile": "__TODO__",
1408
- "participantId": "__TODO__",
1409
- "rating": "__TODO__",
1410
- "eventEntry": "__TODO__",
1411
- "participantName": "__TODO__",
1412
- "representing": "__TODO__",
1413
- "notes": "__TODO__",
1414
- "split": "__TODO__",
1415
- "ignore": "__TODO__",
1416
- "participantRole": "__TODO__",
1417
- "teamKey": "__TODO__",
1418
- "jerseyNumber": "__TODO__"
1394
+ "firstName": "",
1395
+ "lastName": "",
1396
+ "fullName": "全名",
1397
+ "otherName": "别名/昵称",
1398
+ "sex": "性别",
1399
+ "birthDate": "出生日期",
1400
+ "nationalityCode": "国籍",
1401
+ "wheelchair": "轮椅",
1402
+ "city": "城市",
1403
+ "state": "州/省",
1404
+ "countryCode": "国家代码",
1405
+ "postalCode": "邮政编码",
1406
+ "addressLine1": "地址行",
1407
+ "email": "邮箱",
1408
+ "phone": "电话",
1409
+ "mobilePhone": "手机",
1410
+ "tennisId": "Tennis ID",
1411
+ "ustaId": "USTA ID",
1412
+ "itfId": "ITF ID",
1413
+ "utrProfile": "UTR 档案",
1414
+ "participantId": "参赛者 ID",
1415
+ "rating": "评级",
1416
+ "eventEntry": "赛事报名",
1417
+ "participantName": "参赛者姓名",
1418
+ "representing": "代表",
1419
+ "notes": "备注",
1420
+ "split": "拆分…",
1421
+ "ignore": "忽略",
1422
+ "participantRole": "角色(选手、教练、理疗师……)",
1423
+ "teamKey": "团队(归入团队参赛者)",
1424
+ "jerseyNumber": "球衣号码"
1419
1425
  },
1420
- "ratingAuto": "__TODO__",
1421
- "eventPickerPlaceholder": "__TODO__",
1422
- "splitDelimiter": "__TODO__",
1423
- "splitPieceEmpty": "__TODO__",
1424
- "unresolvedHeading": "__TODO__",
1425
- "unresolvedPickerPlaceholder": "__TODO__",
1426
- "row": "__TODO__",
1427
- "previewHeading": "__TODO__",
1428
- "previewEmpty": "__TODO__",
1429
- "entryDefaultsHeading": "__TODO__",
1430
- "entryStatusLabel": "__TODO__",
1431
- "entryStageLabel": "__TODO__",
1432
- "dedupeHeading": "__TODO__",
1433
- "mergeDuplicatesLabel": "__TODO__",
1434
- "matchByLabel": "__TODO__",
1435
- "updateExistingLabel": "__TODO__"
1426
+ "ratingAuto": "自动检测",
1427
+ "eventPickerPlaceholder": "(选择赛事…)",
1428
+ "splitDelimiter": "拆分依据",
1429
+ "splitPieceEmpty": "(空)",
1430
+ "unresolvedHeading": "未解析的评级值({{count}})",
1431
+ "unresolvedPickerPlaceholder": "选择标准…",
1432
+ "row": "",
1433
+ "previewHeading": "预览(前 3 行)",
1434
+ "previewEmpty": "无可预览的参赛者 — 请确保已映射名/姓(或全名)。",
1435
+ "entryDefaultsHeading": "赛事报名默认值",
1436
+ "entryStatusLabel": "报名状态",
1437
+ "entryStageLabel": "报名阶段",
1438
+ "dedupeHeading": "重复检测",
1439
+ "mergeDuplicatesLabel": "合并共享同一标识符的行",
1440
+ "matchByLabel": "匹配依据",
1441
+ "updateExistingLabel": "重新导入时更新现有参赛者"
1436
1442
  },
1437
1443
  "tallyReport": {
1438
- "title": "__TODO__",
1439
- "groupedBy": "__TODO__",
1440
- "step": "__TODO__",
1441
- "participants": "__TODO__",
1442
- "separated": "__TODO__",
1443
- "compared": "__TODO__",
1444
- "by": "__TODO__",
1445
- "finalOrder": "__TODO__",
1446
- "unresolved": "__TODO__",
1447
- "incomplete": "__TODO__",
1448
- "idsFilterNote": "__TODO__",
1449
- "reversedNote": "__TODO__",
1450
- "h2hWinner": "__TODO__"
1444
+ "title": "决胜报告",
1445
+ "groupedBy": "分组依据",
1446
+ "step": "步骤",
1447
+ "participants": "参赛者",
1448
+ "separated": "已区分",
1449
+ "compared": "比较",
1450
+ "by": "依据",
1451
+ "finalOrder": "最终排序",
1452
+ "unresolved": "未解决",
1453
+ "incomplete": "小组尚未完成 — 所有比赛结束后将提供决胜报告。",
1454
+ "idsFilterNote": "仅考虑并列参赛者进行计算",
1455
+ "reversedNote": "按逆序排列(数值越低越好)",
1456
+ "h2hWinner": "交手胜者"
1451
1457
  },
1452
1458
  "manageAccess": {
1453
- "title": "__TODO__",
1454
- "grantedAccess": "__TODO__",
1455
- "addUser": "__TODO__",
1456
- "emailPlaceholder": "__TODO__",
1457
- "grant": "__TODO__",
1458
- "revoke": "__TODO__",
1459
- "noAssignments": "__TODO__",
1460
- "loadError": "__TODO__",
1461
- "grantError": "__TODO__",
1462
- "revokeError": "__TODO__"
1459
+ "title": "管理访问权限",
1460
+ "grantedAccess": "已授予访问权限",
1461
+ "addUser": "添加用户",
1462
+ "emailPlaceholder": "user@email.com",
1463
+ "grant": "授予",
1464
+ "revoke": "撤销",
1465
+ "noAssignments": "尚未向任何用户授予访问权限",
1466
+ "loadError": "加载分配失败",
1467
+ "grantError": "授予访问权限失败",
1468
+ "revokeError": "撤销访问权限失败"
1463
1469
  },
1464
1470
  "editCategories": {
1465
- "title": "__TODO__",
1466
- "intro": "__TODO__",
1467
- "add": "__TODO__",
1468
- "empty": "__TODO__",
1469
- "duplicate": "__TODO__",
1470
- "confirmDelete": "__TODO__",
1471
- "deleteBlocked": "__TODO__",
1472
- "deleteDisabledHint": "__TODO__",
1473
- "unused": "__TODO__",
1474
- "usageCount": "__TODO__",
1475
- "usageList": "__TODO__"
1471
+ "title": "赛事类别",
1472
+ "intro": "添加或移除为此赛事定义的类别。正在使用的类别无法编辑或移除 — 通过替换引用它们的赛事来更改。",
1473
+ "add": "+ 添加类别",
1474
+ "empty": "尚未定义类别。",
1475
+ "duplicate": "名称或代码相同的类别已存在。",
1476
+ "confirmDelete": "删除“{{name}}”?此操作无法撤销。",
1477
+ "deleteBlocked": "无法删除“{{name}}” — 有 {{count}} 项赛事正在使用:{{events}}。请先移除或重新分配这些赛事。",
1478
+ "deleteDisabledHint": "此类别正被一项或多项赛事使用。请先移除或重新分配这些赛事。",
1479
+ "unused": "未使用",
1480
+ "usageCount": "{{count}} 项赛事",
1481
+ "usageList": "{{name}} 被以下赛事使用:{{events}}"
1476
1482
  },
1477
1483
  "firstLogin": {
1478
- "title": "__TODO__",
1479
- "intro": "__TODO__",
1480
- "newPasswordLabel": "__TODO__",
1481
- "newPasswordPlaceholder": "__TODO__",
1482
- "confirmPasswordLabel": "__TODO__",
1483
- "confirmPasswordPlaceholder": "__TODO__",
1484
- "setPassword": "__TODO__",
1485
- "failed": "__TODO__",
1486
- "tokenExpired": "__TODO__"
1484
+ "title": "设置您的密码",
1485
+ "intro": "您的账户是用临时密码创建的。请选择一个新密码以完成登录。",
1486
+ "newPasswordLabel": "新密码",
1487
+ "newPasswordPlaceholder": "至少 8 个字符",
1488
+ "confirmPasswordLabel": "确认密码",
1489
+ "confirmPasswordPlaceholder": "重新输入新密码",
1490
+ "setPassword": "设置密码",
1491
+ "failed": "无法设置密码。请重试。",
1492
+ "tokenExpired": "此登录会话已过期。请重新登录。"
1487
1493
  },
1488
1494
  "forgotPassword": {
1489
- "title": "__TODO__",
1490
- "intro": "__TODO__",
1491
- "label": "__TODO__",
1492
- "submit": "__TODO__",
1493
- "sent": "__TODO__",
1494
- "networkError": "__TODO__"
1495
+ "title": "重置您的密码",
1496
+ "intro": "输入与您账户关联的邮箱地址。如果我们认识您,密码重置链接将随即发出 — 请查看收件箱。",
1497
+ "label": "联系邮箱",
1498
+ "submit": "发送重置链接",
1499
+ "sent": "如果我们认识您,密码重置链接将随即发出。请查看收件箱(以及垃圾邮件文件夹)。",
1500
+ "networkError": "无法连接服务器 — 请重试。"
1495
1501
  },
1496
1502
  "createUser": {
1497
- "title": "__TODO__",
1498
- "create": "__TODO__",
1499
- "loginEmail": "__TODO__",
1500
- "contactEmail": "__TODO__",
1501
- "password": "__TODO__",
1502
- "successCopied": "__TODO__",
1503
- "successEmailed": "__TODO__",
1504
- "successPlain": "__TODO__",
1505
- "failed": "__TODO__",
1506
- "emailExists": "__TODO__"
1503
+ "title": "创建用户",
1504
+ "create": "创建",
1505
+ "loginEmail": "登录 ID",
1506
+ "contactEmail": "联系邮箱(可选)",
1507
+ "password": "密码",
1508
+ "successCopied": "已创建 {{email}}。临时密码已复制到剪贴板。",
1509
+ "successEmailed": "已创建。“设置密码”链接已发送至 {{email}}。",
1510
+ "successPlain": "已创建 {{email}}。",
1511
+ "failed": "创建用户失败。",
1512
+ "emailExists": "邮箱为 {{email}} 的用户已存在。"
1507
1513
  },
1508
1514
  "archiveProvider": {
1509
- "title": "__TODO__",
1510
- "intro": "__TODO__",
1511
- "loading": "__TODO__",
1512
- "previewFailed": "__TODO__",
1513
- "confirmLabel": "__TODO__",
1514
- "submit": "__TODO__",
1515
- "success": "__TODO__",
1516
- "failed": "__TODO__",
1515
+ "title": "归档服务商 — {{provider}}",
1516
+ "intro": "归档会将与 {{provider}}({{abbr}})关联的所有内容导出到磁盘,然后从实时数据库中移除。归档可通过后端 revive-provider.mjs 脚本恢复。",
1517
+ "loading": "正在加载影响范围预览…",
1518
+ "previewFailed": "无法加载预览。请重试,或刷新页面。",
1519
+ "confirmLabel": "输入服务商缩写({{abbr}})以确认:",
1520
+ "submit": "归档服务商",
1521
+ "success": "已归档 {{abbr}} — {{tournaments}} 项赛事。归档 ID:{{archiveId}}。",
1522
+ "failed": "归档失败。",
1517
1523
  "counts": {
1518
- "tournaments": "__TODO__",
1519
- "userAssociations": "__TODO__",
1520
- "provisionerAssociations": "__TODO__",
1521
- "tournamentAssignments": "__TODO__",
1522
- "officialRecords": "__TODO__",
1523
- "sanctioningRecords": "__TODO__",
1524
- "tournamentProvisioner": "__TODO__",
1525
- "pendingSaves": "__TODO__",
1526
- "calendars": "__TODO__",
1527
- "topologies": "__TODO__",
1528
- "catalogItems": "__TODO__",
1529
- "policies": "__TODO__",
1530
- "auditLogRows": "__TODO__"
1524
+ "tournaments": "赛事",
1525
+ "userAssociations": "用户关联",
1526
+ "provisionerAssociations": "供应方关联",
1527
+ "tournamentAssignments": "赛事分配",
1528
+ "officialRecords": "官方记录",
1529
+ "sanctioningRecords": "认证记录",
1530
+ "tournamentProvisioner": "赛事-供应方链接",
1531
+ "pendingSaves": "待保存项",
1532
+ "calendars": "日历",
1533
+ "topologies": "拓扑模板",
1534
+ "catalogItems": "目录项",
1535
+ "policies": "策略",
1536
+ "auditLogRows": "审计日志行(保留,不删除)"
1531
1537
  }
1532
1538
  },
1533
1539
  "deleteProvider": {
1534
- "title": "__TODO__",
1535
- "warning": "__TODO__",
1536
- "warningDetail": "__TODO__",
1537
- "intro": "__TODO__",
1538
- "acknowledge": "__TODO__",
1539
- "submit": "__TODO__",
1540
- "success": "__TODO__",
1541
- "failed": "__TODO__"
1540
+ "title": "删除服务商 — {{provider}}",
1541
+ "warning": "不可逆 — 无归档,无法恢复。",
1542
+ "warningDetail": "如果日后有可能需要这些数据,请改用归档。删除仅适用于没有真实数据的服务商(演示/测试账户)。",
1543
+ "intro": "永久删除 {{provider}}({{abbr}})及其所有关联数据。审计日志行会保留,但所有其他表都将被清空。",
1544
+ "acknowledge": "我了解此操作无法撤销。",
1545
+ "submit": "永久删除",
1546
+ "success": "已删除 {{abbr}} — 销毁了 {{tournaments}} 项赛事。",
1547
+ "failed": "删除失败。"
1542
1548
  },
1543
1549
  "contactEmail": {
1544
- "title": "__TODO__",
1545
- "label": "__TODO__",
1546
- "save": "__TODO__",
1547
- "resend": "__TODO__",
1548
- "savedPending": "__TODO__",
1549
- "resent": "__TODO__",
1550
- "alreadyVerified": "__TODO__",
1551
- "failed": "__TODO__",
1552
- "statusNotSet": "__TODO__",
1553
- "statusPending": "__TODO__",
1554
- "statusVerified": "__TODO__"
1550
+ "title": "恢复邮箱",
1551
+ "label": "恢复邮箱",
1552
+ "save": "保存",
1553
+ "resend": "重新发送验证",
1554
+ "savedPending": "验证邮件已发送至 {{email}}。",
1555
+ "resent": "验证邮件已发送。",
1556
+ "alreadyVerified": "恢复邮箱已验证。",
1557
+ "failed": "无法更新恢复邮箱。请重试。",
1558
+ "statusNotSet": "未设置恢复邮箱。添加一个,以便在忘记密码时恢复访问。",
1559
+ "statusPending": "待验证 — 请查看 {{email}} 并点击链接。",
1560
+ "statusVerified": "已验证:{{email}}"
1555
1561
  },
1556
1562
  "editUser": {
1557
- "providers": "__TODO__",
1558
- "noProviders": "__TODO__",
1559
- "noProvidersAtYourScope": "__TODO__",
1560
- "addProvider": "__TODO__",
1561
- "addProviderPlaceholder": "__TODO__",
1562
- "providerAdded": "__TODO__",
1563
- "providerRemoved": "__TODO__",
1564
- "providerRoleUpdated": "__TODO__",
1565
- "removeProviderTitle": "__TODO__",
1566
- "removeProviderConfirm": "__TODO__"
1563
+ "providers": "服务商",
1564
+ "noProviders": "此用户没有服务商关联。",
1565
+ "noProvidersAtYourScope": "此用户在您的服务商下没有关联。",
1566
+ "addProvider": "添加",
1567
+ "addProviderPlaceholder": "选择一个服务商…",
1568
+ "providerAdded": "已添加服务商",
1569
+ "providerRemoved": "已移除服务商关联",
1570
+ "providerRoleUpdated": "角色已更新为 {{role}}",
1571
+ "removeProviderTitle": "移除服务商关联",
1572
+ "removeProviderConfirm": "移除此用户与 {{provider}} 的关联?此操作无法撤销。"
1567
1573
  },
1568
1574
  "teamProfile": {
1569
- "title": "__TODO__",
1570
- "roster": "__TODO__",
1571
- "coaches": "__TODO__",
1572
- "staff": "__TODO__",
1573
- "empty": "__TODO__",
1575
+ "title": "团队档案",
1576
+ "roster": "名册",
1577
+ "coaches": "教练",
1578
+ "staff": "工作人员",
1579
+ "empty": "此团队尚无成员。",
1574
1580
  "columns": {
1575
- "name": "__TODO__",
1576
- "sex": "__TODO__",
1577
- "role": "__TODO__",
1578
- "contact": "__TODO__"
1581
+ "name": "姓名",
1582
+ "sex": "性别",
1583
+ "role": "角色",
1584
+ "contact": "联系方式"
1579
1585
  },
1580
1586
  "counts": {
1581
- "players_one": "__TODO__",
1582
- "players_other": "__TODO__",
1583
- "coaches_one": "__TODO__",
1584
- "coaches_other": "__TODO__",
1585
- "staff_one": "__TODO__",
1586
- "staff_other": "__TODO__"
1587
+ "players_one": "{{count}} 名选手",
1588
+ "players_other": "{{count}} 名选手",
1589
+ "coaches_one": "{{count}} 名教练",
1590
+ "coaches_other": "{{count}} 名教练",
1591
+ "staff_one": "{{count}} 名工作人员",
1592
+ "staff_other": "{{count}} 名工作人员"
1587
1593
  }
1588
1594
  },
1589
1595
  "practiceCapacity": {
1590
- "title": "__TODO__",
1591
- "help": "__TODO__",
1592
- "unlimited": "__TODO__",
1593
- "capped": "__TODO__",
1594
- "saved": "__TODO__",
1595
- "invalidNumber": "__TODO__",
1596
- "mustBeNonNegative": "__TODO__"
1596
+ "title": "练习球场容量",
1597
+ "help": "未自行设置容量的 PRACTICE 预订的默认容量。单个预订可覆盖此值。",
1598
+ "unlimited": "无限制",
1599
+ "capped": "限制同时注册数:",
1600
+ "saved": "练习容量已更新。",
1601
+ "invalidNumber": "请输入一个整数。",
1602
+ "mustBeNonNegative": "容量不能为负数。"
1597
1603
  },
1598
1604
  "practiceRegistrations": {
1599
- "title": "__TODO__",
1600
- "bookingNotFound": "__TODO__",
1601
- "currentRegistrations": "__TODO__",
1602
- "noneYet": "__TODO__",
1603
- "addRegistrant": "__TODO__",
1604
- "participantLabel": "__TODO__",
1605
- "participantPlaceholder": "__TODO__",
1606
- "startTime": "__TODO__",
1607
- "endTime": "__TODO__",
1608
- "add": "__TODO__",
1609
- "added": "__TODO__",
1610
- "removed": "__TODO__",
1611
- "pickParticipant": "__TODO__",
1612
- "pickTimes": "__TODO__",
1613
- "invalidWindow": "__TODO__",
1614
- "conflictWarning": "__TODO__"
1605
+ "title": "管理练习注册",
1606
+ "bookingNotFound": "此练习预订不再可用。",
1607
+ "currentRegistrations": "当前注册",
1608
+ "noneYet": "尚无注册。",
1609
+ "addRegistrant": "添加注册者",
1610
+ "participantLabel": "参赛者",
1611
+ "participantPlaceholder": "输入参赛者姓名",
1612
+ "startTime": "开始",
1613
+ "endTime": "结束",
1614
+ "add": "添加",
1615
+ "added": "注册已添加。",
1616
+ "removed": "注册已移除。",
1617
+ "pickParticipant": "从列表中选择一位参赛者。",
1618
+ "pickTimes": "设置开始和结束时间。",
1619
+ "invalidWindow": "开始时间必须早于结束时间。",
1620
+ "conflictWarning": "注册已添加 — 参赛者在此时段内另有安排。"
1615
1621
  }
1616
1622
  },
1617
1623
  "dashboard": {
@@ -1631,12 +1637,15 @@
1631
1637
  "noEliminationStructures": "无淘汰赛结构",
1632
1638
  "viewCompetitiveness": "查看竞争力",
1633
1639
  "viewBracket": "查看签表",
1634
- "allStructures": "__TODO__",
1635
- "categories": "__TODO__",
1636
- "noneSet": "__TODO__",
1637
- "practiceCapacity": "__TODO__",
1638
- "practiceUnlimited": "__TODO__",
1639
- "practiceClosed": "__TODO__"
1640
+ "allStructures": "所有结构",
1641
+ "categories": "类别 ({{count}})",
1642
+ "noneSet": "",
1643
+ "practiceCapacity": "练习容量",
1644
+ "practiceUnlimited": "无限制",
1645
+ "practiceClosed": "已关闭",
1646
+ "setTimeZone": "设置时区",
1647
+ "setTimeZoneDetected": "(检测到:{{zone}})",
1648
+ "practiceNoneAllocated": "未分配"
1640
1649
  },
1641
1650
  "drawers": {
1642
1651
  "editTournament": {
@@ -1649,9 +1658,19 @@
1649
1658
  "endDateLabel": "结束日期",
1650
1659
  "selectActiveDates": "选择活动日期",
1651
1660
  "activeDates": "活动日期",
1652
- "timeZoneLabel": "__TODO__",
1653
- "timeZonePlaceholder": "__TODO__",
1654
- "timeZoneInvalid": "__TODO__"
1661
+ "timeZoneLabel": "时区",
1662
+ "timeZonePlaceholder": "例如 America/New_York",
1663
+ "timeZoneInvalid": "不是可识别的 IANA 时区",
1664
+ "tierSystemLabel": "级别体系",
1665
+ "tierSystemPlaceholder": "例如 ITF_JUNIOR、ATP、PPA",
1666
+ "tierSystemNone": "—",
1667
+ "tierSystemUnknown": "(未知:{{system}})",
1668
+ "tierValueLabel": "级别值",
1669
+ "tierValuePlaceholder": "例如 J500、Masters 1000、Gold",
1670
+ "tierNumericRankLabel": "级别排位(可选)",
1671
+ "tierNumericRankPlaceholder": "数值越低,级别越高",
1672
+ "tierSystemMissing": "输入了级别值但未指定体系",
1673
+ "tierValueMissing": "输入了级别体系但未指定值"
1655
1674
  },
1656
1675
  "addDraw": {
1657
1676
  "missingName": "缺少签表名称",
@@ -1730,15 +1749,15 @@
1730
1749
  "PLAY_OFF": "附加赛签表,用作辅助结构。",
1731
1750
  "ROUND_ROBIN_WITH_PLAYOFF": "循环赛小组赛阶段后接单淘汰附加赛。",
1732
1751
  "FEED_IN": "交错入场签表,参赛者在不同轮次进入签表。",
1733
- "SWISS": "__TODO__",
1734
- "PAGE_PLAYOFF": "__TODO__"
1752
+ "SWISS": "每轮按胜负战绩配对参赛者。决胜局在最后一轮结束后对所有参赛者进行排名。",
1753
+ "PAGE_PLAYOFF": "四人混合淘汰赛(IPL/NBA/冰壶)。前两号种子采用双败淘汰;四个名次全部决出。"
1735
1754
  },
1736
- "qualifyingFirst": "__TODO__",
1737
- "qualifyingPositions": "__TODO__",
1738
- "generateMainDraw": "__TODO__",
1739
- "noMainDraw": "__TODO__",
1740
- "drawTypeSwiss": "__TODO__",
1741
- "drawTypePagePlayoff": "__TODO__"
1755
+ "qualifyingFirst": "从资格赛开始",
1756
+ "qualifyingPositions": "资格赛名额",
1757
+ "generateMainDraw": "生成主签表",
1758
+ "noMainDraw": "主签表尚未生成。",
1759
+ "drawTypeSwiss": "瑞士制",
1760
+ "drawTypePagePlayoff": "佩奇附加赛"
1742
1761
  }
1743
1762
  },
1744
1763
  "toasts": {
@@ -1765,11 +1784,16 @@
1765
1784
  "missingTournament": "缺少锦标赛",
1766
1785
  "devVariableError": "添加开发变量时发生错误",
1767
1786
  "cannotDeleteParticipant": "参赛者已分配到签表中,无法删除",
1768
- "updatedParticipants": "__TODO__",
1769
- "addedEventEntries": "__TODO__",
1770
- "magicLinkSent": "__TODO__",
1771
- "magicLinkInvalid": "__TODO__",
1772
- "addedTeamParticipants": "__TODO__"
1787
+ "updatedParticipants": "已更新 {{count}} 名现有参赛者",
1788
+ "addedEventEntries": "已将 {{entries}} 录入 {{events}} 项赛事",
1789
+ "magicLinkSent": "如果该邮箱存在对应账户,登录链接将随即发出。",
1790
+ "magicLinkInvalid": "该登录链接无效或已过期。请请求一个新链接。",
1791
+ "addedTeamParticipants": "已根据团队列生成 {{count}} 名团队参赛者",
1792
+ "activeDatesPrompt": "设置活动日期,让公开日程仅显示您比赛的日子。",
1793
+ "activeDatesPromptAction": "设置活动日期",
1794
+ "cannotDeleteTournament": "无法删除赛事",
1795
+ "tournamentNotEnded": "无法在赛事结束日期之前删除赛事。请先将结束日期设置为过去的日期,然后再删除。",
1796
+ "deleteForbidden": "您无权删除此赛事。"
1773
1797
  },
1774
1798
  "loginMenu": {
1775
1799
  "authorization": "授权",
@@ -1835,7 +1859,7 @@
1835
1859
  "seed": "种子",
1836
1860
  "flights": "分组",
1837
1861
  "status": "状态",
1838
- "drawPosition": "__TODO__"
1862
+ "drawPosition": "位置"
1839
1863
  },
1840
1864
  "teamRow": {
1841
1865
  "order": "顺序",
@@ -1869,9 +1893,9 @@
1869
1893
  "events": "赛事",
1870
1894
  "teams": "队伍",
1871
1895
  "cityState": "城市/省份",
1872
- "nickname": "__TODO__",
1873
- "role": "__TODO__",
1874
- "teamAffiliation": "__TODO__"
1896
+ "nickname": "昵称",
1897
+ "role": "角色",
1898
+ "teamAffiliation": "团队归属"
1875
1899
  },
1876
1900
  "bracket": {
1877
1901
  "participant": "参赛者",
@@ -1928,7 +1952,8 @@
1928
1952
  "profile": "概况",
1929
1953
  "official": "裁判",
1930
1954
  "status": "状态",
1931
- "updatedAt": "__TODO__"
1955
+ "updatedAt": "更新时间",
1956
+ "calledAt": "呼叫时间"
1932
1957
  },
1933
1958
  "tournaments": {
1934
1959
  "open": "打开"
@@ -1963,9 +1988,9 @@
1963
1988
  "doubles": "双打",
1964
1989
  "team": "团体",
1965
1990
  "opponents": "对手",
1966
- "allDates": "__TODO__",
1967
- "today": "__TODO__",
1968
- "noDate": "__TODO__"
1991
+ "allDates": "所有日期",
1992
+ "today": "今天",
1993
+ "noDate": "无日期"
1969
1994
  },
1970
1995
  "schedule": {
1971
1996
  "searchParticipants": "搜索参赛者",
@@ -2002,7 +2027,7 @@
2002
2027
  "blocked": "已封锁",
2003
2028
  "available": "可用",
2004
2029
  "avgPerCourt": "平均可用/球场",
2005
- "tournament": "__TODO__"
2030
+ "tournament": "赛事"
2006
2031
  },
2007
2032
  "addCourts": "添加球场",
2008
2033
  "addVenue": {
@@ -2043,14 +2068,14 @@
2043
2068
  "openingTime": "开放时间",
2044
2069
  "closingTime": "关闭时间",
2045
2070
  "timeOrderError": "开放时间必须早于关闭时间",
2046
- "websiteLabel": "__TODO__",
2047
- "imageLabel": "__TODO__",
2048
- "addressLine1Label": "__TODO__",
2049
- "cityLabel": "__TODO__",
2050
- "stateLabel": "__TODO__",
2051
- "postalCodeLabel": "__TODO__",
2052
- "countryCodeLabel": "__TODO__",
2053
- "countryCodePlaceholder": "__TODO__"
2071
+ "websiteLabel": "网站 URL",
2072
+ "imageLabel": "图片 URL",
2073
+ "addressLine1Label": "街道地址",
2074
+ "cityLabel": "城市",
2075
+ "stateLabel": "州/地区",
2076
+ "postalCodeLabel": "邮政编码",
2077
+ "countryCodeLabel": "国家",
2078
+ "countryCodePlaceholder": "开始输入国家名称"
2054
2079
  }
2055
2080
  },
2056
2081
  "events": {
@@ -2075,7 +2100,11 @@
2075
2100
  "eventNameRequired": "赛事名称至少5个字符",
2076
2101
  "any": "任何",
2077
2102
  "custom": "自定义",
2078
- "categorySaveWarning": "类别已保存到赛事但未添加到锦标赛类别中"
2103
+ "categorySaveWarning": "类别已保存到赛事但未添加到锦标赛类别中",
2104
+ "competitionFormatLabel": "运动规则",
2105
+ "competitionFormatNone": "无",
2106
+ "competitionFormatTennis": "网球(标准)",
2107
+ "competitionFormatIntennse": "INTENNSE(标准)"
2079
2108
  },
2080
2109
  "editFormat": {
2081
2110
  "noChanges": "无更改",
@@ -2096,9 +2125,10 @@
2096
2125
  "viewDraw": "查看签表",
2097
2126
  "displaySettings": "显示设置",
2098
2127
  "autoPlaceParticipants": "自动分配参赛者",
2099
- "configureDraft": "__TODO__",
2100
- "resolveDraft": "__TODO__",
2101
- "draftStatus": "__TODO__"
2128
+ "configureDraft": "配置草稿",
2129
+ "resolveDraft": "确定草稿",
2130
+ "draftStatus": "草稿",
2131
+ "recalculateStats": "重新计算统计"
2102
2132
  }
2103
2133
  },
2104
2134
  "participants": {
@@ -2146,8 +2176,8 @@
2146
2176
  "birthdayPlaceholder": "生日",
2147
2177
  "country": "国家",
2148
2178
  "countryPlaceholder": "国籍",
2149
- "nickname": "__TODO__",
2150
- "nicknamePlaceholder": "__TODO__"
2179
+ "nickname": "昵称",
2180
+ "nicknamePlaceholder": "显示名称"
2151
2181
  },
2152
2182
  "newTeam": "新队伍",
2153
2183
  "generateTeams": "生成队伍",
@@ -2166,9 +2196,9 @@
2166
2196
  "female": "女",
2167
2197
  "unknown": "未知"
2168
2198
  },
2169
- "importFromCsv": "__TODO__",
2170
- "newGroup": "__TODO__",
2171
- "staff": "__TODO__"
2199
+ "importFromCsv": "从 CSV/TSV 导入",
2200
+ "newGroup": "新建分组",
2201
+ "staff": "工作人员"
2172
2202
  }
2173
2203
  },
2174
2204
  "overlays": {
@@ -2224,345 +2254,529 @@
2224
2254
  "country": "国家",
2225
2255
  "cityState": "城市 / 省份"
2226
2256
  },
2227
- "cal": "__TODO__",
2228
- "tpl": "__TODO__",
2229
- "pol": "__TODO__",
2230
- "rpt": "__TODO__",
2257
+ "cal": "日历",
2258
+ "tpl": "模板",
2259
+ "pol": "策略",
2260
+ "rpt": "报告",
2231
2261
  "formatWizard": {
2232
- "title": "__TODO__",
2233
- "launch": "__TODO__",
2234
- "launcherSubtitle": "__TODO__",
2235
- "placeholder": "__TODO__",
2262
+ "title": "赛制向导",
2263
+ "launch": "启动",
2264
+ "launcherSubtitle": "为参赛者群体推荐基于水平的赛制",
2265
+ "placeholder": "调整约束条件后,方案结果将显示在此处。",
2236
2266
  "fields": {
2237
- "scale": "__TODO__",
2238
- "courts": "__TODO__",
2239
- "days": "__TODO__",
2240
- "hoursPerDay": "__TODO__",
2241
- "targetMatchesPerPlayer": "__TODO__",
2242
- "targetCompetitivePct": "__TODO__",
2243
- "consolationAppetite": "__TODO__",
2244
- "voluntaryConsolation": "__TODO__",
2245
- "selectedEvent": "__TODO__"
2267
+ "scale": "评级标准",
2268
+ "courts": "球场",
2269
+ "days": "天数",
2270
+ "hoursPerDay": "每天小时数",
2271
+ "targetMatchesPerPlayer": "每名选手目标比赛数",
2272
+ "targetCompetitivePct": "目标势均力敌比例(0–100)",
2273
+ "consolationAppetite": "安慰赛程度",
2274
+ "voluntaryConsolation": "包含自愿安慰赛",
2275
+ "selectedEvent": "应用到赛事"
2246
2276
  },
2247
2277
  "appetite": {
2248
- "none": "__TODO__",
2249
- "light": "__TODO__",
2250
- "full": "__TODO__"
2278
+ "none": "",
2279
+ "light": "轻量(单轮安慰赛)",
2280
+ "full": "完整(级联安慰赛)"
2251
2281
  },
2252
- "reset": "__TODO__",
2282
+ "reset": "重置为默认值",
2253
2283
  "cues": {
2254
- "noVenues": "__TODO__",
2255
- "savedExceedsAvailable": "__TODO__",
2256
- "savedLessThanAvailable": "__TODO__",
2257
- "effectiveCourtCount": "__TODO__"
2284
+ "noVenues": "未定义球场 — 请先设置场馆",
2285
+ "savedExceedsAvailable": "向导预期 {{saved}} 片球场,但赛事只有 {{available}} 片",
2286
+ "savedLessThanAvailable": "赛事有 {{available}} 片球场;向导配置为 {{saved}} 片",
2287
+ "effectiveCourtCount": "在 {{dayCount}} 天内平均每天可用 {{effective}} 片球场"
2258
2288
  },
2259
2289
  "headers": {
2260
- "distribution": "__TODO__",
2261
- "plans": "__TODO__",
2262
- "consideration": "__TODO__"
2290
+ "distribution": "评级分布",
2291
+ "plans": "建议方案",
2292
+ "consideration": "考量中"
2263
2293
  },
2264
2294
  "summary": {
2265
- "ratedOf": "__TODO__",
2266
- "noRatedParticipants": "__TODO__",
2267
- "loadTournament": "__TODO__",
2268
- "constraintsRequired": "__TODO__",
2269
- "allParticipants": "__TODO__"
2295
+ "ratedOf": "{{total}} 名中有 {{rated}} 名在 {{scale}} 上已评级",
2296
+ "noRatedParticipants": "此标准下没有已评级的参赛者",
2297
+ "loadTournament": "打开一项赛事以填充向导",
2298
+ "constraintsRequired": "调整约束条件以查看方案",
2299
+ "allParticipants": "所有参赛者"
2270
2300
  },
2271
2301
  "actions": {
2272
- "clearStale": "__TODO__"
2302
+ "clearStale": "清除过时的考量项"
2273
2303
  },
2274
2304
  "card": {
2275
- "matchesPerPlayer": "__TODO__",
2276
- "bandHeading": "__TODO__",
2277
- "bandHeading_plural": "__TODO__",
2278
- "bandTargetTag": "__TODO__",
2279
- "vcTag": "__TODO__",
2280
- "staleTag": "__TODO__",
2281
- "considerTag": "__TODO__",
2282
- "competitive": "__TODO__",
2283
- "courtHours": "__TODO__",
2284
- "score": "__TODO__",
2285
- "of": "__TODO__",
2286
- "matches": "__TODO__",
2287
- "flightCount": "__TODO__",
2288
- "flightCount_plural": "__TODO__"
2305
+ "matchesPerPlayer": "每名选手比赛数",
2306
+ "bandHeading": "每名选手 {{count}} 场比赛",
2307
+ "bandHeading_plural": "每名选手 {{count}} 场比赛",
2308
+ "bandTargetTag": "目标",
2309
+ "vcTag": "+VC",
2310
+ "staleTag": "过时",
2311
+ "considerTag": "考量",
2312
+ "competitive": "势均力敌",
2313
+ "courtHours": "球场时数",
2314
+ "score": "评分",
2315
+ "of": "",
2316
+ "matches": "{{count}} 场比赛",
2317
+ "flightCount": "{{count}} 个分组",
2318
+ "flightCount_plural": "{{count}} 个分组"
2289
2319
  },
2290
2320
  "warnings": {
2291
- "BELOW_FLOOR": "__TODO__",
2292
- "OVER_CAPACITY": "__TODO__",
2293
- "WITHDRAWAL_RISK": "__TODO__",
2294
- "MIXED_GENDER_VARIANT": "__TODO__",
2295
- "COLLAPSED_CATEGORY": "__TODO__"
2321
+ "BELOW_FLOOR": "低于目标",
2322
+ "OVER_CAPACITY": "超出球场容量",
2323
+ "WITHDRAWAL_RISK": "退赛风险",
2324
+ "MIXED_GENDER_VARIANT": "混合性别",
2325
+ "COLLAPSED_CATEGORY": "合并类别"
2296
2326
  },
2297
2327
  "apply": {
2298
- "button": "__TODO__",
2299
- "confirmTitle": "__TODO__",
2300
- "confirmBody": "__TODO__",
2301
- "confirmBodyUnsupported": "__TODO__",
2302
- "confirm": "__TODO__",
2303
- "success": "__TODO__",
2304
- "successPartial": "__TODO__",
2305
- "errorEvents": "__TODO__",
2306
- "errorEmpty": "__TODO__"
2328
+ "button": "应用",
2329
+ "confirmTitle": "应用此赛制方案?",
2330
+ "confirmBody": "这将创建 {{eventCount}} 项赛事,并录入 {{participantCount}} 名参赛者。",
2331
+ "confirmBodyUnsupported": "{{unsupportedCount}} 个分组无法自动生成(结构不受支持),将被跳过。",
2332
+ "confirm": "应用",
2333
+ "success": "方案已应用:创建了 {{eventCount}} 项赛事。打开每项赛事以生成其签表。",
2334
+ "successPartial": "方案已应用,部分分组被跳过 — 请查看提示日志",
2335
+ "errorEvents": "无法根据方案创建赛事",
2336
+ "errorEmpty": "无可应用内容 — 每个分组都不受支持或为空"
2307
2337
  }
2308
2338
  },
2309
2339
  "tabs": {
2310
- "info": "__TODO__",
2311
- "events": "__TODO__",
2312
- "schedule": "__TODO__",
2313
- "matches": "__TODO__",
2314
- "players": "__TODO__",
2315
- "stats": "__TODO__"
2340
+ "info": "信息",
2341
+ "events": "赛事",
2342
+ "schedule": "日程",
2343
+ "matches": "比赛",
2344
+ "players": "参赛者",
2345
+ "stats": "统计"
2316
2346
  },
2317
2347
  "players": {
2318
- "name": "__TODO__",
2319
- "country": "__TODO__",
2320
- "cityState": "__TODO__",
2321
- "events": "__TODO__",
2322
- "rank": "__TODO__",
2323
- "noParticipants": "__TODO__",
2324
- "teamsHeading": "__TODO__",
2348
+ "name": "姓名",
2349
+ "country": "国家",
2350
+ "cityState": "城市/州",
2351
+ "events": "赛事",
2352
+ "rank": "排名",
2353
+ "noParticipants": "无参赛者",
2354
+ "teamsHeading": "团队",
2325
2355
  "teamCounts": {
2326
- "players_one": "__TODO__",
2327
- "players_other": "__TODO__",
2328
- "coaches_one": "__TODO__",
2329
- "coaches_other": "__TODO__",
2330
- "staff_one": "__TODO__",
2331
- "staff_other": "__TODO__"
2356
+ "players_one": "{{count}} 名选手",
2357
+ "players_other": "{{count}} 名选手",
2358
+ "coaches_one": "{{count}} 名教练",
2359
+ "coaches_other": "{{count}} 名教练",
2360
+ "staff_one": "{{count}} 名工作人员",
2361
+ "staff_other": "{{count}} 名工作人员"
2332
2362
  }
2333
2363
  },
2334
2364
  "display": {
2335
- "label": "__TODO__",
2336
- "columns": "__TODO__",
2337
- "draw": "__TODO__",
2338
- "tableView": "__TODO__",
2339
- "statistics": "__TODO__"
2365
+ "label": "显示",
2366
+ "columns": "",
2367
+ "draw": "签表",
2368
+ "tableView": "表格视图",
2369
+ "statistics": "统计"
2340
2370
  },
2341
2371
  "theme": {
2342
- "toggleDark": "__TODO__"
2372
+ "toggleDark": "切换深色模式"
2343
2373
  },
2344
2374
  "language": {
2345
- "select": "__TODO__"
2375
+ "select": "选择语言"
2346
2376
  },
2347
2377
  "registrationProfile": {
2348
- "entry": "__TODO__",
2349
- "entriesOpen": "__TODO__",
2350
- "entriesClose": "__TODO__",
2351
- "withdrawalDeadline": "__TODO__",
2352
- "entryMethod": "__TODO__",
2353
- "entryUrl": "__TODO__",
2354
- "entryFee": "__TODO__",
2355
- "accommodation": "__TODO__",
2356
- "transportation": "__TODO__",
2357
- "hospitality": "__TODO__",
2358
- "medical": "__TODO__",
2359
- "ceremonies": "__TODO__",
2360
- "drawCeremony": "__TODO__",
2361
- "awardsCeremony": "__TODO__",
2362
- "regulations": "__TODO__",
2363
- "sponsors": "__TODO__",
2364
- "additional": "__TODO__",
2365
- "dressCode": "__TODO__",
2366
- "contingencyPlan": "__TODO__"
2378
+ "entry": "报名与资格",
2379
+ "entriesOpen": "报名开始",
2380
+ "entriesClose": "报名截止",
2381
+ "withdrawalDeadline": "退赛截止日期",
2382
+ "entryMethod": "报名方式",
2383
+ "entryUrl": "报名 URL",
2384
+ "entryFee": "费用",
2385
+ "accommodation": "住宿",
2386
+ "transportation": "交通",
2387
+ "hospitality": "接待",
2388
+ "medical": "医疗信息",
2389
+ "ceremonies": "仪式与社交活动",
2390
+ "drawCeremony": "抽签仪式",
2391
+ "awardsCeremony": "颁奖仪式",
2392
+ "regulations": "规章",
2393
+ "sponsors": "赞助商",
2394
+ "additional": "附加信息",
2395
+ "dressCode": "着装要求",
2396
+ "contingencyPlan": "天气应急预案"
2367
2397
  },
2368
2398
  "provisioner": {
2369
- "myProviders": "__TODO__",
2370
- "users": "__TODO__",
2371
- "noProviders": "__TODO__",
2372
- "noUsers": "__TODO__",
2373
- "createProvider": "__TODO__",
2374
- "createUser": "__TODO__",
2375
- "openInTmx": "__TODO__",
2376
- "providerNamePlaceholder": "__TODO__",
2377
- "providerAbbrPlaceholder": "__TODO__",
2378
- "providerCreated": "__TODO__",
2379
- "providerFieldsRequired": "__TODO__",
2380
- "userCreated": "__TODO__",
2381
- "userFieldsRequired": "__TODO__",
2382
- "selectProvider": "__TODO__",
2383
- "selectProviderFirst": "__TODO__"
2399
+ "myProviders": "我的服务商",
2400
+ "users": "用户",
2401
+ "noProviders": "尚无服务商 — 创建一个以开始使用",
2402
+ "noUsers": "此服务商没有用户",
2403
+ "createProvider": "创建服务商",
2404
+ "createUser": "创建用户",
2405
+ "openInTmx": "在 TMX 中打开",
2406
+ "providerNamePlaceholder": "例如 IONSport Demos",
2407
+ "providerAbbrPlaceholder": "例如 IONDEMO",
2408
+ "providerCreated": "服务商已创建",
2409
+ "providerFieldsRequired": "名称和缩写为必填项",
2410
+ "userCreated": "用户已创建",
2411
+ "userFieldsRequired": "邮箱和外部 ID 为必填项",
2412
+ "selectProvider": "选择一个服务商…",
2413
+ "selectProviderFirst": "请先选择一个服务商"
2384
2414
  },
2385
2415
  "manageAccess": {
2386
- "title": "__TODO__",
2387
- "tournament": "__TODO__",
2388
- "grantedAccess": "__TODO__",
2389
- "addUser": "__TODO__",
2390
- "emailPlaceholder": "__TODO__",
2391
- "grant": "__TODO__",
2392
- "revoke": "__TODO__",
2393
- "noAssignments": "__TODO__",
2394
- "loadError": "__TODO__",
2395
- "grantError": "__TODO__",
2396
- "revokeError": "__TODO__",
2397
- "granted": "__TODO__",
2398
- "revoked": "__TODO__"
2416
+ "title": "管理赛事访问权限",
2417
+ "tournament": "赛事",
2418
+ "grantedAccess": "已授予访问权限",
2419
+ "addUser": "添加用户",
2420
+ "emailPlaceholder": "user@example.com",
2421
+ "grant": "授予",
2422
+ "revoke": "撤销",
2423
+ "noAssignments": "尚未向任何用户授予访问权限。",
2424
+ "loadError": "加载分配失败。",
2425
+ "grantError": "授予访问权限失败。",
2426
+ "revokeError": "撤销访问权限失败。",
2427
+ "granted": "已向 {{email}} 授予访问权限",
2428
+ "revoked": "已撤销 {{email}} 的访问权限"
2399
2429
  },
2400
2430
  "providerConfig": {
2401
- "editCapsButton": "__TODO__",
2402
- "editCapsTitle": "__TODO__",
2403
- "editCapsTitleGeneric": "__TODO__",
2404
- "editSettingsButton": "__TODO__",
2405
- "editSettingsTitle": "__TODO__",
2406
- "editSettingsTitleGeneric": "__TODO__",
2431
+ "editCapsButton": "编辑上限",
2432
+ "editCapsTitle": "编辑上限 — {{name}}",
2433
+ "editCapsTitleGeneric": "编辑服务商上限",
2434
+ "editSettingsButton": "编辑设置",
2435
+ "editSettingsTitle": "编辑设置 — {{name}}",
2436
+ "editSettingsTitleGeneric": "编辑服务商设置",
2407
2437
  "section": {
2408
- "branding": "__TODO__",
2409
- "permissionCeilings": "__TODO__",
2410
- "permissionChoices": "__TODO__",
2411
- "allowedUniverses": "__TODO__",
2412
- "allowedSelections": "__TODO__",
2413
- "policies": "__TODO__",
2414
- "defaults": "__TODO__",
2415
- "integrations": "__TODO__",
2416
- "privacy": "__TODO__",
2417
- "themeTokens": "__TODO__"
2438
+ "branding": "品牌(白标)",
2439
+ "permissionCeilings": "权限上限",
2440
+ "permissionChoices": "权限",
2441
+ "allowedUniverses": "允许的范围",
2442
+ "allowedSelections": "允许的选项",
2443
+ "policies": "策略",
2444
+ "defaults": "默认值",
2445
+ "integrations": "集成",
2446
+ "privacy": "参赛者隐私",
2447
+ "themeTokens": "主题令牌(CSS 变量)"
2418
2448
  },
2419
2449
  "privacy": {
2420
- "settingsHint": "__TODO__",
2421
- "cityState": "__TODO__"
2450
+ "settingsHint": "以下每个开关都会为一个参赛者属性放宽默认隐私策略。保持关闭(默认)以将该属性保持私密。",
2451
+ "cityState": "在参赛者上发布城市/州"
2422
2452
  },
2423
2453
  "permissions": {
2424
- "ceilingHint": "__TODO__",
2425
- "choiceHint": "__TODO__",
2426
- "lockedByProvisioner": "__TODO__"
2454
+ "ceilingHint": "此处设置为关闭的每项权限都将对服务商锁定关闭 — 他们无法启用。",
2455
+ "choiceHint": "禁用您的赛事主管不应执行的任何权限。被供应方锁定关闭的权限显示为灰色。",
2456
+ "lockedByProvisioner": "被供应方锁定 — 无法启用。"
2427
2457
  },
2428
2458
  "allowed": {
2429
- "universeHint": "__TODO__",
2430
- "selectionHint": "__TODO__"
2459
+ "universeHint": "逗号分隔的列表。留空表示不受限制(全部允许)。",
2460
+ "selectionHint": "选择此服务商可使用的选项。未选择 = 全部允许。",
2461
+ "restrictedHint": "在供应方允许的范围内选择。未选择 = 全部可用。",
2462
+ "unrestrictedHint": "未选择 = 全部允许。选择以进行限制。"
2431
2463
  },
2432
2464
  "branding": {
2433
- "appName": "__TODO__",
2434
- "navbarLogoUrl": "__TODO__",
2435
- "navbarLogoAlt": "__TODO__",
2436
- "navbarLogoHeight": "__TODO__",
2437
- "splashLogoUrl": "__TODO__",
2438
- "accentColor": "__TODO__",
2439
- "stylesheetUrl": "__TODO__"
2465
+ "appName": "应用名称",
2466
+ "navbarLogoUrl": "导航栏徽标 URL",
2467
+ "navbarLogoAlt": "导航栏徽标替代文本",
2468
+ "navbarLogoHeight": "导航栏徽标高度(px)",
2469
+ "splashLogoUrl": "启动画面徽标 URL",
2470
+ "accentColor": "强调色(CSS)",
2471
+ "stylesheetUrl": "服务商样式表 URL(应急方案)",
2472
+ "preview": "实时预览(模拟导航栏)",
2473
+ "uploadThemeAssets": "上传并链接主题资源",
2474
+ "uploadNoFiles": "请先选择一个 .css 文件(以及任何字体)。",
2475
+ "uploading": "正在上传…",
2476
+ "uploadLinked": "已上传 {{count}} 个文件;样式表 URL 已链接。",
2477
+ "uploadedNoCss": "已上传 {{count}} 个文件 — 添加一个 .css 文件以链接样式表 URL。",
2478
+ "uploadFailed": "上传失败:{{reason}}"
2440
2479
  },
2441
2480
  "defaults": {
2442
- "defaultEventType": "__TODO__",
2443
- "defaultDrawType": "__TODO__",
2444
- "defaultCreationMethod": "__TODO__",
2445
- "defaultGender": "__TODO__"
2481
+ "defaultEventType": "默认赛事类型",
2482
+ "defaultDrawType": "默认签表类型",
2483
+ "defaultCreationMethod": "默认创建方式",
2484
+ "defaultGender": "默认性别"
2446
2485
  },
2447
2486
  "policies": {
2448
- "schedulingPolicy": "__TODO__",
2449
- "scoringPolicy": "__TODO__",
2450
- "seedingPolicy": "__TODO__",
2451
- "policyJsonPlaceholder": "__TODO__",
2452
- "invalidJson": "__TODO__"
2453
- },
2454
- "capsSaved": "__TODO__",
2455
- "settingsSaved": "__TODO__",
2456
- "invalid": "__TODO__",
2457
- "saveFailed": "__TODO__",
2458
- "loadCapsForGating": "__TODO__",
2487
+ "schedulingPolicy": "排期策略(JSON)",
2488
+ "scoringPolicy": "计分策略(JSON)",
2489
+ "seedingPolicy": "种子策略(JSON)",
2490
+ "policyJsonPlaceholder": "{ ... }",
2491
+ "invalidJson": "无效的 JSON"
2492
+ },
2493
+ "capsSaved": "上限已保存",
2494
+ "settingsSaved": "设置已保存",
2495
+ "invalid": "验证失败 — 请查看下方字段错误",
2496
+ "saveFailed": "保存失败",
2497
+ "loadCapsForGating": "正在加载上限以确定哪些字段被锁定…",
2459
2498
  "themeTokens": {
2460
- "label": "__TODO__",
2461
- "hint": "__TODO__",
2462
- "preset": "__TODO__",
2463
- "chooseAPreset": "__TODO__",
2464
- "add": "__TODO__",
2465
- "remove": "__TODO__",
2466
- "invalidPrefix": "__TODO__"
2499
+ "label": "自定义 CSS 变量覆盖",
2500
+ "hint": "令牌名称必须以 --tmx- 或 --chc- 开头。值为 CSS 颜色/长度/字体字符串。在启动时和切换服务商时应用。",
2501
+ "preset": "预设",
2502
+ "chooseAPreset": "选择一个预设…",
2503
+ "add": "+ 添加令牌",
2504
+ "remove": "移除",
2505
+ "invalidPrefix": "令牌名称必须以 --tmx- 或 --chc- 开头"
2467
2506
  }
2468
2507
  },
2469
2508
  "banners": {
2470
2509
  "contactEmail": {
2471
- "missing": "__TODO__",
2472
- "pending": "__TODO__",
2473
- "setUp": "__TODO__",
2474
- "review": "__TODO__"
2510
+ "missing": "设置联系邮箱,以便通过邮件找回密码。",
2511
+ "pending": "验证 {{email}},以便通过邮件找回密码。",
2512
+ "setUp": "设置邮箱",
2513
+ "review": "查看"
2475
2514
  }
2476
2515
  },
2477
2516
  "verifyEmail": {
2478
- "title": "__TODO__",
2479
- "intro": "__TODO__",
2480
- "verifyButton": "__TODO__",
2481
- "verifying": "__TODO__",
2482
- "success": "__TODO__",
2483
- "successPlain": "__TODO__",
2484
- "missingToken": "__TODO__",
2485
- "tokenExpired": "__TODO__",
2486
- "tokenMismatch": "__TODO__",
2487
- "tryAgain": "__TODO__",
2488
- "failed": "__TODO__"
2517
+ "title": "验证您的邮箱",
2518
+ "intro": "点击下方按钮以确认此邮箱属于您。",
2519
+ "verifyButton": "验证邮箱",
2520
+ "verifying": "正在验证…",
2521
+ "success": "已验证 ✓ — 您现在可以在 {{email}} 接收密码恢复邮件。您可以关闭此标签页。",
2522
+ "successPlain": "已验证 ✓。您可以关闭此标签页。",
2523
+ "missingToken": "此验证链接缺少令牌。请重新点击邮件中的链接,或从联系邮箱设置中请求一个新链接。",
2524
+ "tokenExpired": "此验证链接已过期。请从您的联系邮箱设置中请求一个新链接。",
2525
+ "tokenMismatch": "此链接不再与您当前的联系邮箱匹配 — 可能已被更近期的更改取代。",
2526
+ "tryAgain": "重试",
2527
+ "failed": "验证失败。请尝试请求一个新链接。",
2528
+ "verifiedRedirect": "您的邮箱已验证。正在带您前往 My CourtHive…",
2529
+ "verifiedSignIn": "您的邮箱已验证。您现在可以登录。",
2530
+ "invalidOrExpired": "此验证链接无效或已过期。登录 My CourtHive 以请求一个新链接。"
2489
2531
  },
2490
2532
  "resetPassword": {
2491
- "title": "__TODO__",
2492
- "intro": "__TODO__",
2493
- "newPasswordPlaceholder": "__TODO__",
2494
- "confirmPlaceholder": "__TODO__",
2495
- "submit": "__TODO__",
2496
- "submitting": "__TODO__",
2497
- "success": "__TODO__",
2498
- "missingToken": "__TODO__",
2499
- "tokenExpired": "__TODO__",
2500
- "tokenMismatch": "__TODO__",
2501
- "failed": "__TODO__"
2533
+ "title": "设置新密码",
2534
+ "intro": "为您的 CourtHive 账户选择一个新密码。邮件中的链接仅可使用一次。",
2535
+ "newPasswordPlaceholder": "新密码(至少 8 个字符)",
2536
+ "confirmPlaceholder": "确认新密码",
2537
+ "submit": "设置新密码",
2538
+ "submitting": "正在设置…",
2539
+ "success": "您的密码已更改。正在跳转到登录页面…",
2540
+ "missingToken": "此重置链接缺少令牌。请重新点击邮件中的链接,或请求一个新链接。",
2541
+ "tokenExpired": "此重置链接已过期。请从登录界面的“忘记密码?”链接请求一个新链接。",
2542
+ "tokenMismatch": "此链接不再与您当前的联系邮箱匹配 — 请请求一个新链接。",
2543
+ "failed": "无法重置您的密码。请尝试请求一个新链接。"
2502
2544
  },
2503
2545
  "noAccess": {
2504
- "title": "__TODO__",
2505
- "message": "__TODO__",
2506
- "logOut": "__TODO__"
2546
+ "title": "无管理访问权限",
2547
+ "message": "您的账户无权访问管理控制台。如果您管理赛事,请改用 TMX 应用。如果您认为这是错误,请联系您的服务商管理员。",
2548
+ "logOut": "登出"
2507
2549
  },
2508
2550
  "admin": {
2509
- "abbreviation": "__TODO__",
2510
- "providerId": "__TODO__",
2511
- "impersonating": "__TODO__",
2512
- "tournaments": "__TODO__",
2513
- "noTournaments": "__TODO__",
2514
- "tournamentName": "__TODO__",
2515
- "startDate": "__TODO__",
2516
- "endDate": "__TODO__",
2517
- "calendarLoadError": "__TODO__",
2518
- "policyDefinitions": "__TODO__",
2519
- "policyEditorComingSoon": "__TODO__",
2520
- "quickActions": "__TODO__",
2521
- "manageProviders": "__TODO__",
2522
- "manageUsers": "__TODO__",
2523
- "backToSystem": "__TODO__",
2524
- "noProviderSelected": "__TODO__",
2525
- "selectProviderHint": "__TODO__",
2526
- "dashboard": "__TODO__",
2527
- "providerDashboardComingSoon": "__TODO__",
2528
- "runAudit": "__TODO__",
2529
- "auditClean": "__TODO__",
2530
- "auditWarning": "__TODO__",
2531
- "auditError": "__TODO__",
2532
- "tournamentDetail": "__TODO__",
2533
- "selectTournament": "__TODO__",
2534
- "loadingTournament": "__TODO__",
2535
- "tournamentNotFound": "__TODO__",
2536
- "tournamentLoadError": "__TODO__",
2537
- "tournamentMissingFromStorage": "__TODO__",
2538
- "participants": "__TODO__",
2539
- "venues": "__TODO__",
2540
- "event": "__TODO__",
2541
- "type": "__TODO__",
2542
- "entries": "__TODO__",
2543
- "draws": "__TODO__",
2544
- "noEvents": "__TODO__"
2551
+ "abbreviation": "缩写",
2552
+ "providerId": "服务商 ID",
2553
+ "impersonating": "正在模拟此服务商",
2554
+ "tournaments": "赛事",
2555
+ "noTournaments": "未找到赛事",
2556
+ "tournamentName": "赛事",
2557
+ "startDate": "开始",
2558
+ "endDate": "结束",
2559
+ "calendarLoadError": "无法加载日历",
2560
+ "policyDefinitions": "策略定义",
2561
+ "policyEditorComingSoon": "策略编辑器即将推出。",
2562
+ "quickActions": "快速操作",
2563
+ "manageProviders": "管理服务商",
2564
+ "manageUsers": "管理用户",
2565
+ "backToSystem": "返回系统",
2566
+ "noProviderSelected": "未选择服务商",
2567
+ "selectProviderHint": "从系统页面选择一个服务商以查看其管理仪表板。",
2568
+ "dashboard": "仪表板",
2569
+ "providerDashboardComingSoon": "服务商仪表板即将推出。",
2570
+ "runAudit": "运行审核",
2571
+ "auditClean": "全部 {{total}} 条日历记录已在存储中验证",
2572
+ "auditWarning": "{{total}} 条日历记录中有 {{missing}} 条在存储中缺失",
2573
+ "auditError": "日历审核失败",
2574
+ "tournamentDetail": "赛事详情",
2575
+ "selectTournament": "从日历中选择一项赛事以查看详情。",
2576
+ "loadingTournament": "正在加载赛事信息…",
2577
+ "tournamentNotFound": "赛事信息不可用。",
2578
+ "tournamentLoadError": "无法加载赛事信息。",
2579
+ "tournamentMissingFromStorage": "此赛事存在于日历中,但不存在于存储中。",
2580
+ "participants": "参赛者",
2581
+ "venues": "场馆",
2582
+ "event": "赛事",
2583
+ "type": "类型",
2584
+ "entries": "报名",
2585
+ "draws": "签表",
2586
+ "noEvents": "无赛事项目",
2587
+ "providerDashboard": {
2588
+ "loading": "正在加载仪表板…",
2589
+ "loadError": "无法加载服务商配置。",
2590
+ "brand": {
2591
+ "title": "品牌与标识",
2592
+ "editTheme": "编辑主题",
2593
+ "logoAlt": "服务商徽标",
2594
+ "unnamed": "未命名服务商",
2595
+ "noBrand": "尚未设置品牌颜色",
2596
+ "themeTokens": "{{count}} 个主题令牌覆盖"
2597
+ },
2598
+ "checklist": {
2599
+ "title": "入门指南",
2600
+ "progress": "已完成 {{done}}/{{total}}",
2601
+ "appName": "设置显示名称",
2602
+ "brand": "设置品牌颜色",
2603
+ "logo": "上传徽标",
2604
+ "privacy": "配置参赛者隐私"
2605
+ },
2606
+ "config": {
2607
+ "title": "配置概览",
2608
+ "editSettings": "编辑设置",
2609
+ "permissions": "已启用 {{count}} 项权限",
2610
+ "policies": "已配置 {{count}} 个策略集",
2611
+ "privacy": "已发布 {{count}} 个隐私字段",
2612
+ "scoringApp": "计分应用:{{app}}",
2613
+ "none": "使用平台默认值"
2614
+ },
2615
+ "tournaments": {
2616
+ "title": "赛事",
2617
+ "total": "总计",
2618
+ "upcoming": "即将开始",
2619
+ "live": "进行中",
2620
+ "completed": "已完成",
2621
+ "none": "暂无赛事",
2622
+ "loadError": "无法加载赛事",
2623
+ "openInTmx": "在 TMX 中打开"
2624
+ },
2625
+ "activity": {
2626
+ "title": "按年度活动"
2627
+ },
2628
+ "rankings": {
2629
+ "title": "排名",
2630
+ "launch": "打开排名页面",
2631
+ "configure": "配置排名策略",
2632
+ "recompute": "重新计算排名",
2633
+ "recomputing": "正在重新计算排名…",
2634
+ "policySet": "已配置排名积分策略。重新计算以刷新所有赛事的积分并重新生成排名快照。",
2635
+ "policyUnsetHint": "请先选择排名积分策略以启用重新计算。",
2636
+ "pipelineOff": "服务器上未配置排名流水线(RANKINGS_PIPELINE_URL)。未进行任何重新计算。",
2637
+ "failed": "无法重新计算排名。",
2638
+ "result": "已重新计算 {{republished}}/{{tournaments}} 项赛事;生成了 {{snapshots}} 个快照。"
2639
+ }
2640
+ },
2641
+ "notLoggedInTitle": "您尚未登录",
2642
+ "notLoggedInHint": "登录以查看您的服务商仪表板。",
2643
+ "logIn": "登录"
2545
2644
  },
2546
2645
  "ams": {
2547
- "officials": "__TODO__",
2548
- "rosters": "__TODO__",
2549
- "membership": "__TODO__",
2550
- "sanctioning": "__TODO__",
2551
- "conferences": "__TODO__",
2552
- "sids": "__TODO__",
2553
- "seamPlaceholder": "__TODO__"
2646
+ "officials": "官员",
2647
+ "rosters": "名册",
2648
+ "membership": "会员资格",
2649
+ "sanctioning": "认证",
2650
+ "conferences": "联盟",
2651
+ "sids": "SID 工具",
2652
+ "seamPlaceholder": "即将推出 — 由 WS-14–16 构建。"
2554
2653
  },
2555
2654
  "console": {
2556
- "title": "__TODO__",
2557
- "amsSection": "__TODO__",
2558
- "platformSection": "__TODO__"
2655
+ "title": "CourtHive 控制台",
2656
+ "amsSection": "协会管理",
2657
+ "platformSection": "平台管理"
2658
+ },
2659
+ "recoveryEmail": "恢复邮箱",
2660
+ "recoveryEmailHelp": "用于密码恢复的真实邮箱。与上方的登录邮箱分开。",
2661
+ "verified": "已验证",
2662
+ "unverified": "未验证",
2663
+ "sendVerification": "发送验证",
2664
+ "verificationSent": "验证邮件已发送",
2665
+ "alreadyVerified": "恢复邮箱已验证",
2666
+ "noRecoveryEmail": "未设置恢复邮箱",
2667
+ "timepicker": {
2668
+ "am": "上午",
2669
+ "pm": "下午",
2670
+ "selectTime": "选择时间",
2671
+ "enterTime": "输入时间",
2672
+ "hour": "时",
2673
+ "minute": "分",
2674
+ "clear": "清除"
2675
+ },
2676
+ "onboarding": {
2677
+ "title": "欢迎 — 让我们设置 {{name}}",
2678
+ "yourProvider": "您的服务商",
2679
+ "intro": "还剩 {{count}} 个步骤即可完成设置。您可以跳过任何步骤,稍后再回来。",
2680
+ "allDone": "您已全部设置完成。🎉",
2681
+ "setUp": "设置",
2682
+ "getStarted": "开始使用",
2683
+ "skipForNow": "暂时跳过",
2684
+ "finish": "完成"
2685
+ },
2686
+ "me": {
2687
+ "verification": {
2688
+ "title": "邮箱验证",
2689
+ "checking": "正在检查…",
2690
+ "signInToManage": "登录以管理邮箱验证。",
2691
+ "yourEmail": "您的邮箱",
2692
+ "verified": "✓ {{email}} 已验证。",
2693
+ "notVerified": "{{email}} 尚未验证。验证后即可成为符合资格的官方计分员。",
2694
+ "resend": "重新发送验证邮件",
2695
+ "sent": "验证邮件已发送 — 请查看您的收件箱。",
2696
+ "sendFailed": "无法发送邮件。请稍后重试。"
2697
+ }
2698
+ },
2699
+ "crowd": {
2700
+ "trackers": "众包跟踪者",
2701
+ "trackersFor": "众包跟踪者 — {{label}}",
2702
+ "loading": "正在加载…",
2703
+ "close": "关闭",
2704
+ "cancel": "取消",
2705
+ "promote": "提升",
2706
+ "demote": "降级",
2707
+ "noActiveTrackers": "没有活跃的众包跟踪者",
2708
+ "activeTrackers_one": "{{count}} 个活跃跟踪者",
2709
+ "activeTrackers_other": "{{count}} 个活跃跟踪者",
2710
+ "viewTrackers": "查看众包跟踪者 ({{count}})",
2711
+ "setDelegatedOutcome": "设置委托结果",
2712
+ "confirmDelegatedOutcome": "确认委托结果",
2713
+ "badge": {
2714
+ "official": "官方",
2715
+ "participant": "参赛者",
2716
+ "crowd": "众包",
2717
+ "anon": "匿名",
2718
+ "verified": "已验证",
2719
+ "nominated": "已提名"
2720
+ },
2721
+ "reason": {
2722
+ "signInRequired": "需要登录才能被提名",
2723
+ "emailNotVerified": "邮箱未验证 — 无法提名"
2724
+ },
2725
+ "toast": {
2726
+ "nominateFirst": "在设置委托结果前,请先提名一位已验证的计分员。",
2727
+ "noOutcomeToConfirm": "此比赛没有可确认的委托结果。"
2728
+ },
2729
+ "tooltip": {
2730
+ "liveTracker": "通过实时跟踪器上报比分",
2731
+ "unconfirmed": "未确认的委托比分 — 确认后即为官方比分",
2732
+ "unconfirmedAria": "未确认的委托比分,等待确认"
2733
+ }
2734
+ },
2735
+ "providerSetup": {
2736
+ "wizardTitle": "设置您的服务商",
2737
+ "progress": "第 {{current}} 步,共 {{total}} 步",
2738
+ "back": "返回",
2739
+ "skip": "跳过",
2740
+ "next": "下一步",
2741
+ "finish": "完成",
2742
+ "identity": {
2743
+ "title": "品牌与标识",
2744
+ "intro": "让我们设置您的组织在整个平台上的呈现方式。我们将带您完成几个快速步骤 — 您可以跳过任何一步,稍后再更改。"
2745
+ },
2746
+ "displayName": {
2747
+ "title": "设置您的显示名称",
2748
+ "intro": "在导航栏和页面标题中显示以代替“TMX”的名称。"
2749
+ },
2750
+ "brandColors": {
2751
+ "title": "设置您的品牌颜色",
2752
+ "intro": "在下方选择您的品牌颜色 — 每种颜色都会更新应用中相应的部分。如需完全控制,请使用高级。",
2753
+ "advanced": "高级 — 原始令牌覆盖和主题文件",
2754
+ "downloadTemplate": "下载主题模板(.css)"
2755
+ },
2756
+ "logo": {
2757
+ "title": "上传徽标",
2758
+ "intro": "粘贴图片 URL,或上传 PNG/JPG/WebP/GIF 作为您的导航栏和启动画面徽标。"
2759
+ },
2760
+ "privacy": {
2761
+ "title": "配置参赛者隐私",
2762
+ "intro": "选择发布哪些参赛者详情。所有内容默认为私密。"
2763
+ }
2764
+ },
2765
+ "providerPolicies": {
2766
+ "title": "策略",
2767
+ "intro": "从您的策略目录中为每种类型选择一个策略。在策略页面创建或编辑策略。",
2768
+ "rankingPoints": "排名积分策略",
2769
+ "privacy": "参赛者隐私策略",
2770
+ "keepCurrent": "— 保持当前 —",
2771
+ "none": "— 无 —",
2772
+ "clear": "— 清除 —",
2773
+ "manage": "管理策略",
2774
+ "privacyApplyExisting": "应用到现有赛事",
2775
+ "privacyIncludeInProgress": "同时应用到进行中的赛事",
2776
+ "privacySaveFirst": "请先保存您的隐私策略更改,然后再应用到现有赛事。",
2777
+ "privacyNoPolicy": "请先选择并保存一个参赛者隐私策略。",
2778
+ "privacyApplyFailed": "无法将隐私策略应用到现有赛事。",
2779
+ "privacyApplyResult": "隐私策略已应用到 {{attached}} 项赛事;{{already}} 项已有;{{failed}} 项失败。"
2559
2780
  },
2560
- "recoveryEmail": "__TODO__",
2561
- "recoveryEmailHelp": "__TODO__",
2562
- "verified": "__TODO__",
2563
- "unverified": "__TODO__",
2564
- "sendVerification": "__TODO__",
2565
- "verificationSent": "__TODO__",
2566
- "alreadyVerified": "__TODO__",
2567
- "noRecoveryEmail": "__TODO__"
2781
+ "cns": "控制台"
2568
2782
  }