Bin
2025-12-17 d616898802dfe7e5dd648bcf53c6d1f86b6d3642
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import { htmlEscape } from "./html";
 
const URL_CORS_DOCS = "https://labelstud.io/guide/storage.html#Troubleshoot-CORS-and-access-problems";
const URL_TAGS_DOCS = "https://labelstud.io/tags";
 
export default {
  DONE: "完成!",
  NO_COMP_LEFT: "没有更多标注了",
  NO_NEXT_TASK: "队列中没有更多任务了",
  NO_ACCESS: "您没有访问此任务的权限",
 
  CONFIRM_TO_DELETE_ALL_REGIONS: "请确认您要删除所有标记区域",
 
  // Tree validation messages
  ERR_REQUIRED: ({ modelName, field }) => {
    return `<b>${modelName}</b> 需要属性 <b>${field}</b>`;
  },
 
  ERR_UNKNOWN_TAG: ({ modelName, field, value }) => {
    return `名称为 <b>${value}</b> 的标签未注册。由 <b>${modelName}#${field}</b> 引用。`;
  },
 
  ERR_TAG_NOT_FOUND: ({ modelName, field, value }) => {
    return `配置中不存在名称为 <b>${value}</b> 的标签。由 <b>${modelName}#${field}</b> 引用。`;
  },
 
  ERR_TAG_UNSUPPORTED: ({ modelName, field, value, validType }) => {
    return `<b>${modelName}</b> 的属性 <b>${field}</b> 无效:引用的标签是 <b>${value}</b>,但 <b>${modelName}</b> 只能控制 <b>${[]
      .concat(validType)
      .join(", ")}</b>`;
  },
 
  ERR_PARENT_TAG_UNEXPECTED: ({ validType, value }) => {
    return `标签 <b>${value}</b> 必须是 <b>${[].concat(validType).join(", ")}</b> 的子标签之一。`;
  },
 
  ERR_BAD_TYPE: ({ modelName, field, validType }) => {
    return `标签 <b>${modelName}</b> 的属性 <b>${field}</b> 类型无效。有效类型为:<b>${validType}</b>。`;
  },
 
  ERR_INTERNAL: ({ value }) => {
    return `内部错误。请查看浏览器控制台了解更多信息。请重试或联系开发人员。<br/>${value}`;
  },
 
  ERR_GENERAL: ({ value }) => {
    return value;
  },
 
  // Object loading errors
  URL_CORS_DOCS,
  URL_TAGS_DOCS,
 
  ERR_LOADING_AUDIO({ attr, url, error }) {
    return (
      <div data-testid="error:audio">
        <p>
          加载音频时出错。请检查任务中的 <code>{attr}</code> 字段。
        </p>
        <p>技术描述:{error}</p>
        <p>URL: {htmlEscape(url)}</p>
      </div>
    );
  },
 
  ERR_LOADING_S3({ attr, url }) {
    return `
    <div>
      <p>
        从 <code>${attr}</code> 值加载 URL 时出现问题。
        请求参数无效。
        如果您使用的是 S3,请确保指定了正确的存储桶区域名称。
      </p>
      <p>URL: <code><a href="${encodeURI(url)}" target="_blank" rel="noreferrer">${htmlEscape(url)}</a></code></p>
    </div>`;
  },
 
  ERR_LOADING_CORS({ attr, url }) {
    return `
    <div>
      <p>
        从 <code>${attr}</code> 值加载 URL 时出现问题。
        这很可能是因为静态服务器配置了广泛的 CORS。
        <a href="${URL_CORS_DOCS}" target="_blank">点击此处了解更多信息。</a>
      </p>
      <p>
        还请检查:
        <ul>
          <li>URL 是否有效</li>
          <li>网络是否可达</li>
        </ul>
      </p>
      <p>URL: <code><a href="${encodeURI(url)}" target="_blank" rel="noreferrer">${htmlEscape(url)}</a></code></p>
    </div>`;
  },
 
  ERR_LOADING_HTTP({ attr, url, error }) {
    return `
    <div data-testid="error:http">
      <p>
        从 <code>${attr}</code> 值加载 URL 时出现问题
      </p>
      <p>
        需要注意的事项:
        <ul>
          <li>URL 是否有效</li>
          <li>URL 协议与服务协议是否匹配,即 https 和 https</li>
          <li>
            静态服务器具有广泛的 CORS,
            <a href=${URL_CORS_DOCS} target="_blank">更多信息请点击此处</a>
          </li>
        </ul>
      </p>
      <p>
        技术描述:<code>${error}</code>
        <br />
        URL: <code><a href="${encodeURI(url)}" target="_blank" rel="noreferrer">${htmlEscape(url)}</a></code>
      </p>
    </div>`;
  },
};