ui: fix typo & add stylus style (#1195)

This commit is contained in:
ILoveScratch authored and GitHub committed 2026-08-01 19:11:08 +08:00
1 parent a8ec204a04
commit 52f811cf98
10 files changed
+32 -20

No files matched your search

+1 -1
View File
@@ -135,7 +135,7 @@ export interface TestCase {
time: number;
memory: number;
status: number;
message: string;
message: string | JudgeMessage;
}
export interface JudgeMessage {
+1 -1
View File
@@ -16,7 +16,7 @@ Problem data not found.: 문제 데이터 없음
Read {0}, expect {1}.: '{0}에서 다음을 예상함. {1}'
Standard answer longer than user output.: 출력이 짧습니다.
Testdata configuration incorrect.: TC config 오류
Too many files.: 파일이 너무 많습니다.
Too many files: 파일이 너무 많습니다.
Too many testcases. Cancelled.: TC가 너무 많습니다. 채점을 취소합니다.
Total time limit longer than {0}s. Cancelled.: 총 시간이 {0}초를 넘습니다. 채점을 취소합니다.
Unknown checker type {0}.: Checker 형태 {0}을(를) 식별할 수 없습니다.
+4 -4
View File
@@ -6,7 +6,7 @@ Cannot find judge extra file {0}.: 找不到评测额外文件 {0}。
Cannot find output file {0}.: 找不到输出文件 {0}。
Cannot find user extra file {0}.: 找不到用户额外文件 {0}。
Cannot parse testdata.: 无法解析测试数据。
Checker returned {0}.: 比较器返回了{0}。
Checker returned {0}.: 比较器返回了 {0}。
Disable builtin judge: 禁用内置评测机
Executable file not found.: 没有找到可执行文件。
Found {0} testcases.: 识别到 {0} 个测试点。
@@ -27,13 +27,13 @@ Syncing testdata, please wait...: 正在同步测试数据,请稍候...
Temp directory: 临时目录
Testdata cache directory: 测试数据缓存目录
Testdata configuration incorrect.: 题目配置错误。
Too many files.: 文件过多。
Too many files: 文件过多。
Too many testcases. Cancelled.: 测试数据过多。评测取消。
Total time limit longer than {0}s. Cancelled.: 总时限超过{0}s。评测取消。
Total time limit longer than {0}s. Cancelled.: 总时限超过 {0}s。评测取消。
Total time limit per problem: 单题最多总评测时长
Unknown checker type {0}.: 未知的比较器类型 {0}。
Unknown language type.: 未知的语言类型。
Unsupported language {0}.: 不支持的语言 {0}。
User output longer than standard answer.: 选手输出比标准输出长。
You did not specify a checker.: 你没有指定比较器文件。
Your program returned {0}.: 您的程序返回了{0}。
Your program returned {0}.: 您的程序返回了 {0}。
+1 -1
View File
@@ -27,7 +27,7 @@ Syncing testdata, please wait...: 正在同步測試資料,請稍候...
Temp directory: 臨時目錄
Testdata cache directory: 測試資料快取目錄
Testdata configuration incorrect.: 題目配置錯誤。
Too many files.: 檔案過多。
Too many files: 檔案過多。
Too many testcases. Cancelled.: 測試資料過多。評測取消。
Total time limit longer than {0}s. Cancelled.: 總時限超過{0}s。評測取消。
Total time limit per problem: 單題最多總評測時長
+6 -6
View File
@@ -19,7 +19,7 @@ export interface CheckConfig {
type Checker = (config: CheckConfig) => Promise<{
status: number;
score: number;
message: string;
message: string | { message: string, params?: any[] };
nextPass?: { input: CopyInFile, state?: Record<string, CopyInFile> };
}>;
@@ -32,8 +32,8 @@ function parseDiffMsg(msg: string) {
const lline = meta.split('L=')[1];
if (lline?.trim() === 'EOF') {
const next = u.split('EOF on ')[1].split(' ')[0];
if (next === 'usrout.processed') return 'Standard answer longer than user output.';
if (next === 'answer.processed') return 'User output longer than standard answer.';
if (next === 'usrout.processed') return { message: 'Standard answer longer than user output.', params: [] };
if (next === 'answer.processed') return { message: 'User output longer than standard answer.', params: [] };
return `Unable to parse: ${u}`;
}
const lineNum = +lline;
@@ -42,8 +42,8 @@ function parseDiffMsg(msg: string) {
const std = t.trim().split(' ');
if (std.every((x) => !Number.isNaN(+x))) {
// Number mode, report length not match
if (usr.length > std.length) return 'User output longer than standard answer.';
if (usr.length < std.length) return 'Standard answer longer than user output.';
if (usr.length > std.length) return { message: 'User output longer than standard answer.', params: [] };
if (usr.length < std.length) return { message: 'Standard answer longer than user output.', params: [] };
}
for (let i = 0; i < usr.length; i++) {
if (usr[i] === std[i]) continue;
@@ -119,7 +119,7 @@ const getDefaultChecker = (strict: boolean) => async (config: CheckConfig) => {
status = STATUS.STATUS_WRONG_ANSWER;
if (config.detail === 'full') message = parseDiffMsg(stdout);
} else status = STATUS.STATUS_ACCEPTED;
if (message.length > 1024000) message = '';
if (typeof message === 'string' && message.length > 1024000) message = '';
return {
score: status === STATUS.STATUS_ACCEPTED ? config.score : 0,
status,
+2 -2
View File
@@ -94,7 +94,7 @@ export class JudgeTask {
status: STATUS.STATUS_COMPILE_ERROR, score: 0, time: 0, memory: 0,
});
} else if (e instanceof FormatError) {
this.next({ message: 'Testdata configuration incorrect.' });
this.next({ message: { message: 'Testdata configuration incorrect.', params: [] } });
this.next({ message: { message: e.message, params: e.params } });
this.end({
status: STATUS.STATUS_FORMAT_ERROR, score: 0, time: 0, memory: 0,
@@ -144,7 +144,7 @@ export class JudgeTask {
if (filenames.length) {
span.setAttribute('files', filenames);
logger.info(`Getting problem data: ${this.session?.config.host || 'local'}/${source}`);
this.next({ message: 'Syncing testdata, please wait...' });
this.next({ message: { message: 'Syncing testdata, please wait...', params: [] } });
this.mainContext = trace.setSpan(context.active(), span);
await this.session.fetchFile(source, Object.fromEntries(
files.filter((i) => filenames.includes(i.name))
+4 -2
View File
@@ -6,7 +6,7 @@ __langname: 简体中文
'{0} {1} delete your discussion reply {2} in "{3}"({4}).': '{0} {1} 从讨论 {3}({4}) 删除了你的回复 {2}。'
'{0} comments': '{0} 条评论'
'{0} discussions': '{0} 条讨论'
'{0} is a moderator of this domain.': '{}是这个域的管理者之一。'
'{0} is a moderator of this domain.': '{0}是这个域的管理者之一。'
'{0} limit exceeded (limit: {2} operations in {1} seconds).': '{0} 超过频率限制。限制:{1} 秒内最多 {2} 次操作。'
'{0} problems': '{0} 道题'
'{0} sections': '{0} 小节'
@@ -29,11 +29,12 @@ __langname: 简体中文
'Current dataset: {0}': '当前测试数据: {0}'
'Discussion: Terms Of Service': 讨论区服务条款
'First Blood Notice\n{0} solved problem {1} ({2})': '题目一血提示\n{0} 解决了题目 {1} ({2})'
'Format: category 1, sub category 1.1, sub category 1.2, ..., sub category 1.x, ..., category n, sub category n.1, sub category n.2, ..., sub category n.m, ...': 格式:分类1, 子分类1.1, 子分类1.2, ..., 子分类1.x, ..., 分类n, 子分类n.1, 子分类n.2, ..., 子分类n.m, ...
'Format: category 1, sub category 1.1, sub category 1.2, ..., sub category 1.x, ..., category n, sub category n.1, sub category n.2, ..., sub category n.m, ...': 格式:分类 1, 子分类 1.1, 子分类 1.2, ..., 子分类 1.x, ..., 分类 n, 子分类 n.1, 子分类 n.2, ..., 子分类 n.m, ...
'Format: one group per line, CSV: groupName,uid1,uid2,...': '格式:每行一个小组,CSV:组名,UID1,UID2,...'
'Join {0}': '加入 {0}'
'No': 否
'Note: Problem title may not be hidden.': 注意:题目标题可能不会被隐藏。
'On line {0}: Read {1}, expect {2}.': 第 {0} 行的答案错误,读取到 {1},但期望 {2}。
'Or upload a file:': 或者上传一个文件:
'Original score: {0}': '原得分: {0}'
'Role {1} already exists in domain {0}.': '域 {0} 中已存在角色 {1}。'
@@ -764,6 +765,7 @@ Sorry: 对不起
Sort by: 排序
Source type: 来源类型
Split View: 分屏预览
Standard answer longer than user output.: 答案比您的输出长。
Star Topic: 收藏讨论
Star: 收藏
Starred Problems: 收藏的题目
+2 -2
View File
@@ -486,7 +486,7 @@ class OauthCallbackHandler extends Handler {
if (this.session.oauthBind === args.type) {
delete this.session.oauthBind;
if (existing.some((id) => id && id !== this.user._id)) {
throw new BadRequestError('Already binded to another account');
throw new BadRequestError('Already bound to another account');
}
this.response.redirect = this.session.oauthRedirect || this.url('home_security');
delete this.session.oauthRedirect;
@@ -508,7 +508,7 @@ class OauthCallbackHandler extends Handler {
delete this.session.oauthRedirect;
return;
}
if (!provider.canRegister) throw new ForbiddenError('No binded account found');
if (!provider.canRegister) throw new ForbiddenError('No bound account found');
this.checkPriv(PRIV.PRIV_REGISTER_USER);
let username = '';
r.uname ||= [];
@@ -200,7 +200,7 @@
<div style="display: none" class="contest-rule-settings contest-rule--oi contest-rule--ioi contest-rule--ledo contest-rule--strictioi">
{{ form.form_text({
columns:4,
label:'Flexable Duration',
label:'Flexible Duration',
name:'contestDuration',
placeholder:_('(leave blank if none)'),
value:tdoc.duration|default(''),
+10
View File
@@ -119,6 +119,9 @@ $hover-background-color = #424242
.sidebar-user-profile .user-profile-name
color: #bbb
.section__tab-header-item
color: #d8e0e6 !important
.section__tab-header-item:hover
background-color: #171717
@@ -275,6 +278,9 @@ $hover-background-color = #424242
.autocomplete-tag
background-color: #ff0000
.problem__tag-item
color: #d8dee3
.problem__tag-link
background-color: #1f1f1f
color: #aaa!important
@@ -395,3 +401,7 @@ $hover-background-color = #424242
&.page--contest_scoreboard .star-highlight
background: #6f757b
.search-sort
color: #eee
background-color: #1f1f1f