完善翻译

pull/5/head
undefined 4 years ago
parent 7d3bdc2dd1
commit 2d3cee7753

@ -3,7 +3,7 @@
"files.autoSave": "onFocusChange",
"files.encoding": "utf8",
"files.eol": "\n",
"editor.detectIndentation": false,
"editor.detectIndentation": true,
"editor.tabSize": 4,
"editor.formatOnSave": true,
"editor.renderWhitespace": "boundary"

@ -103,7 +103,6 @@ class HomeSecurityHandler extends Handler {
async get() {
// TODO(iceboy): pagination? or limit session count for uid?
const sessions = await token.getSessionListByUid(this.user._id);
const parsed = [];
for (const session of sessions) {
session.isCurrent = session._id === this.session._id;
session._id = md5(session._id);
@ -111,7 +110,8 @@ class HomeSecurityHandler extends Handler {
if (geoip) session.updateGeoip = geoip.lookup(session.updateIp || session.createIp);
}
this.response.template = 'home_security.html';
this.response.body = { sessions: parsed, geoipProvider: (geoip || {}).provider };
this.response.body = { sessions, geoipProvider: (geoip || {}).provider };
if (useragent) this.response.body.icon = useragent.icon;
}
async postChangePassword({ current, password, verifyPassword }) {
@ -160,6 +160,8 @@ class HomeSettingsHandler extends Handler {
}
async get({ category }) {
// eslint-disable-next-line prefer-destructuring
category = category[0]; // Category would be splitted into array
const path = [
['Hydro', 'homepage'],
[`home_${category}`, null],

@ -127,9 +127,9 @@ class RecordMainConnectionHandler extends RecordConnectionHandler {
// eslint-disable-next-line prefer-const
let [udoc, pdoc] = await Promise.all([
user.getById(this.domainId, rdoc.uid),
problem.get(this.domainId, rdoc.pid),
problem.get(this.domainId, rdoc.pid, null, false),
]);
if (pdoc.hidden && !this.user.hasPerm(PERM_VIEW_PROBLEM_HIDDEN)) pdoc = null;
if (pdoc && pdoc.hidden && !this.user.hasPerm(PERM_VIEW_PROBLEM_HIDDEN)) pdoc = null;
this.send({ html: await this.renderHTML('record_main_tr.html', { rdoc, udoc, pdoc }) });
}
}

@ -23,8 +23,10 @@ const Mark = require('markdown-it-mark');
// :::warn This page requires javascript. :::
// :::record-pass Accepted :::
const Container = require('markdown-it-container');
// FIXME doesn't work for webpack
const Anchor = require('markdown-it-anchor');
let Anchor = require('markdown-it-anchor');
// For webpack
if (Anchor.default) Anchor = Anchor.default;
const TOC = require('markdown-it-table-of-contents');
require('prismjs/components/index');

@ -1,9 +1,11 @@
const browser = require('detect-browser');
function get(str) {
const ua = browser.parseUserAgent(str);
console.log(ua);
return ua;
function parse(str) {
return browser.parseUserAgent(str);
}
global.Hydro.lib.useragent = module.exports = get;
function icon(str) {
return str.split(' ')[0].toLowerCase();
}
global.Hydro.lib.useragent = module.exports = { parse, icon };

@ -1,7 +1,7 @@
const assert = require('assert');
const path = require('path');
const os = require('os');
const cluster = require('cluster');
const _ = require('lodash');
const { ObjectID } = require('bson');
const Koa = require('koa');
const yaml = require('js-yaml');
@ -32,7 +32,10 @@ const _validateObjectId = (id, key) => {
throw new ValidationError(key);
};
const _bool = (val) => !!val;
const _splitAndTrim = (val) => val.split(',').map((i) => i.trim());
const _splitAndTrim = (val) => {
const t = val.split(',').map((i) => i.trim().split('+'));
return _.flatten(t);
};
const _date = (val) => {
const d = val.split('-');
assert(d.length === 3);
@ -412,10 +415,31 @@ class ConnectionHandler {
for (const i in p) this.request.params[p[i][0]] = decodeURIComponent(p[i][1]);
}
url(name, kwargs = {}) { // eslint-disable-line class-methods-use-this
let res = '#';
try {
delete kwargs.__keywords;
if (this.args.domainId !== 'system') {
name += '_with_domainId';
kwargs.domainId = kwargs.domainId || this.args.domainId;
}
const { anchor, query } = kwargs;
delete kwargs.anchor;
delete kwargs.query;
if (query) res = router.url(name, kwargs, { query });
else res = router.url(name, kwargs);
if (anchor) return `${res}#${anchor}`;
} catch (e) {
console.error(e.message);
}
return res;
}
async renderHTML(name, context) {
this.hasPerm = (perm) => this.user.hasPerm(perm);
const res = await template.render(name, Object.assign(context, {
handler: this,
url: (...args) => this.url(...args),
_: (str) => (str ? str.toString().translate(this.user.viewLang || this.session.viewLang) : ''),
user: this.user,
}));
@ -450,6 +474,7 @@ function Connection(name, prefix, RouteConnHandler, permission) {
const h = new RouteConnHandler(conn);
try {
const args = { domainId: 'system', ...h.request.params };
h.args = args;
if (h.___prepare) await h.___prepare(args);
if (permission) h.checkPerm(permission);
let checking = '';

@ -1,83 +1,82 @@
#English
---
contest_main: Contest
__langname: English
Can be Extended For: Extension
contest_create: Contest Create
contest_detail_problem_submit: Submit Contest Problem
contest_edit: Contest Edit
contest_main: Contest
contest_scoreboard: Scoreboard
contest_detail_problem_submit: Submit Contest Problem
discussion_create: Create Discussion
discussion_edit: Discussion Edit
discussion_main: Discussion
discussion_node: Discussion
display_name: Display Name
domain_main: Main
fs_upload: File Upload
home_account: Account Settings
home_domain_account: Profile @ Domain
home_preference: Preference
home_domain_create: Create Domain
home_domain: My Domains
home_file: My Files
home_messages: Messages
home_preference: Preference
home_security: Security
home_domain: My Domains
homework_main: Homework
homework_create: Homework Create
homework_detail_problem_submit: Submit Homework Problem
homework_edit: Homework Edit
homework_main: Homework
homework_scoreboard: Scoreboard
homework_detail_problem_submit: Submit Homework Problem
judge_playground: Judge Playground
main: Home
manage_dashboard: Dashboard
manage_discussion: Discussion Nodes
manage_edit: Edit Info
manage_join_applications: Join Applications
manage_module: Module Management
manage_permission: System Permission
manage_role: System Role
manage_setting: System Settings
manage_user: System User
manage: System Manage
no_translation_warn: <blockquote class="warn">This part of content is under translation.</blockquote>
page.problem_detail.sidebar.show_category: Click to Show
page.training_detail.invalid_when_not_enrolled: You cannot view problem details unless enrolled.
pager_first: « First
pager_last: Last »
pager_next: Next
pager_previous: Previous
perm_contest: Contests
perm_discussion: Discussions
perm_general: General
perm_problem_solution: Problem Solutions
perm_problem: Problems
perm_record: Records
perm_training: Trainings
problem_create: Problem Create
problem_edit: Problem Edit
problem_main: Problem Set
problem_solution: Problem Solution
problem_submit: Problem Submit
problem_settings: Problem Settings
problem_solution: Problem Solution
problem_statistics: Problem Statistics
problem_submit: Problem Submit
problem-category-delim: '|'
problem-subcategory-delim: ', '
record_detail: Record Detail
record_main: Judging Queue
setting_customize: Customize
setting_display: Display Preference
setting_function: Function
setting_info_domain: Personal Info
setting_info: Personal Info
setting_preference: Preference
setting_privacy: Privacy
setting_customize: Customize
training_main: Training
training_edit: Training Edit
setting_usage: Usage Preference
timeago_locale: en
training_create: Training Create
training_edit: Training Edit
training_main: Training
user_detail: User Detail
user_login: Login
user_logout: Logout
user_lostpass: Lost Password
user_register: Register
home_domain_create: Create Domain
domain_main: Main
manage: System Manage
manage_dashboard: Dashboard
manage_discussion: Discussion Nodes
manage_edit: Edit Info
manage_join_applications: Join Applications
manage_role: System Role
manage_user: System User
manage_permission: System Permission
manage_module: Module Management
manage_setting: System Settings
timeago_locale: en
perm_general: General
perm_problem: Problems
perm_record: Records
perm_problem_solution: Problem Solutions
perm_discussion: Discussions
perm_contest: Contests
perm_training: Trainings
discussion_edit: Discussion Edit
wiki_help: Help
no_translation_warn: <blockquote class="warn">This part of content is under translation.</blockquote>
problem-category-delim: '|'
problem-subcategory-delim: ', '
setting_display: Display Preference
setting_usage: Usage Preference
home_file: My Files
fs_upload: File Upload
page.training_detail.invalid_when_not_enrolled: You cannot view problem details unless enrolled.
page.problem_detail.sidebar.show_category: Click to Show
setting_info_domain: Personal Info
display_name: Display Name
Can be Extended For: Extension
wiki_help: Help

File diff suppressed because it is too large Load Diff

@ -1,571 +1,567 @@
#正體中文
---
__langname: 正體中文
'{0} comments': '{0} 條評論'
'{0} discussions': '{0} 條討論'
'{0} limit exceeded (limit: {2} operations in {1} seconds).': '{0} 超過頻率限制。限制:{1} 秒內最多 {2} 次操作。'
'{0} solutions': '{0} 條題解'
'{0} views': '{0} 次檢視'
'{0}: Permissions': '{0}: 許可權'
'{0}: Roles': '{0}: 角色'
'{0}: Users': '{0}: 使用者'
'# My Submissions': '我的遞交數'
'# Submissions': '遞交數'
'↓ # Comments': '↓ 評論數'
'↓ # Enrollees': '↓ 參與人數'
'↓ # Likes': '↓ 贊數'
'↓ # Stars': '↓ 收藏數'
'↓ Create Time': '↓ 創建時間'
'↓ Update Time': '↓ 更新時間'
'A domain ID cannot be changed after creation. It is supposed to be:': '創建後將無法更改 ID。ID 必須滿足以下條件:'
'Current dataset: {0}': '當前測試資料: {0}'
'Hello, {0}! You can click following link to active your new email of your Hydro account:': 您好,{0}!您可以點選以下連結來啟用您 Hydro 賬戶的新電子郵件地址:
'Hello, {0}! You can click following link to reset the password of your Hydro account:': 您好,{0}!您可以點選以下連結來重置您 Hydro 賬戶的密碼:
'Hello! You can click following link to sign up your Hydro account:': 您好!您可以點選以下連結來註冊您的 Hydro 賬戶:
'No':
'Solved {0} problems, RP: {1} (No. {2})': '解決了 {0} 道題目RP: {1} (No. {2})'
'Yes':
(None): (無)
API: API
About Markdown: 關於 Markdown
About: 關於
Accepted: 已通過
Accepted Ratio: 通過率
Accepted: 已通過
Access Control: 訪問控制
Action: 動作
Active Sessions: 活動會話
Add new data: 新增新資料
Add User: 新增使用者
Add: 新增
All {0} Contests: 所有 {0} 比賽
All Contests: 所有比賽
All Homeworks: 所有功課
All: 全部
Always granted all privileges: 總是擁有所有域許可權
An error has occurred.: 發生了一個錯誤。
API: API
Arguments: 參數
At least 4 characters: 至少 4 個字元
Attend Contest: 參加比賽
Attend contests: 參加比賽
Attended: 已參加
Login to Attend Contest: 登入後參加比賽
No Permission to Attend Contest: 您沒有許可權參加比賽
author: 作者
Begin Date: 開始日期
Begin Time: 開始時間
Belongs to: 屬於
Bio: 個人簡介
Bio Visibility: 個人簡介可見性
Bio: 個人簡介
Blog: 部落格
Boom!: 炸了!
Browser: 瀏覽器
Built-in: 內建
By signing up a Hydro universal account, you can submit code and join discussions in all online judging services provided by us.: 註冊一個 Hydro 通用賬戶,您就可以在我們提供的所有線上評測服務上提交程式碼、參與討論。
CLOSE: 關閉
Calendar View: 日曆視圖
Can be Extended For: 可延期
Cancel Score: 取消成績
Cancel: 取消
Ok: 確定
Category: 分類
Change Email: 修改電子郵件
Change Password: 修改密碼
Claim homework: 認領功課
Claim Homework: 認領功課
Claimed: 已認領
Click here to chat with me: 點選這裡與我聊天
CLOSE: 關閉
Code blocks: 程式碼區塊
Code language: 程式碼語言
Code: 程式碼
Comment: 評論
Comments: 評論
CommonMark Syntax: CommonMark 語法
Confirm deleting the selected roles?: 您確定刪除所選角色嗎?
Confirm removing the selected users?: 您確定將所選使用者移除嗎?
Confirmation mail has been sent to your new email.: 確認郵件已經發送到您的新電子郵箱。
Contact Us: 聯絡我們
Contact: 聯絡
content: 內容
Content: 內容
Contest: 比賽
Contest scoreboard is not visible.: 當前比賽成績表隱藏,暫不可顯示。
Contest Scoreboard: 比賽成績表
contest_main: 比賽
contest_create: 創建比賽
contest_detail_problem_submit: 遞交比賽程式碼
contest_edit: 編輯比賽
contest_main: 比賽
contest_scoreboard: 比賽成績表
Create: 創建
Create Contest: 創建比賽
Create Homework: 創建功課
Create Discussion: 創建討論
Create Discussion in {0}: 在 {0} 下創建討論
Create Problem: 創建題目
Contest: 比賽
Create a contest: 創建一個比賽
Create a Discussion: 創建一個討論
Login to Create a Discussion: 登入後創建討論
No Permission to Create a Discussion: 您沒有許可權創建討論
Create a problem: 創建一個題目
Create Contest: 創建比賽
Create contests: 創建比賽
Create Discussion in {0}: 在 {0} 下創建討論
Create Discussion: 創建討論
Create discussions: 創建討論
Create Domain: 創建域
Create homework: 創建功課
Create Homework: 創建功課
Create problem solutions: 創建題解
Create Problem: 創建題目
Create problems: 創建題目
Create Role: 創建角色
Create Training Plan: 創建訓練計劃
Create: 創建
current domain: 當前域
Current Email: 當前電子郵件
Current Location: 當前位置
Current password doesn't match.: 當前密碼輸入錯誤。
Current Password: 當前密碼
currently offline: 目前離線
Data of Problem {0} not found.: 題目 {0} 的資料缺失。
Dataset: 測試資料
Deadline: 截止時間
Default Code Language: 預設程式碼語言
Default Code Template: 預設程式碼模板
If left blank, the built-in template of the corresponding language will be used.: 若留空,則將使用對應語言的內建程式碼模板。
Delete discussion replies of own discussion: 刪除自己討論中的回覆
Delete discussion replies: 刪除討論回覆
Delete discussions: 刪除討論
Delete own discussion replies: 刪除討論中自己的回覆
Delete own discussions: 刪除自己的討論
Delete own problem solution replies: 刪除題解中自己的回覆
Delete own problem solutions: 刪除自己的題解
Delete problem solution replies: 刪除題解的回覆
Delete problem solutions: 刪除題解
Delete Selected Roles: 刪除所選角色
delete: 刪除
Delete: 刪除
Description: 說明
Development: 開發
Difficulty: 難度
Disabled: 關閉
Discussion {1} not found.: 討論 {1} 不存在。
Discussion category {1} already exists.: 討論分類 {1} 已經存在。
Discussion category {1} not found.: 討論分類 {1} 不存在。
Discussion node {1} already exists.: 討論節點 {1} 已經存在。
Discussion node {1} not found.: 討論節點 {1} 不存在。
Discussion Nodes: 討論節點
discussion_create: 創建討論
discussion_edit: 編輯討論
discussion_main: 討論
discussion_node: 討論
Discussions: 討論
Do not discuss solutions otherwise you will be regarded as cheating and then lose qualifications.: 請勿討論解法,否則以作弊論處並且將失去參賽資格。
Document {2} not found.: 文件 {2} 不存在。
Domain {0} already exists.: 域 {0} 已經存在。
Domain {0} is bulit-in and cannot be modified.: 域 {0} 為內建,不可修改。
Domain {0} not found.: 域 {0} 不存在。
Domain ID cannot be changed once the domain is created.: 在創建後不能更改 ID。
domain_main: 首頁
Don't have an account?: 還沒有賬戶?
Pretest Data: 自測資料
Problem Data: 題目資料
Done: 已結束
Download: 下載
Duration (hours): 持續時間 (小時)
Edit: 編輯
Duration: 持續時間
Edit any homework: 修改任意功課
Edit description of this domain: 修改此域描述
Edit discussion replies of own discussion: 修改自己討論中的回覆
Edit discussion replies: 修改討論的回覆
Edit discussions: 修改討論
Edit Domain: 編輯域
Edit Homework: 編輯功課
Edit own discussion replies: 修改討論中自己的回覆
Edit own discussions: 修改自己的討論
Edit own homework: 修改自己的功課
Edit own problem solution replies: 修改題解中自己的回覆
Edit own problem solutions: 修改自己的題解
Edit own problems: 修改自己的題目
Edit permissions of a role: 修改角色許可權
Edit problem solution replies: 修改題解的回覆
Edit problem solutions: 修改題解
Edit Problem: 編輯題目
Email: 電子郵件
Edit problems: 修改題目
Edit: 編輯
Email Visibility: Email 可見性
Email: 電子郵件
Enabled: 開啟
End at: 結束於
End Date: 結束日期
End Time: 結束時間
Enrolled: 已參加
error: 錯誤
Export All Code: 導出所有原始碼
Extension (days): 最長延期(日)
Extension Score Penalty: 延期遞交扣分規則
Field {0} or {1} validation failed.: 欄位 {0} 或 {1} 驗證失敗。
Field {0} validation failed.: 欄位 {0} 驗證失敗。
Footer: 頁尾
Forgot password or username?: 忘記密碼或者使用者名?
Gender: 性別
Formula blocks: 公式區塊
Gender Visibility: 性別可見性
Gender: 性別
Gravatar Email: Gravatar Email 地址
'Hello! You can click following link to sign up your Hydro account:': 您好!您可以點選以下連結來註冊您的 Hydro 賬戶:
'Hello, {0}! You can click following link to reset the password of your Hydro account:': 您好,{0}!您可以點選以下連結來重置您
Hydro 賬戶的密碼:
'Hello, {0}! You can click following link to active your new email of your Hydro account:': 您好,{0}!您可以點選以下連結來啟用您
Hydro 賬戶的新電子郵件地址:
Confirmation mail has been sent to your new email.: 確認郵件已經發送到您的新電子郵箱。
Hard Deadline: 最終截止時間
Have ALL PERMISSIONS in this domain: 在此域中擁有全部許可權
Help: 幫助
Hidden: 隱藏
Hide all tags: 隱藏所有標籤
Hide categorical tags: 隱藏分類標籤
If enabled, source code will be emailed to you after the submission is accepted.: 如果啟用,在您通過題目後,原始碼會以
Email 的形式傳送給您。
In following training plans: 在下列訓練計劃中
Highlight discussions: 高亮討論
Highlight: 高亮討論
home_account: 賬戶設定
home_domain_account: 當前域的設定
home_domain_create: 創建域
home_domain: 我的域
home_messages: 站內訊息
home_preference: 偏好設定
home_security: 安全設定
Homework Introduction: 功課介紹
Homework scoreboard is not visible.: 目前無法查看功課成績表。
homework_create: 創建功課
homework_edit: 編輯功課
homework_main: 功課
homework_scoreboard: 成績表
Homework: 功課
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: 圖片
In following homework: 在以下功課中
In following training plans: 在下列訓練計劃中
Information: 資訊
Inline codes: 行內程式碼
Inline formulas: 行內公式
Invalid user {0} or password.: 使用者 {0} 不存在或密碼錯誤。
It works!: 它成了!
judge_playground: 評測遊樂場
Judged At: 評測時間
Judging Queue: 評測佇列
Lang.: 語言
Language: 語言
last active at: 最後活動於
last login at: 最後登入於
Last Submit At: 最後遞交於
Last Update At: 最後活動時間
LaTeX Expressions: LaTeX 表示式
Learn More: 瞭解更多
Links: 連結
List View: 列表視圖
Live: 正在進行
Live...: 正在進行…
Location: 位置
Login to Attend Contest: 登入後參加比賽
Login to Claim Homework: 登錄以認領功課
Login to Create a Discussion: 登入後創建討論
Login to Submit: 登入後遞交
Login: 登入
Logout: 登出
Logout All Sessions: 登出所有會話
Logout This Session: 登出該會話
Logout: 登出
Lost Password: 忘記密碼
Memory: 記憶體
manage_dashboard: 概況
manage_domain: 管理域
manage_edit: 編輯域資料
manage_join_applications: 加域申請
manage_permission: 管理許可權
manage_role: 管理角色
manage_user: 管理使用者
manage: 管理
Manage: 管理
Memory Cost: 記憶體佔用
Memory: 記憶體
Message {0} not found.: 訊息 {0} 不存在。
Messages: 站內訊息
Most Upvoted Solutions: 最熱題解
My Domains: 我的域
My Profile: 我的資料
My Recent Submissions: 我最近的遞交記錄
My Role: 我的角色
Name: 名稱
New Email: 新電子郵件
New Password: 新密碼
New Training Plan: 新訓練計劃
New: 創建
No dataset at present.: 暫無測試資料。
no discussion yet...: 目前沒有討論…
No Permission to Attend Contest: 您沒有許可權參加比賽
No Permission to Claim Homework: 您沒有權限認領功課
No Permission to Create a Discussion: 您沒有許可權創建討論
No Permission to Submit: 您沒有許可權遞交
No Submissions: 沒有遞交
no_translation_warn: <blockquote class="warn">這部分內容正在翻譯。</blockquote>
Not Attended: 未參加
Not available: 不可用
Not Claimed: 未認領
Not started with a number: 不以數字開頭
Not wrapped with space: 兩側不含空格
Oh, the user hasn't provide any discussions yet!: 啊哦,此用戶尚未參與討論......
Oh, the user hasn't provide any problems yet!: 啊哦,此用戶尚未提供題目......
Oh, the user hasn't provide any solutions yet!: 啊哦,此用戶尚未撰寫解題解......
Oh, the user hasn't submitted yet!: 啊哦,此用戶尚未遞交......
Oh, there is no task in the queue!: 喔,佇列中目前沒有任務。
Ok: 確定
Oops, there are no results.: 呀,沒有結果。
Oops!: Oops!
Open Scratchpad: 進入線上程式設計模式
Open Since: 開始時間
Open Source: 開源
Operating System: 作業系統
Password: 密碼
Password reset mail has been sent to your email.: 密碼重置郵件已傳送到您的電子郵箱。
Peak Memory: 峰值記憶體
Pretest?: 自測?
Original Score: 原始得分
Owner: 所有者
pager_first: « 第一頁
pager_last: 末頁 »
pager_next: 下一頁
pager_previous: 前一頁
Partic.: 參賽人數
Password reset mail has been sent to your email.: 密碼重置郵件已傳送到您的電子郵箱。
Password: 密碼
Passwords don't match.: 驗證密碼不匹配。
Path {0} not found.: 路徑 {0} 不存在。
Peak Memory: 峰值記憶體
perm_contest: 比賽
perm_discussion: 討論
perm_general: 一般
perm_problem_solution: 題解
perm_problem: 題庫
perm_record: 記錄
perm_training: 訓練
Permission: 許可權
Permissions: 許可權
Please attend contest to see the problems.: 請參加比賽來檢視題目。
Please claim the assignment to see the problems.: 認領功課后方可查看題目。
Please select at least one role to perform this operation.: 請選擇至少一個角色來進行操作。
Please select at least one user to perform this operation.: 請選擇至少一個使用者來進行操作。
Pretest Data: 自測資料
Pretest Your Code: 使用自定義資料測試
Pretest: 自測
Pretest?: 自測?
Privacy: 隱私
Problem: 題目
Problem {1} not found.: 題目 {1} 不存在。
Problem Data: 題目資料
Problem List: 供題列表
Problem Set: 題庫
Problem Settings: 題目設定
Problem Solution: 題解列表
Problem Solution List: 題解列表
Problem Solution: 題解列表
Problem Tags Visibility: 題目標籤可見性
Problems: 題目
problem_create: 創建題目
problem_edit: 編輯題目
problem_main: 題庫
problem_settings: 題目設定
problem_solution: 題解
problem_submit: 遞交程式碼
Problem: 題目
Problems Sets: 題庫
Problems: 題目
Properties: 屬性
Public: 公開
Published at: 發表於
QQ Group: QQ 群
QQ Visibility: QQ 可見性
WeChat: 微信
WeChat Visibility: 微信可見性
Quit Scratchpad: 退出線上程式設計模式
Rank: 排名
Read data of own problems: 讀取自己題目的資料
Read data of problem: 讀取題目資料
Read record codes: 讀取記錄的程式碼
Ready (☆▽☆): 馬上開始 (☆▽☆)
Ready: 即將開始
Recent {0} Records: 最近 {0} 條記錄
Recent Activities: 最近活動
Recent Solutions: 最近題解
Recent Submissions: 最近遞交
Record {0} not found.: 記錄 {0} 不存在。
record_detail: 記錄詳情
record_main: 評測佇列
Records: 評測記錄
Refresh Records: 重新整理評測記錄
Refresh: 重新整理
Registered at: 註冊於
Related: 相關
Rejudge problems: 重測題目
Rejudge records: 重測記錄
Rejudge: 重測
Related Discussions: 相關討論
Related: 相關
Remember me: 記住我
Remove Selected User: 將所選使用者移出
Remove this data: 移除這組資料
Remove: 移除
Repeat Password: 重複密碼
Reply discussions: 回覆討論
Reply problem solutions: 回覆題解
reply: 回覆
Reply: 回覆
Report: 舉報
required: 必填
Resent Discussions: 最近討論
Reset Password: 重置密碼
Role has been updated to {0} for selected users.: 所選使用者角色已更新為 {0}。
Role has been updated to {0}.: 角色已更新為 {0}。
Role name can only contains numbers, letters and underscores.: 角色名稱只能包含數字、字母和下劃線。
Role: 角色
Roles: 角色
Rule: 規則
SIGN IN: 登入
Run Pretest: 運行自測
Sample Input: 輸入資料
Sample Output: 輸出資料
Save All Changes: 儲存所有修改
Saved session: 已儲存的會話
score canceled: 成績取消
Score: 分數
Secret: 保密
Scoreboard (Hidden): 成績表 (隱藏)
Scoreboard: 成績表
Secret (visible to admins): 保密(對管理員可見)
Secret: 保密
Security: 安全
Select a node to create discussion.: 選擇一個節點來發表討論。
Send: 傳送
Select a role: 選擇一個角色
Select User: 選擇使用者
Selected roles have been deleted.: 所選角色已刪除。
Selected users have been removed from the domain.: 所選使用者已從此域中移除。
Send Code after acceptance: 通過題目後傳送原始碼
Send Password Reset Email: 傳送密碼重置郵件
Send Verification Email: 傳送驗證郵件
Send: 傳送
Service Status: 服務狀態
Set Role: 設定角色
Set Roles for Selected User: 設定所選使用者的角色
Set Roles for selected users: 為所選使用者設定角色
setting_customize: 自訂
setting_display: 顯示偏好
setting_info_domain: 個人資訊
setting_info: 個人資訊
setting_privacy: 隱私
setting_usage: 使用偏好
Settings: 設定
Share: 分享
Show all tags: 顯示所有標籤
Show MOD badge: 展示 MOD 徽章
Show: 顯示
Sign In: 登入
Sign Up: 註冊
Sign Up Now: 現在註冊
SIGN IN: 登入
Sign up mail has been sent to your email.: 註冊郵件已經發送到您的電子郵箱。
Sign Up Now: 現在註冊
Sign Up: 註冊
Solutions Liked: 題解被贊
Solutions: 題解
'Solved {0} problems, RP: {1} (No. {2})': '解決了 {0} 道題目RP: {1} (No. {2})'
Sorry: 對不起
Solve: 解決
Sorry, there is no problem in the problem set: 題庫中沒有題目
Solutions Liked: 題解被贊
Statistics: 統計
Status: 狀態
Star: 收藏
Unstar: 取消收藏
Sorry: 對不起
Sort by: 排序
Star Topic: 收藏討論
Unstar Topic: 取消收藏
Star: 收藏
Start at: 開始於
Statistics: 統計
Status is hidden: 狀態已隱藏
Status: 狀態
Submission Statistics: 遞交統計
Submission: 遞交
Submissions: 遞交
Submit: 遞交
'# Submissions': '遞交數'
'# My Submissions': '我的遞交數'
Login to Submit: 登入後遞交
No Permission to Submit: 您沒有許可權遞交
Submit At: 遞交時間
Submit By: 遞交者
Submit problem: 遞交題目
Submit Solution: 遞交評測
Submit Time: 遞交時間
Submit to Judge: 遞交以評測
Submit Your Code: 遞交程式碼進行正式評測
Submit: 遞交
Submitted: 已遞交
Support: 支援
Technical Information: 技術資訊
Temporary session: 臨時會話
Text: 文字
The homework's deadline is due but in extension. You can still submit for this problem but your score will be penalized.: 功課已經截止,但處於延期時間内。您此時遞交的題目無法獲得全部分數。
Their account will not be deleted and they will be with the default role.: 他們的賬號不會被刪除,並且之後將以 default 角色訪問。
There are no contests...: 沒有比賽…
There is no homework so far ╰(*°▽°*)╯: 目前沒有功課 ╰(*°▽°*)╯
This contest is not live.: 比賽沒有開始。
This email was sent by {0} automatically, and please do not reply directly.: 這封郵件由 {0} 自動傳送,請勿直接回復。
This homework is not open and you cannot view problems.: 功課尚未開放,不能查看題目。
This homework is not open.: 功課尚未開放遞交。
This is the current session: 這是當前的會話
Time Cost: 耗時
Time Extension: 延期
Time: 時間
timeago_locale: zh_TW
Timezone: 時區
title: 標題
Title: 標題
Toggle Pretest Panel: 切換自測面板
Toggle Records Panel: 切換評測記錄面板
Total Score: 總分
Total Time: 總耗時
Training requirement is not satisfied.: 不滿足訓練條件。
training_main: 訓練
Type: 類型
UI Language: 使用者介面語言
Timezone: 時區
Unique: 唯一
Unknown field {0}.: 未知欄位 {0}。
Unknown: 未知
Unstar Topic: 取消收藏
Unstar: 取消收藏
Update Permission: 更新許可權
Update: 更新
Uploaded By: 上傳者
Upload Problem: 上傳題目
Upload: 上傳
Uploaded By: 上傳者
User {0} already exists.: 使用者 {0} 已存在。
User {0} not found.: 使用者 {0} 不存在。
User ID: 使用者 ID
user_detail: 使用者
user_login: 登入
user_logout: 登出
user_lostpass: 忘記密碼
user_register: 註冊
User-defined role: 使用者定義的角色
User: 使用者
Username / UID: 使用者名或 UID
Username: 使用者名
Users with those roles will be removed from the domain.: 擁有這些角色的使用者將從此域中移除。
Users: 使用者
Using your Hydro universal account: 使用您的 Hydro 通用賬戶
View Problem: 檢視題目
Valid for registered users who are not members of the domain: 對域外註冊使用者有效
Valid for visitors: 對未登入的遊客有效
View contest scoreboard: 檢視比賽成績表
View Contest: 檢視比賽
View contests: 檢視比賽
View Details: 檢視詳情
View discussions: 檢視討論
View hidden contest submission status and scoreboard: 檢視隱藏的比賽遞交狀態和成績表
View hidden homework submission status and scoreboard: 翻閲隱藏的功課遞交狀態和成績表
View homework scoreboard: 翻閲功課成績表
View homework: 翻閲功課
View Homework: 翻閲功課
View or create discussion: 檢視與發表討論
View or submit solution: 檢視與發表題解
View Owned Training Plans: 檢視自己的訓練計劃
View problem solutions: 檢視題解
View Problem: 檢視題目
View problems: 檢視題目
View this domain: 檢視此域
View training: 檢視訓練
View: 檢視
Visible to registered users: 對註冊使用者可見
Visit: 檢視
Vote problem solutions: 為題解投票
Vote: 投票
We use Gravatar to present your avatar icon.: 我們使用 Gravatar 服務來呈現您的頭像。
We will check code similarity after this contest.: 我們會在賽後檢查程式碼相似度。
WeChat Visibility: 微信可見性
WeChat: 微信
What is domain?: 什麼是域?
What's domain?: 什麼是域?
Whether to show tags in the problem list.: 是否在題目列表中顯示題目的標籤。
Will be used as the system icon.: 將被用作圖示。
Without slashes or backslashes: 不含斜槓和反斜槓
Write Your Comment: 發表您的評論
Write Your Solution: 發表您的題解
author: 作者
content: 內容
current domain: 當前域
currently offline: 目前離線
discussion_create: 創建討論
discussion_main: 討論
discussion_node: 討論
error: 錯誤
home_account: 賬戶設定
home_domain_account: 當前域的設定
home_preference: 偏好設定
home_messages: 站內訊息
home_security: 安全設定
home_domain: 我的域
Homework: 功課
Homework Introduction: 功課介紹
homework_main: 功課
homework_create: 創建功課
homework_edit: 編輯功課
homework_scoreboard: 成績表
judge_playground: 評測遊樂場
last active at: 最後活動於
last login at: 最後登入於
no discussion yet...: 目前沒有討論…
pager_first: « 第一頁
pager_last: 末頁 »
pager_next: 下一頁
pager_previous: 前一頁
problem_create: 創建題目
problem_edit: 編輯題目
problem_main: 題庫
problem_solution: 題解
problem_submit: 遞交程式碼
problem_settings: 題目設定
record_detail: 記錄詳情
record_main: 評測佇列
reply: 回覆
setting_usage: 使用偏好
setting_info: 個人資訊
setting_display: 顯示偏好
setting_privacy: 隱私
setting_customize: 自訂
title: 標題
training_main: 訓練
user_detail: 使用者
user_login: 登入
user_logout: 登出
user_lostpass: 忘記密碼
user_register: 註冊
'{0} comments': '{0} 條評論'
'{0} solutions': '{0} 條題解'
'{0} views': '{0} 次檢視'
New: 創建
Pretest: 自測
Add: 新增
Remove: 移除
Add new data: 新增新資料
Remove this data: 移除這組資料
Sample Input: 輸入資料
Sample Output: 輸出資料
Records: 評測記錄
Refresh Records: 重新整理評測記錄
Refresh: 重新整理
Report: 舉報
Run Pretest: 運行自測
Pretest Your Code: 使用自定義資料測試
Submit Solution: 遞交評測
Submit Your Code: 遞交程式碼進行正式評測
Toggle Pretest Panel: 切換自測面板
Toggle Records Panel: 切換評測記錄面板
Recent {0} Records: 最近 {0} 條記錄
You have not submitted any solutions for this problem: 您在該題下沒有遞交過任何解答
Submit to Judge: 遞交以評測
Code language: 程式碼語言
'Yes':
'No':
Comment: 評論
Share: 分享
Delete: 刪除
Highlight: 高亮討論
End at: 結束於
Action: 動作
Rejudge: 重測
Oops, there are no results.: 呀,沒有結果。
My Domains: 我的域
What is domain?: 什麼是域?
View: 檢視
Manage: 管理
home_domain_create: 創建域
Create Domain: 創建域
Properties: 屬性
Access Control: 訪問控制
domain_main: 首頁
manage: 管理
manage_domain: 管理域
manage_dashboard: 概況
manage_edit: 編輯域資料
manage_join_applications: 加域申請
manage_role: 管理角色
manage_user: 管理使用者
manage_permission: 管理許可權
Update Permission: 更新許可權
Roles: 角色
Your role: 您的角色
Your permission: 您的許可權
Edit Domain: 編輯域
You can create your own training plans and share with others.: 您可以創建您自己的訓練計劃並且與他人分享。
You cannot submit for this problem because the homework's deadline is due.: 功課已到達截止時間,您無法遞交了。
You don't have the required permission ({0}) in this domain.: 您在該域中無相應許可權 ({0})。
You don't have the required privilege.: 您沒有相應的特權。
You don't own any domain and don't have privilege to create domain.: 您不擁有任何域也沒有創建域的特權。
An error has occurred.: 發生了一個錯誤。
Path {0} not found.: 路徑 {0} 不存在。
Field {0} or {1} validation failed.: 欄位 {0} 或 {1} 驗證失敗。
Field {0} validation failed.: 欄位 {0} 驗證失敗。
Unknown field {0}.: 未知欄位 {0}。
Passwords don't match.: 驗證密碼不匹配。
User {0} already exists.: 使用者 {0} 已存在。
Invalid user {0} or password.: 使用者 {0} 不存在或密碼錯誤。
Document {2} not found.: 文件 {2} 不存在。
Data of Problem {0} not found.: 題目 {0} 的資料缺失。
You have not submitted any solutions for this problem: 您在該題下沒有遞交過任何解答
You have permissions to create problems for this domain.: 您有許可權為此域創建題目。
You haven't attended this contest yet.: 您還沒有參加本次比賽。
You haven't claimed this homework yet.: 您還未認領該功課。
You're not logged in.: 您沒有登入。
You don't have the required privilege.: 您沒有相應的特權。
You don't have the required permission ({0}) in this domain.: 您在該域中無相應許可權 ({0})。
You've already voted.: 您已經投過票。
User {0} not found.: 使用者 {0} 不存在。
Current password doesn't match.: 當前密碼輸入錯誤。
Discussion category {1} already exists.: 討論分類 {1} 已經存在。
Discussion category {1} not found.: 討論分類 {1} 不存在。
Discussion node {1} already exists.: 討論節點 {1} 已經存在。
Discussion node {1} not found.: 討論節點 {1} 不存在。
Discussion {1} not found.: 討論 {1} 不存在。
Message {0} not found.: 訊息 {0} 不存在。
Domain {0} not found.: 域 {0} 不存在。
Domain {0} already exists.: 域 {0} 已經存在。
You've already attended this contest.: 您已經參加本次比賽。
You haven't attended this contest yet.: 您還沒有參加本次比賽。
Contest scoreboard is not visible.: 當前比賽成績表隱藏,暫不可顯示。
Problem {1} not found.: 題目 {1} 不存在。
Training requirement is not satisfied.: 不滿足訓練條件。
Record {0} not found.: 記錄 {0} 不存在。
'{0} limit exceeded (limit: {2} operations in {1} seconds).': '{0} 超過頻率限制。限制:{1} 秒內最多 {2} 次操作。'
Domain ID cannot be changed once the domain is created.: 在創建後不能更改 ID。
'A domain ID cannot be changed after creation. It is supposed to be:': '創建後將無法更改 ID。ID 必須滿足以下條件:'
Unique: 唯一
Not wrapped with space: 兩側不含空格
Not started with a number: 不以數字開頭
Without slashes or backslashes: 不含斜槓和反斜槓
Username / UID: 使用者名或 UID
Last Submit At: 最後遞交於
Start at: 開始於
Duration: 持續時間
hour(s): 小時
Not Attended: 未參加
Live...: 正在進行…
Ready (☆▽☆): 馬上開始 (☆▽☆)
View Details: 檢視詳情
All Contests: 所有比賽
All Homeworks: 所有功課
No Submissions: 沒有遞交
Do not discuss solutions otherwise you will be regarded as cheating and then lose qualifications.: 請勿討論解法,否則以作弊論處並且將失去參賽資格。
Please attend contest to see the problems.: 請參加比賽來檢視題目。
This contest is not live.: 比賽沒有開始。
contest_detail_problem_submit: 遞交比賽程式碼
Host: 主持人
Rank: 排名
Solve: 解決
Time: 時間
required: 必填
Name: 名稱
Will be used as the system icon.: 將被用作圖示。
My Role: 我的角色
What's domain?: 什麼是域?
Visit: 檢視
delete: 刪除
User ID: 使用者 ID
'{0}: Users': '{0}: 使用者'
'{0}: Roles': '{0}: 角色'
'{0}: Permissions': '{0}: 許可權'
Role: 角色
Select a role: 選擇一個角色
Add User: 新增使用者
Remove Selected User: 將所選使用者移出
Set Roles for Selected User: 設定所選使用者的角色
Create Role: 創建角色
Role name can only contains numbers, letters and underscores.: 角色名稱只能包含數字、字母和下劃線。
Built-in: 內建
Always granted all privileges: 總是擁有所有域許可權
Valid for visitors: 對未登入的遊客有效
Valid for registered users who are not members of the domain: 對域外註冊使用者有效
User-defined role: 使用者定義的角色
Users: 使用者
Delete Selected Roles: 刪除所選角色
Owner: 所有者
Permission: 許可權
Permissions: 許可權
View this domain: 檢視此域
Edit permissions of a role: 修改角色許可權
Show MOD badge: 展示 MOD 徽章
Edit description of this domain: 修改此域描述
Create problems: 創建題目
Edit problems: 修改題目
Edit own problems: 修改自己的題目
View problems: 檢視題目
Submit problem: 遞交題目
Read data of problem: 讀取題目資料
Read data of own problems: 讀取自己題目的資料
Read record codes: 讀取記錄的程式碼
Rejudge problems: 重測題目
Rejudge records: 重測記錄
View problem solutions: 檢視題解
Create problem solutions: 創建題解
Vote problem solutions: 為題解投票
Edit problem solutions: 修改題解
Edit own problem solutions: 修改自己的題解
Delete problem solutions: 刪除題解
Delete own problem solutions: 刪除自己的題解
Reply problem solutions: 回覆題解
Edit problem solution replies: 修改題解的回覆
Edit own problem solution replies: 修改題解中自己的回覆
Delete problem solution replies: 刪除題解的回覆
Delete own problem solution replies: 刪除題解中自己的回覆
View discussions: 檢視討論
Create discussions: 創建討論
Highlight discussions: 高亮討論
Edit discussions: 修改討論
Edit own discussions: 修改自己的討論
Delete discussions: 刪除討論
Delete own discussions: 刪除自己的討論
Reply discussions: 回覆討論
Edit discussion replies: 修改討論的回覆
Edit own discussion replies: 修改討論中自己的回覆
Edit discussion replies of own discussion: 修改自己討論中的回覆
Delete discussion replies: 刪除討論回覆
Delete own discussion replies: 刪除討論中自己的回覆
Delete discussion replies of own discussion: 刪除自己討論中的回覆
View contests: 檢視比賽
View contest scoreboard: 檢視比賽成績表
View hidden contest submission status and scoreboard: 檢視隱藏的比賽遞交狀態和成績表
Create contests: 創建比賽
Attend contests: 參加比賽
View training: 檢視訓練
Have ALL PERMISSIONS in this domain: 在此域中擁有全部許可權
Select User: 選擇使用者
Submitted: 已遞交
timeago_locale: zh_TW
Live: 正在進行
Ready: 即將開始
Done: 已結束
About Markdown: 關於 Markdown
Inline codes: 行內程式碼
Code blocks: 程式碼區塊
Inline formulas: 行內公式
Formula blocks: 公式區塊
Links: 連結
Text: 文字
Images: 圖片
Description: 說明
Learn More: 瞭解更多
CommonMark Syntax: CommonMark 語法
LaTeX Expressions: LaTeX 表示式
Hidden: 隱藏
We will check code similarity after this contest.: 我們會在賽後檢查程式碼相似度。
Dataset: 測試資料
'Current dataset: {0}': '當前測試資料: {0}'
Upload: 上傳
No dataset at present.: 暫無測試資料。
All: 全部
All {0} Contests: 所有 {0} 比賽
Show: 顯示
There are no contests...: 沒有比賽…
View Contest: 檢視比賽
Cancel Score: 取消成績
score canceled: 成績取消
You have permissions to create problems for this domain.: 您有許可權為此域創建題目。
Sort by: 排序
'↓ # Enrollees': '↓ 參與人數'
'↓ # Likes': '↓ 贊數'
'↓ # Stars': '↓ 收藏數'
'↓ # Comments': '↓ 評論數'
'↓ Create Time': '↓ 創建時間'
'↓ Update Time': '↓ 更新時間'
Enrolled: 已參加
Create Training Plan: 創建訓練計劃
New Training Plan: 新訓練計劃
View Owned Training Plans: 檢視自己的訓練計劃
You can create your own training plans and share with others.: 您可以創建您自己的訓練計劃並且與他人分享。
no_translation_warn: <blockquote class="warn">這部分內容正在翻譯。</blockquote>
Set Role: 設定角色
Set Roles for selected users: 為所選使用者設定角色
Please select at least one user to perform this operation.: 請選擇至少一個使用者來進行操作。
Confirm removing the selected users?: 您確定將所選使用者移除嗎?
Their account will not be deleted and they will be with the default role.: 他們的賬號不會被刪除,並且之後將以 default 角色訪問。
Selected users have been removed from the domain.: 所選使用者已從此域中移除。
Role has been updated to {0} for selected users.: 所選使用者角色已更新為 {0}。
Role has been updated to {0}.: 角色已更新為 {0}。
Confirm deleting the selected roles?: 您確定刪除所選角色嗎?
Users with those roles will be removed from the domain.: 擁有這些角色的使用者將從此域中移除。
Selected roles have been deleted.: 所選角色已刪除。
Please select at least one role to perform this operation.: 請選擇至少一個角色來進行操作。
Domain {0} is bulit-in and cannot be modified.: 域 {0} 為內建,不可修改。
perm_general: 一般
perm_problem: 題庫
perm_record: 記錄
perm_problem_solution: 題解
perm_discussion: 討論
perm_contest: 比賽
perm_training: 訓練
discussion_edit: 編輯討論
At least 4 characters: 至少 4 個字元
Contact: 聯絡
Click here to chat with me: 點選這裡與我聊天
Partic.: 參賽人數
'{0} discussions': '{0} 條討論'
Recent Submissions: 最近遞交
Oh, the user hasn't submitted yet!: 啊哦,此用戶尚未遞交......
Lang.: 語言
Oh, the user hasn't provide any problems yet!: 啊哦,此用戶尚未提供題目......
Problem List: 供題列表
Oh, the user hasn't provide any solutions yet!: 啊哦,此用戶尚未撰寫解題解......
Recent Solutions: 最近題解
Most Upvoted Solutions: 最熱題解
Oh, the user hasn't provide any discussions yet!: 啊哦,此用戶尚未參與討論......
Resent Discussions: 最近討論
Scoreboard: 成績表
Scoreboard (Hidden): 成績表 (隱藏)
setting_info_domain: 個人資訊
Calendar View: 日曆視圖
List View: 列表視圖
Time Extension: 延期
Claim Homework: 認領功課
Please claim the assignment to see the problems.: 認領功課后方可查看題目。
Login to Claim Homework: 登錄以認領功課
No Permission to Claim Homework: 您沒有權限認領功課
View Homework: 翻閲功課
Claimed: 已認領
Not Claimed: 未認領
My Recent Submissions: 我最近的遞交記錄
The homework's deadline is due but in extension. You can still submit for this problem but your score will be penalized.: 功課已經截止,但處於延期時間内。您此時遞交的題目無法獲得全部分數。
You cannot submit for this problem because the homework's deadline is due.: 功課已到達截止時間,您無法遞交了。
End Date: 結束日期
End Time: 結束時間
Extension (days): 最長延期(日)
Extension Score Penalty: 延期遞交扣分規則
Edit Homework: 編輯功課
This homework is not open and you cannot view problems.: 功課尚未開放,不能查看題目。
Total Score: 總分
Original Score: 原始得分
View homework: 翻閲功課
View homework scoreboard: 翻閲功課成績表
View hidden homework submission status and scoreboard: 翻閲隱藏的功課遞交狀態和成績表
Create homework: 創建功課
Claim homework: 認領功課
Edit any homework: 修改任意功課
Edit own homework: 修改自己的功課
Can be Extended For: 可延期
Open Since: 開始時間
Hard Deadline: 最終截止時間
Deadline: 截止時間
There is no homework so far ╰(*°▽°*)╯: 目前沒有功課 ╰(*°▽°*)╯
Homework scoreboard is not visible.: 目前無法查看功課成績表。
This homework is not open.: 功課尚未開放遞交。
You've already claimed this homework.: 您已認領該功課。
You haven't claimed this homework yet.: 您還未認領該功課。
Export All Code: 導出所有原始碼
You've already voted.: 您已經投過票。
Your permission: 您的許可權
Your role: 您的角色

@ -48,10 +48,10 @@ class PasteCreateHandler extends Handler {
}
async function apply() {
Route('paste', '/paste', PasteMainHandler);
Route('pastebin', '/paste', PasteMainHandler);
Route('paste_create', '/paste/create', PasteCreateHandler);
Route('paste_show', '/paste/:docId', PasteShowHandler);
nav('paste', null, 'paste', PERM_LOGGEDIN);
nav('pastebin', null, 'pastebin', PERM_LOGGEDIN);
}
global.Hydro.handler.pastebin = module.exports = apply;

@ -90,13 +90,13 @@
<li class="sessionlist__item">
<div class="media">
<div class="media__left medium">
<span class="sessionlist__icon icon icon-platform--{{ session.updateUa.icon }}"></span>
<span class="sessionlist__icon icon icon-platform--{{ icon(session.updateUa.os) }}"></span>
</div>
<div class="media__body medium typo">
<p>{{ _('Last Update At') }}: {{ datetimeSpan(session.updateAt)|safe }}</p>
<p>{{ _('Location') }}: {{ _(session.updateGeoip) }} ({{ session.updateIp }})</p>
<p>{{ _('Operating System') }}: {{ session.updateUa.os }}</p>
<p>{{ _('Browser') }}: {{ session.updateUa.browser }}</p>
<p>{{ _('Browser') }}: {{ session.updateUa.name }} {{ session.updateUa.version }}</p>
<!-- {{ _('User-Agent') }}: {{ session['update_ua']['str'] }} -->
{% if session.isCurrent %}
<p class="sessionlist__current-session"><span class="icon icon-check"></span> {{ _('This is the current session') }}</p>

@ -1,7 +1,5 @@
/* eslint-disable import/no-extraneous-dependencies */
import fs from 'fs';
import webpack from 'webpack';
import root from './utils/root';
import webpackConfig from './config/webpack';
export default function ({ watch, production }) {
@ -13,7 +11,6 @@ export default function ({ watch, production }) {
if (err.details) console.error(err.details);
process.exit(1);
}
fs.writeFileSync(root('./.webpackStats.json'), JSON.stringify(stats.toJson(), null, 2));
if (!watch && stats.hasErrors()) process.exitCode = 1;
}

@ -4,7 +4,8 @@ import { AutoloadPage } from 'vj/misc/PageLoader';
import i18n from 'vj/utils/i18n';
timeago.register(i18n('timeago_locale'));
const locales = require.context('timeago.js/lib/lang', false, /\.js$/);
timeago.register(i18n('timeago_locale'), locales(`./${i18n('timeago_locale')}.js`).default);
function runRelativeTime($container) {
$container.find('span.time.relative[data-timestamp]').get().forEach((element) => {
@ -15,7 +16,7 @@ function runRelativeTime($container) {
$element.attr('data-tooltip', $element.text());
$element.attr('datetime', ($element.attr('data-timestamp') || 0) * 1000);
$element.attr('data-has-timeago', '1');
timeago.render(element);
timeago.render(element, i18n('timeago_locale'));
});
}

Loading…
Cancel
Save