From f7478ab3463d64785a708518519832d501dbfbcc Mon Sep 17 00:00:00 2001 From: Macesuted <57275149+Macesuted@users.noreply.github.com> Date: Sat, 27 Mar 2021 14:17:29 +0800 Subject: [PATCH] update translation (#64) Co-authored-by: Macesuted --- packages/better-search/locale/zh.yaml | 1 + packages/better-search/script.ts | 2 +- packages/hydrojudge/locales/zh.yaml | 10 +++ packages/hydrojudge/setting.yaml | 33 +++++--- packages/hydrojudge/src/hosts/vj4.ts | 2 +- packages/hydrooj/locales/ko.yaml | 2 +- packages/hydrooj/locales/zh.yaml | 56 ++++++++++++- packages/hydrooj/src/model/setting.ts | 92 +++++++++++----------- packages/hydrooj/src/script/problemStat.ts | 2 +- packages/import-qduoj/locale/zh.yaml | 1 + packages/migrate-hustoj/locale/zh.yaml | 1 + packages/migrate-vijos/locale/zh.yaml | 1 + 12 files changed, 141 insertions(+), 62 deletions(-) create mode 100644 packages/better-search/locale/zh.yaml create mode 100644 packages/import-qduoj/locale/zh.yaml create mode 100644 packages/migrate-hustoj/locale/zh.yaml create mode 100644 packages/migrate-vijos/locale/zh.yaml diff --git a/packages/better-search/locale/zh.yaml b/packages/better-search/locale/zh.yaml new file mode 100644 index 000000000..38d2a674f --- /dev/null +++ b/packages/better-search/locale/zh.yaml @@ -0,0 +1 @@ +Ensure index for problem search: 初始化 better-search 插件 \ No newline at end of file diff --git a/packages/better-search/script.ts b/packages/better-search/script.ts index 0a66c376d..54deed888 100644 --- a/packages/better-search/script.ts +++ b/packages/better-search/script.ts @@ -2,7 +2,7 @@ import nodejieba from 'nodejieba'; import { Pdoc } from 'hydrooj'; import * as document from 'hydrooj/dist/model/document'; -export const description = 'Ensure index for peoblem search'; +export const description = 'Ensure index for problem search'; export async function run() { await document.coll.find({ docType: document.TYPE_PROBLEM }).forEach(async (doc: Pdoc) => { diff --git a/packages/hydrojudge/locales/zh.yaml b/packages/hydrojudge/locales/zh.yaml index 2ad7ec6b5..7644ace78 100644 --- a/packages/hydrojudge/locales/zh.yaml +++ b/packages/hydrojudge/locales/zh.yaml @@ -7,18 +7,28 @@ Cannot find output file {0}.: 找不到输出文件 {0}。 Cannot find user extra file {0}.: 找不到用户额外文件 {0}。 Cannot parse testdata.: 无法解析测试数据。 Checker returned {0}.: 比较器返回了{0}。 +Disable builtin judge: 禁用内置评测机 Executable file not found.: 没有找到可执行文件。 Found {0} testcases.: 识别到 {0} 个测试点。 Invalid judge_extra_files config.: 无效的 judge_extra_files 配置。 Invalid user_extra_files config.: 无效的 user_extra_files 配置。 +Max testcases per problem: 单题最多测试点数量 Problem data not found.: 没有找到测试数据。 Read {0}, expect {1}.: 读取到 {0},应为 {1}。 +Retry delay sec: 重试间隔(秒) +Runner parallelism: 评测机运行进程数 Sandbox Error: 沙箱错误 +Sandbox Host: 沙箱地址 Standard answer longer than user output.: 标准输出比选手输出长。 +Stdout/Stderr size: 标准输出/错误流输出大小限制 +Temp directory: 临时目录 +Testdata cache directory: 测试数据缓存目录 Testdata configuration incorrect.: 题目配置错误。 +Tmpfs size: tmpfs 分区大小 Too many files.: 文件过多。 Too many testcases. Cancelled.: 测试数据过多。评测取消。 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}。 diff --git a/packages/hydrojudge/setting.yaml b/packages/hydrojudge/setting.yaml index 13331a25d..0f9980f3b 100644 --- a/packages/hydrojudge/setting.yaml +++ b/packages/hydrojudge/setting.yaml @@ -1,46 +1,57 @@ sandbox_host: type: text - name: Sandbox Host + name: sandbox_host + desc: Sandbox Host default: http://localhost:5050 tmp_dir: type: text - name: Temp directory + name: tmp_dir + desc: Temp directory default: $TEMP/hydro/judge.tmp tmpfs_size: type: text - name: Tmpfs size + name: tmpfs_size + desc: Tmpfs size default: 256m stdio_size: type: text - name: Stdout/Stderr size + name: stdio_size + desc: Stdout/Stderr size default: 32m testcases_max: type: number - name: Max testcases per problem + name: testcases_max + desc: Max testcases per problem default: 100 total_time_limit: type: number - name: Total time limit per problem + name: total_time_limit + desc: Total time limit per problem default: 60 retry_delay_sec: type: number - name: Retry delay sec + name: retry_delay_sec + desc: Retry delay sec default: 15 cache_dir: type: text - name: Testdata cache directory + name: cache_dir + desc: Testdata cache directory default: $HOME/.cache/hydro/judge parallelism: type: number - name: Runner parallelism + name: parallelism + desc: Runner parallelism default: 2 disable: type: boolean - name: Disable builtin judge + name: disable + desc: Disable builtin judge default: false langs: type: textarea - name: Language file settings + name: langs + desc: Language file settings default: | ccWithoutO2: # Do not remove this entry type: compiler diff --git a/packages/hydrojudge/src/hosts/vj4.ts b/packages/hydrojudge/src/hosts/vj4.ts index 60cef1ee0..36dd55b3d 100644 --- a/packages/hydrojudge/src/hosts/vj4.ts +++ b/packages/hydrojudge/src/hosts/vj4.ts @@ -166,7 +166,7 @@ class JudgeTask { this.ws.send(JSON.stringify({ key: 'next', tag: this.tag, - judge_text: '自豪的采用HydroJudge(https://github.com/hydro-dev/Hydro)进行评测。', + judge_text: '自豪的采用 HydroJudge(https://github.com/hydro-dev/Hydro) 进行评测。', })); if (data.message !== undefined) { data.judge_text = data.message; diff --git a/packages/hydrooj/locales/ko.yaml b/packages/hydrooj/locales/ko.yaml index 386adccde..ce9c1da7c 100644 --- a/packages/hydrooj/locales/ko.yaml +++ b/packages/hydrooj/locales/ko.yaml @@ -38,7 +38,7 @@ __langname: 한국어 'We use Gravatar to present your avatar icon.': 'Gravatar를 만들어 보세요.' 'Yes': 예 "Effects only when Difficulty is not 'Use algorithm calculated'.": 난이도가 알고리즘에 의해 정해지지 않은 경우에만 적용됩니다. -"Splitted by ', '.": “, ”“,”으로 구분 +"Split by ', '.": “, ”“,”으로 구분 "What's file?": 파일? (All Problems): (전체 문제) (None): (N/A) diff --git a/packages/hydrooj/locales/zh.yaml b/packages/hydrooj/locales/zh.yaml index 7ca97a393..d26fb5b0a 100644 --- a/packages/hydrooj/locales/zh.yaml +++ b/packages/hydrooj/locales/zh.yaml @@ -38,7 +38,7 @@ __langname: 简体中文 'We use Gravatar to present your avatar icon.': '我们使用 Gravatar 服务来呈现您的头像。' 'Yes': 是 "Effects only when Difficulty is not 'Use algorithm calculated'.": 仅当难度不为“使用算法计算”时才起效。 -"Splitted by ', '.": 由“, ”或“,”分隔。 +"Split by ',' '.'": 由“, ”或“,”分隔。 "What's file?": 什么是文件? (All Problems): (所有题目) (None): (无) @@ -55,6 +55,7 @@ Accepted: 已通过 Access Control: 访问控制 Action: 动作 Active Sessions: 活动会话 +Add blacklist by ip, uid: 封禁 IP / 将对应 uid 的用户拉入黑名单 Add module: 添加模块 Add new data: 添加新数据 Add User: 添加用户 @@ -66,6 +67,7 @@ All Homeworks: 所有作业 All Submissions: 所有递交 All Training Plans: 所有训练计划 All: 全部 +Allow builtin-login: 启用内置登录 Always granted all privileges: 总是拥有所有权限 An error has occurred.: 发生了一个错误。 An example of dataset: 测试数据集的一个例子 @@ -97,6 +99,7 @@ By Contest: 由比赛 By Problem: 由题目 By signing up a Hydro universal account, you can submit code and join discussions in all online judging services provided by us.: 注册一个 Hydro 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。 By Username / UID: 由用户名或 UID +Calculate rp of a domain, or all domains: 计算用户的 RP Calendar View: 日历视图 Calendar: 日历 Can be Extended For: 可延期 @@ -104,6 +107,7 @@ Cancel Score: 取消成绩 Cancel: 取消 Categories: 分类 Category: 分类 +CDN Prefix: CDN 路径前缀 Change Email: 修改电子邮件 Change Password: 修改密码 Chinese: 中文 @@ -145,6 +149,8 @@ contest_edit: 编辑比赛 contest_main: 比赛 contest_scoreboard: 比赛成绩表 Contest: 比赛 +Contests on main: 主页展示的比赛数量 +Contests per page: 每页展示的比赛数量 Continue: 继续 Contributed Problems: 贡献的题目 Contributions: 贡献 @@ -192,6 +198,9 @@ Day: 日 Deadline: 截止时间 Default Code Language: 默认代码语言 Default Code Template: 默认代码模板 +Default display language: 默认显示语言 +Default Privilege: 用户默认全站权限 +Delete a user: 删除用户 Delete discussion replies of own discussion: 删除自己讨论中的回复 Delete discussion replies: 删除讨论回复 Delete discussions: 删除讨论 @@ -226,6 +235,8 @@ discussion_edit: 编辑讨论 discussion_main: 讨论 discussion_node: 讨论 Discussion: 讨论 +Discussions on main: 主页展示的讨论数量 +Discussions per page: 每页展示的讨论数量 Discussions: 讨论 Display name {1} you want to set is used by others.: 您想要设置的显示名 {1} 已经被其他人使用了。 Display Name: 显示名 @@ -288,6 +299,8 @@ Enabled: 开启 End at: 结束于 End Date: 结束日期 End Time: 结束时间 +EndPoint for judge: 提供给评测机的 EndPoint +EndPoint for user: 提供给用户的 EndPoint English: 英文 Enroll Training: 参加训练 Enrolled: 已参加 @@ -344,15 +357,20 @@ homework_main: 作业 homework_scoreboard: 作业成绩表 homework_status: 作业成绩表 Homework: 作业 -Host: 主持人 +Homeworks on main: 主页展示的作业数量 +Homeworks per page: 每页展示的作业数量 +Host: 主办人 hour(s): 小时 If enabled, source code will be emailed to you after the submission is accepted.: 如果启用,在您通过题目后,源代码会以 Email 的形式发送给您。 If left blank, the built-in template of the corresponding language will be used.: 若留空,则将使用对应语言的内置代码模板。 Images: 图片 +Import From Hydro: 从 Hydro 导入 +Import From SYZOJ: 从 SYZOJ 导入 Import From SYZOJ.: 从 SYZOJ 导入 Import from: 导入自 Import problem from syzoj.: 从运行 syzoj 系统的 OJ 导入题目。 Import Problem: 导入题目 +Import User: 导入用户 Import: 导入 In 1 day: 一天后 In 1 month: 一个月后 @@ -364,6 +382,7 @@ In following homework: 在以下作业中 In following training plans: 在下列训练计划中 In Progress: 进行中 Information: 信息 +Init Discussion Nodes: 初始化讨论结点 Initialize: 初始化 Inline codes: 行内代码 Inline formulas: 行内公式 @@ -388,6 +407,9 @@ Judged At: 评测时间 Judged By: 评测机 Judging Queue: 评测队列 Keep current expiration: 保持当前过期设置 +LANG_TEXTS: 编译语言代号 -> 语言名称 +Language file settings: 评测机语言(langs.yaml) +Language Highlight ID: 编译语言代号 -> 高亮语言代号 Language: 语言 last active at: 最后活动于 last login at: 最后登录于 @@ -413,6 +435,7 @@ Logout This Session: 注销该会话 Logout: 登出 Lost Password: 忘记密码 Lucky: 手气不错 +Mail From: 发件人 manage_dashboard: 控制面板 manage_join_applications: 加域申请 manage_module: 管理模块 @@ -457,6 +480,7 @@ No Permission to Submit: 您没有权限递交 No problem.: 没有题目。 No solutions so far...: 目前还没有题解... No Submissions: 没有递交 +No testdata at current.: 暂无测试数据。 No user is allowed to join this domain: 没有用户可以自助加入此域 no_translation_warn: '' None: 无 @@ -514,6 +538,7 @@ perm_training: 训练 Permission: 权限 Permissions: 权限 Pick a problem randomly based on current filter: 根据当前过滤条件随机选择一道题 +pid: 题目 ID Plan: 计划 Please attend contest to see the problems.: 请参加比赛来查看题目。 Please claim the assignment to see the problems.: 认领作业后才可以查看作业内容。 @@ -523,8 +548,10 @@ Pretest Data: 自测数据 Pretest Your Code: 使用自定义数据测试 Pretest: 自测 Pretest?: 自测? +Preview: 预览 Privacy: 隐私 Problem {1} not found.: 题目 {1} 不存在。 +Problem Categories: 题目标签 Problem Data: 题目数据 Problem Description: 题目描述 Problem ID List: 题目 ID 列表 @@ -552,6 +579,7 @@ problem.import.input_format: '## 输入格式' problem.import.limit_and_hint: '## 限制' problem.import.output_format: '## 输出格式' problem.import.problem_description: '## 题目描述' +Problems per page: 每页展示的题目数量 Problems Sets: 题库 Problems: 题目 Profile Background Image: 背景图片 @@ -565,10 +593,12 @@ Quit Scratchpad: 退出在线编程模式 Quote: 引用 Rank: 排名 ranking: 排名 +Recalculates nSubmit and nAccept in problem status.: 重新计算每道题目的 AC 量和提交量 Recommended: 推荐 Record {0} not found.: 记录 {0} 不存在。 record_detail: 记录详情 record_main: 评测队列 +Records per page: 每页展示的评测记录数量 Records: 评测记录 Refresh Records: 刷新评测记录 Refresh: 刷新 @@ -583,6 +613,7 @@ Remove Selected User: 将所选用户移出 Remove this data: 移除这组数据 Remove: 移除 Repeat Password: 重复密码 +Replies per page: 每页展示的回复数量 Reply discussions: 回复讨论 Reply problem solutions: 回复题解 reply: 回复 @@ -607,6 +638,7 @@ Sample Input: 输入数据 Sample Output: 输出数据 Sample: 样例 Save All Changes: 保存所有修改 +Saved session expire seconds: 保存的会话的过期秒数 Saved session: 已保存的会话 score canceled: 成绩取消 Score: 分数 @@ -626,15 +658,18 @@ Selected users have been removed from the domain.: 所选用户已从此域中 Send Code after acceptance: 通过题目后发送源代码 Send Message: 发送站内信息 Send Password Reset Email: 发送密码重置邮件 +Send Problem: 发送题目 Send Verification Email: 发送验证邮件 Send: 发送 Service Status: 服务状态 Set Role: 设置角色 Set Roles for Selected User: 设置所选用户的角色 Set Roles for selected users: 为所选用户设置角色 +setting_basic: 基础设置 setting_customize: 个性化 setting_display: 显示偏好 setting_domain: 域设置 +setting_file: 存储桶设置 setting_info_domain: 个人信息 setting_info: 个人信息 setting_privacy: 隐私 @@ -654,6 +689,11 @@ Sign up mail has been sent to your email.: 注册邮件已经发送到您的垃 Sign Up Now: 现在注册 Sign Up: 注册 Size: 大小 +SMTP Password: SMTP 密码 +SMTP Server Host: SMTP 服务器地址 +SMTP Server Port: SMTP 服务器端口 +SMTP Username: SMTP 用户名 +Solutions per page: 每页展示的题解数量 Sorry: 对不起 Sort by: 排序 Source type: 来源类型 @@ -664,6 +704,11 @@ Statistics: 统计 Status is hidden: 状态已隐藏 status: 状态 Status: 状态 +Storage engine accessKey: 存储桶 accessKey +Storage engine bucket: 存储桶名称 +Storage engine endPoint: 存储桶 endPoint +Storage engine region: 存储桶地域 +Storage engine secret: 存储桶 secretKey Submission Statistics: 递交统计 Submission: 递交 Submissions: 递交 @@ -671,6 +716,7 @@ Submit: 递交 Submitted: 已递交 Support: 支持 Tags: 标签 +Target: 目标 Technical Information: 技术信息 Temporary session: 临时会话 Terms of Service: 服务条款 @@ -695,6 +741,7 @@ This homework is not open.: 该作业还未开放递交。 This is the current session: 这是当前的会话 This message will be presented to those whose submissions are accepted.: 这条消息将会被展示给通过此题的用户。 This page needs JavaScript to work.: 这个页面需要 Javascript。 +This person is lazy and didn't wrote anything.: 该用户太懒,这里啥也没写 (´・ω・`) This section cannot be challenged at present, so please complete the following sections first: 该章节目前不可挑战,请先完成以下章节 This type of files are not allowed to be uploaded.: 不允许上传这种文件。 Time (Seconds): 耗时 (秒) @@ -718,6 +765,8 @@ training_detail: 训练详情 training_edit: 编辑训练 training_main: 训练 Training: 训练 +Trainings on main: 主页展示的训练数量 +Trainings per page: 每页展示的训练数量 Type: 类型 UI Language: 用户界面语言 Uncompleted: 未完成 @@ -725,6 +774,7 @@ Unique: 唯一 Unknown field {0}.: 未知字段 {0}。 Unknown: 未知 Unordered List: 无序列表 +Unsaved session expire seconds: 未保存的会话的过期秒数 Unstar Topic: 取消收藏 Unstar: 取消收藏 Update Permission: 更新权限 @@ -798,6 +848,8 @@ What's this?: 这是什么? Whether to show tags in the problem list.: 是否在题目列表中显示题目的标签。 Will be used as the domain icon.: 将被用作系统图标。 With this feature, you can copy problems that you can view from a domain to some other domain. Their title, content, tags and categories will be copied. However, their test data are not copied directly.: 您可以通过这个功能将某域下您能查看的题目复制到其它域中,题目的标题、描述、标签与分类将被复制过来。但是测试数据不会被直接复制。 +With this feature, you can import problems that you can view from a site to here. Their title, content, tags and categories will be imported. However, their test data are not copied directly.: 您可以通过这个功能将其他 OJ 的题目导入到本站。题目的标题、题面、标签和分类将会被直接导入,测试数据将会在后台自动导入。 +With this feature, you can import problems that you can view from a site to here. Their title, content, tags and categories will be imported.: 您可以通过这个功能将其他 OJ 的题目导入到本站。题目的标题、题面、标签和分类都将会被自动导入。 Write Your Comment: 发表您的评论 Write Your Solution: 发表您的题解 Year: 年 diff --git a/packages/hydrooj/src/model/setting.ts b/packages/hydrooj/src/model/setting.ts index d5d3ec60c..fd8175457 100644 --- a/packages/hydrooj/src/model/setting.ts +++ b/packages/hydrooj/src/model/setting.ts @@ -128,7 +128,7 @@ DomainSetting( ); DomainUserSetting( - Setting('setting_info', 'displayName', null, 'text', 'display name'), + Setting('setting_info', 'displayName', null, 'text', 'Display Name'), Setting('setting_storage', 'nAccept', 0, 'number', 'nAccept', null, FLAG_HIDDEN | FLAG_DISABLED), Setting('setting_storage', 'nSubmit', 0, 'number', 'nSubmit', null, FLAG_HIDDEN | FLAG_DISABLED), Setting('setting_storage', 'nLike', 0, 'number', 'nLike', null, FLAG_HIDDEN | FLAG_DISABLED), @@ -138,50 +138,52 @@ DomainUserSetting( ); SystemSetting( - Setting('setting_file', 'file.endPoint', null, 'text', 'Storage engine endPoint'), - Setting('setting_file', 'file.accessKey', null, 'text', 'Storage engine accessKey'), - Setting('setting_file', 'file.secretKey', null, 'password', 'Storage engine secret', null, FLAG_SECRET), - Setting('setting_file', 'file.bucket', 'hydro', 'text', 'Storage engine bucket'), - Setting('setting_file', 'file.region', 'us-east-1', 'text', 'Storage engine region'), - Setting('setting_file', 'file.endPointForUser', '/fs/', 'text', 'EndPoint for user'), - Setting('setting_file', 'file.endPointForJudge', '/fs/', 'text', 'EndPoint for judge'), - Setting('setting_smtp', 'smtp.user', null, 'text', 'SMTP Username'), - Setting('setting_smtp', 'smtp.pass', null, 'password', 'SMTP Password', null, FLAG_SECRET), - Setting('setting_smtp', 'smtp.host', null, 'text', 'SMTP Server Host'), - Setting('setting_smtp', 'smtp.port', 465, 'number', 'SMTP Server Port'), - Setting('setting_smtp', 'smtp.from', null, 'text', 'Mail From'), - Setting('setting_smtp', 'smtp.secure', false, 'boolean', 'SSL'), - Setting('setting_server', 'server.name', 'Hydro', 'text', 'Server Name'), - Setting('setting_server', 'server.worker', 1, 'number', 'Server Workers Number'), - Setting('setting_server', 'server.hostname', 'oj.undefined.moe', 'text', 'Server Hostname'), - Setting('setting_server', 'server.host', 'oj.undefined.moe', 'text', 'Server Host'), - Setting('setting_server', 'server.url', '/', 'text', 'Server BaseURL'), - Setting('setting_server', 'server.cdn', '/', 'text', 'CDN Prefix', 'Ends with /'), - Setting('setting_server', 'server.port', 8888, 'number', 'Server Port'), - Setting('setting_server', 'server.xff', null, 'text', 'IP Header', 'e.g. x-forwarded-for (lowercase)'), - Setting('setting_server', 'server.language', 'zh_CN', langRange, 'Default display language'), - Setting('setting_server', 'server.login', true, 'boolean', 'Allow builtin-login'), - Setting('setting_basic', 'default.priv', builtin.PRIV.PRIV_DEFAULT, 'number', 'Default Privilege'), - Setting('setting_basic', 'problem.categories', builtin.CATEGORIES, 'yaml', 'Problem Categories'), - Setting('setting_basic', 'lang.texts', builtin.LANG_TEXTS, 'yaml', 'LANG_TEXTS'), - Setting('setting_basic', 'pagination.problem', 100, 'number', 'Problems per page'), - Setting('setting_basic', 'pagination.contest', 20, 'number', 'Contests per page'), - Setting('setting_basic', 'pagination.discussion', 50, 'number', 'Discussions per page'), - Setting('setting_basic', 'pagination.record', 100, 'number', 'Records per page'), - Setting('setting_basic', 'pagination.solution', 20, 'number', 'Solutions per page'), - Setting('setting_basic', 'pagination.training', 10, 'number', 'Trainings per page'), - Setting('setting_basic', 'pagination.reply', 50, 'number', 'Replies per page'), - Setting('setting_basic', 'pagination.homework_main', 5, 'number', 'Homeworks on main'), - Setting('setting_basic', 'pagination.contest_main', 10, 'number', 'Contests on main'), - Setting('setting_basic', 'pagination.training_main', 10, 'number', 'Trainings on main'), - Setting('setting_basic', 'pagination.discussion_main', 20, 'number', 'Discussions on main'), - Setting('setting_session', 'session.keys', [String.random(32)], 'text', 'session.keys', null, FLAG_HIDDEN), - Setting('setting_session', 'session.secure', false, 'boolean', 'session.secure'), - Setting('setting_session', 'session.saved_expire_seconds', 3600 * 24 * 30, 'number', 'Saved session expire seconds'), - Setting('setting_session', 'session.unsaved_expire_seconds', 3600 * 3, 'number', 'Unsaved session expire seconds'), - Setting('setting_storage', 'db.ver', 0, 'number', 'Database version', null, FLAG_DISABLED | FLAG_HIDDEN), - Setting('setting_storage', 'user', 1, 'number', 'User Counter', null, FLAG_DISABLED | FLAG_HIDDEN), - Setting('setting_storage', 'installid', String.random(64), 'text', 'Installation ID', null, FLAG_HIDDEN | FLAG_DISABLED), + Setting('setting_file', 'file.endPoint', null, 'text', 'file.endPoint', 'Storage engine endPoint'), + Setting('setting_file', 'file.accessKey', null, 'text', 'file.accessKey', 'Storage engine accessKey'), + Setting('setting_file', 'file.secretKey', null, 'password', 'file.secretKey', 'Storage engine secret', FLAG_SECRET), + Setting('setting_file', 'file.bucket', 'hydro', 'text', 'file.bucket', 'Storage engine bucket'), + Setting('setting_file', 'file.region', 'us-east-1', 'text', 'file.region', 'Storage engine region'), + Setting('setting_file', 'file.endPointForUser', '/fs/', 'text', 'file.endPointForUser', 'EndPoint for user'), + Setting('setting_file', 'file.endPointForJudge', '/fs/', 'text', 'file.endPointForJudge', 'EndPoint for judge'), + Setting('setting_smtp', 'smtp.user', null, 'text', 'smtp.user', 'SMTP Username'), + Setting('setting_smtp', 'smtp.pass', null, 'password', 'smtp.pass', 'SMTP Password', FLAG_SECRET), + Setting('setting_smtp', 'smtp.host', null, 'text', 'smtp.host', 'SMTP Server Host'), + Setting('setting_smtp', 'smtp.port', 465, 'number', 'smtp.port', 'SMTP Server Port'), + Setting('setting_smtp', 'smtp.from', null, 'text', 'smtp.from', 'Mail From'), + Setting('setting_smtp', 'smtp.secure', false, 'boolean', 'smtp.secure', 'SSL'), + Setting('setting_server', 'server.name', 'Hydro', 'text', 'server.name', 'Server Name'), + Setting('setting_server', 'server.worker', 1, 'number', 'server.worker', 'Server Workers Number'), + Setting('setting_server', 'server.hostname', 'oj.undefined.moe', 'text', 'server.hostname', 'Server Hostname'), + Setting('setting_server', 'server.host', 'oj.undefined.moe', 'text', 'server.host', 'Server Host'), + Setting('setting_server', 'server.url', '/', 'text', 'server.url', 'Server BaseURL'), + Setting('setting_server', 'server.cdn', '/', 'text', 'server.cdn', 'CDN Prefix'), + Setting('setting_server', 'server.port', 8888, 'number', 'server.port', 'Server Port'), + Setting('setting_server', 'server.xff', null, 'text', 'server.xff', 'IP Header'), + Setting('setting_server', 'server.language', 'zh_CN', langRange, 'server.language', 'Default display language'), + Setting('setting_server', 'server.login', true, 'boolean', 'server.login', 'Allow builtin-login'), + Setting('setting_basic', 'default.priv', builtin.PRIV.PRIV_DEFAULT, 'number', 'default.priv', 'Default Privilege'), + Setting('setting_basic', 'problem.categories', builtin.CATEGORIES, 'yaml', 'problem.categories', 'Problem Categories'), + Setting('setting_basic', 'lang.texts', builtin.LANG_TEXTS, 'yaml', 'lang.texts', 'LANG_TEXTS'), + Setting('setting_basic', 'pagination.problem', 100, 'number', 'pagination.problem', 'Problems per page'), + Setting('setting_basic', 'pagination.contest', 20, 'number', 'pagination.contest', 'Contests per page'), + Setting('setting_basic', 'pagination.discussion', 50, 'number', 'pagination.discussion', 'Discussions per page'), + Setting('setting_basic', 'pagination.record', 100, 'number', 'pagination.record', 'Records per page'), + Setting('setting_basic', 'pagination.solution', 20, 'number', 'pagination.solution', 'Solutions per page'), + Setting('setting_basic', 'pagination.training', 10, 'number', 'pagination.training', 'Trainings per page'), + Setting('setting_basic', 'pagination.reply', 50, 'number', 'pagination.reply', 'Replies per page'), + Setting('setting_basic', 'pagination.homework_main', 5, 'number', 'pagination.homework_main', 'Homeworks on main'), + Setting('setting_basic', 'pagination.contest_main', 10, 'number', 'pagination.contest_main', 'Contests on main'), + Setting('setting_basic', 'pagination.training_main', 10, 'number', 'pagination.training_main', 'Trainings on main'), + Setting('setting_basic', 'pagination.discussion_main', 20, 'number', 'pagination.discussion_main', 'Discussions on main'), + Setting('setting_session', 'session.keys', [String.random(32)], 'text', 'session.keys', 'session.keys', FLAG_HIDDEN), + Setting('setting_session', 'session.secure', false, 'boolean', 'session.secure', 'session.secure'), + Setting('setting_session', 'session.saved_expire_seconds', 3600 * 24 * 30, + 'number', 'session.saved_expire_seconds', 'Saved session expire seconds'), + Setting('setting_session', 'session.unsaved_expire_seconds', 3600 * 3, + 'number', 'session.unsaved_expire_seconds', 'Unsaved session expire seconds'), + Setting('setting_storage', 'db.ver', 0, 'number', 'db.ver', 'Database version', FLAG_DISABLED | FLAG_HIDDEN), + Setting('setting_storage', 'user', 1, 'number', 'user', 'User Counter', FLAG_DISABLED | FLAG_HIDDEN), + Setting('setting_storage', 'installid', String.random(64), 'text', 'installid', 'Installation ID', FLAG_HIDDEN | FLAG_DISABLED), ); bus.once('app/started', async () => { diff --git a/packages/hydrooj/src/script/problemStat.ts b/packages/hydrooj/src/script/problemStat.ts index 02d01986f..1593c8123 100644 --- a/packages/hydrooj/src/script/problemStat.ts +++ b/packages/hydrooj/src/script/problemStat.ts @@ -3,7 +3,7 @@ import db from '../service/db'; import { STATUS } from '../model/builtin'; import * as document from '../model/document'; -export const description = 'Recalcuates nSubmit and nAccept in problem status.'; +export const description = 'Recalculates nSubmit and nAccept in problem status.'; export async function udoc() { const pipeline = [ diff --git a/packages/import-qduoj/locale/zh.yaml b/packages/import-qduoj/locale/zh.yaml new file mode 100644 index 000000000..2d0704dde --- /dev/null +++ b/packages/import-qduoj/locale/zh.yaml @@ -0,0 +1 @@ +From QDUOJ Export: 从 QDUOJ 导入 \ No newline at end of file diff --git a/packages/migrate-hustoj/locale/zh.yaml b/packages/migrate-hustoj/locale/zh.yaml new file mode 100644 index 000000000..989f26537 --- /dev/null +++ b/packages/migrate-hustoj/locale/zh.yaml @@ -0,0 +1 @@ +migrate from hustoj: 从 HustOJ 导入 \ No newline at end of file diff --git a/packages/migrate-vijos/locale/zh.yaml b/packages/migrate-vijos/locale/zh.yaml new file mode 100644 index 000000000..e66715a60 --- /dev/null +++ b/packages/migrate-vijos/locale/zh.yaml @@ -0,0 +1 @@ +migrate from vijos: 从 Vijos 导入 \ No newline at end of file