mirror of
https://github.com/sismics/docs.git
synced 2025-03-12 07:41:41 +01:00
Merge 52956d0f6150ba041c5aba156bd2ffdc776ec2ec into c2d7f3ebc6368a15aabed3d747ec970751961d46
This commit is contained in:
commit
fbf3a730f2
@ -1,12 +1,19 @@
|
||||
package com.sismics.docs.core.dao;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.base.Strings;
|
||||
import at.favre.lib.crypto.bcrypt.BCrypt;
|
||||
import java.sql.Timestamp;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.joda.time.DateTime;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.base.Strings;
|
||||
import com.sismics.docs.core.constant.AuditLogType;
|
||||
import com.sismics.docs.core.constant.Constants;
|
||||
import com.sismics.docs.core.dao.criteria.UserCriteria;
|
||||
@ -19,11 +26,10 @@ import com.sismics.docs.core.util.jpa.QueryUtil;
|
||||
import com.sismics.docs.core.util.jpa.SortCriteria;
|
||||
import com.sismics.util.context.ThreadLocalContext;
|
||||
|
||||
import at.favre.lib.crypto.bcrypt.BCrypt;
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.NoResultException;
|
||||
import jakarta.persistence.Query;
|
||||
import java.sql.Timestamp;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* User DAO.
|
||||
@ -234,6 +240,23 @@ public class UserDao {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an active user by its email.
|
||||
*
|
||||
* @param email User's email
|
||||
* @return User
|
||||
*/
|
||||
public User getByEmail(String email) {
|
||||
EntityManager em = ThreadLocalContext.get().getEntityManager();
|
||||
try {
|
||||
Query q = em.createQuery("select u from User u where u.email = :email and u.deleteDate is null");
|
||||
q.setParameter("email", email);
|
||||
return (User) q.getSingleResult();
|
||||
} catch (NoResultException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a user.
|
||||
*
|
||||
|
@ -1,8 +1,32 @@
|
||||
package com.sismics.docs.core.service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import javax.mail.Flags;
|
||||
import javax.mail.Folder;
|
||||
import javax.mail.FolderClosedException;
|
||||
import javax.mail.Message;
|
||||
import javax.mail.Session;
|
||||
import javax.mail.Store;
|
||||
import javax.mail.internet.InternetAddress;
|
||||
import javax.mail.search.FlagTerm;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.util.concurrent.AbstractScheduledService;
|
||||
import com.sismics.docs.core.constant.ConfigType;
|
||||
import com.sismics.docs.core.dao.TagDao;
|
||||
import com.sismics.docs.core.dao.UserDao;
|
||||
import com.sismics.docs.core.dao.criteria.TagCriteria;
|
||||
import com.sismics.docs.core.dao.dto.TagDto;
|
||||
import com.sismics.docs.core.event.DocumentCreatedAsyncEvent;
|
||||
@ -15,16 +39,6 @@ import com.sismics.docs.core.util.TransactionUtil;
|
||||
import com.sismics.docs.core.util.jpa.SortCriteria;
|
||||
import com.sismics.util.EmailUtil;
|
||||
import com.sismics.util.context.ThreadLocalContext;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.mail.*;
|
||||
import javax.mail.search.FlagTerm;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* Inbox scanning service.
|
||||
@ -88,7 +102,8 @@ public class InboxService extends AbstractScheduledService {
|
||||
Message[] messages = inbox.search(new FlagTerm(new Flags(Flags.Flag.SEEN), false));
|
||||
log.info(messages.length + " messages found");
|
||||
for (Message message : messages) {
|
||||
importMessage(message, tagsNameToId);
|
||||
InternetAddress sender = (InternetAddress) message.getFrom()[0];
|
||||
importMessage(message, tagsNameToId,sender);
|
||||
lastSyncMessageCount++;
|
||||
}
|
||||
} catch (FolderClosedException e) {
|
||||
@ -190,8 +205,8 @@ public class InboxService extends AbstractScheduledService {
|
||||
* @param message Message
|
||||
* @throws Exception e
|
||||
*/
|
||||
private void importMessage(Message message, Map<String, String> tags) throws Exception {
|
||||
log.info("Importing message: " + message.getSubject());
|
||||
private void importMessage(Message message, Map<String, String> tags,InternetAddress sender) throws Exception {
|
||||
log.info("Importing message: " + message.getSubject()+",sender="+sender.getAddress());
|
||||
|
||||
// Parse the mail
|
||||
EmailUtil.MailContent mailContent = new EmailUtil.MailContent();
|
||||
@ -219,8 +234,12 @@ public class InboxService extends AbstractScheduledService {
|
||||
log.debug("Tags found: " + String.join(", ", tagsFound));
|
||||
subject = subject.trim().replaceAll(" +", " ");
|
||||
}
|
||||
|
||||
document.setUserId("admin");
|
||||
UserDao userDao = new UserDao();
|
||||
com.sismics.docs.core.model.jpa.User user = userDao.getByEmail(sender.getAddress());
|
||||
if(user!=null)
|
||||
document.setUserId(user.getId());
|
||||
else
|
||||
document.setUserId("admin");
|
||||
document.setTitle(StringUtils.abbreviate(subject, 100));
|
||||
document.setDescription(StringUtils.abbreviate(mailContent.getMessage(), 4000));
|
||||
document.setSubject(StringUtils.abbreviate(mailContent.getSubject(), 500));
|
||||
@ -232,9 +251,13 @@ public class InboxService extends AbstractScheduledService {
|
||||
} else {
|
||||
document.setCreateDate(mailContent.getDate());
|
||||
}
|
||||
if(user!=null)
|
||||
DocumentUtil.createDocument(document, user.getId());
|
||||
else{
|
||||
// Save the document, create the base ACLs
|
||||
DocumentUtil.createDocument(document, "admin");
|
||||
}
|
||||
|
||||
// Save the document, create the base ACLs
|
||||
DocumentUtil.createDocument(document, "admin");
|
||||
|
||||
// Add the tag
|
||||
String tagId = ConfigUtil.getConfigStringValue(ConfigType.INBOX_TAG);
|
||||
@ -253,12 +276,19 @@ public class InboxService extends AbstractScheduledService {
|
||||
|
||||
// Raise a document created event
|
||||
DocumentCreatedAsyncEvent documentCreatedAsyncEvent = new DocumentCreatedAsyncEvent();
|
||||
documentCreatedAsyncEvent.setUserId("admin");
|
||||
if(user!=null)
|
||||
documentCreatedAsyncEvent.setUserId(user.getId());
|
||||
else
|
||||
documentCreatedAsyncEvent.setUserId("admin");
|
||||
documentCreatedAsyncEvent.setDocumentId(document.getId());
|
||||
ThreadLocalContext.get().addAsyncEvent(documentCreatedAsyncEvent);
|
||||
|
||||
// Add files to the document
|
||||
for (EmailUtil.FileContent fileContent : mailContent.getFileContentList()) {
|
||||
if(user!=null)
|
||||
FileUtil.createFile(fileContent.getName(), null, fileContent.getFile(), fileContent.getSize(),
|
||||
document.getLanguage(), user.getId(), document.getId());
|
||||
else
|
||||
FileUtil.createFile(fileContent.getName(), null, fileContent.getFile(), fileContent.getSize(),
|
||||
document.getLanguage(), "admin", document.getId());
|
||||
}
|
||||
|
@ -241,7 +241,7 @@ insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values(
|
||||
insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-swe', 'coverage', 'Sweden', 214);
|
||||
insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-che', 'coverage', 'Switzerland', 215);
|
||||
insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-syr', 'coverage', 'Syrian Arab Republic', 216);
|
||||
insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-twn', 'coverage', 'Taiwan, Province of China', 217);
|
||||
insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-twn', 'coverage', 'Taiwan', 217);
|
||||
insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-tjk', 'coverage', 'Tajikistan', 218);
|
||||
insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-tza', 'coverage', 'Tanzania, United Republic of', 219);
|
||||
insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-tha', 'coverage', 'Thailand', 220);
|
||||
|
@ -4,5 +4,5 @@
|
||||
<p>${messages('email.template.route_step_validate.hello', user_name)}</p>
|
||||
<p>${messages['email.template.route_step_validate.instruction1']}</p>
|
||||
<p>${messages['email.template.route_step_validate.instruction2']}</p>
|
||||
<a href="${base_url}/#/document/${document_id}">${document_title}</a>
|
||||
<a href="${base_url}/#/document/view/${document_id}/content">${document_title}</a>
|
||||
</@layout.email>
|
@ -1,10 +1,10 @@
|
||||
email.template.password_recovery.subject=\u8ACB\u91CD\u65B0\u8A2D\u7F6E\u60A8\u7684\u5BC6\u78BC
|
||||
email.template.password_recovery.hello=\u60A8\u597D{0}\uFF01
|
||||
email.template.password_recovery.instruction1=\u6211\u5011\u6536\u5230\u4E86\u91CD\u7F6E\u5BC6\u78BC\u7684\u8ACB\u6C42\u3002<br/>\u5982\u679C\u60A8\u6C92\u6709\u8ACB\u6C42\u5E6B\u52A9\uFF0C\u8ACB\u5FFD\u7565\u6B64\u96FB\u5B50\u90F5\u4EF6\u3002
|
||||
email.template.password_recovery.instruction2=\u8981\u91CD\u7F6E\u60A8\u7684\u5BC6\u78BC\uFF0C\u8ACB\u8A2A\u554F\u4EE5\u4E0B\u93C8\u63A5\uFF1A
|
||||
email.template.password_recovery.click_here=\u9EDE\u64CA\u9019\u88E1\u91CD\u7F6E\u60A8\u7684\u5BC6\u78BC
|
||||
email.template.route_step_validate.subject=\u4E00\u4EFD\u6587\u4EF6\u9700\u8981\u4F60\u7684\u95DC\u6CE8
|
||||
email.template.route_step_validate.hello={0}\uFF0C\u60A8\u597D.
|
||||
email.template.route_step_validate.instruction1=\u5DE5\u4F5C\u6D41\u6B65\u9A5F\u5DF2\u7D93\u5206\u914D\u7D66\u60A8\uFF0C\u9700\u8981\u60A8\u7684\u95DC\u6CE8\u3002
|
||||
email.template.route_step_validate.instruction2=\u8981\u67E5\u770B\u6587\u6A94\u4E26\u9A57\u8B49\u5DE5\u4F5C\u6D41\u7A0B\uFF0C\u8ACB\u8A2A\u554F\u4EE5\u4E0B\u93C8\u63A5\uFF1A
|
||||
email.no_html.error=\u60A8\u7684\u96FB\u5B50\u90F5\u4EF6\u5BA2\u6236\u7AEF\u4E0D\u652F\u6301HTML\u683C\u5F0F\u90F5\u4EF6
|
||||
email.template.password_recovery.subject=\u8acb\u91cd\u65b0\u8a2d\u7f6e\u60a8\u7684\u5bc6\u78bc
|
||||
email.template.password_recovery.hello=\u60a8\u597d{0}\uff01
|
||||
email.template.password_recovery.instruction1=\u6211\u5011\u6536\u5230\u91cd\u7f6e\u5bc6\u78bc\u7684\u8981\u6c42\u3002<br/>\u5982\u679c\u60a8\u6c92\u6709\u8981\u6c42\u5354\u52a9\uff0c\u8acb\u5ffd\u7565\u6b64\u96fb\u5b50\u90f5\u4ef6\u3002
|
||||
email.template.password_recovery.instruction2=\u8981\u91cd\u7f6e\u60a8\u7684\u5bc6\u78bc\uff0c\u8acb\u8a2a\u554f\u4ee5\u4e0b\u9023\u7d50\uff1a
|
||||
email.template.password_recovery.click_here=\u9ede\u64ca\u9019\u88e1\u91cd\u7f6e\u60a8\u7684\u5bc6\u78bc
|
||||
email.template.route_step_validate.subject=\u4e00\u4efd\u6587\u4ef6\u9700\u8981\u4f60\u7684\u95dc\u6ce8
|
||||
email.template.route_step_validate.hello={0}\uff0c\u60a8\u597d.
|
||||
email.template.route_step_validate.instruction1=\u5de5\u4f5c\u6d41\u7a0b\u5df2\u7d93\u5206\u914d\u7d66\u60a8\uff0c\u9700\u8981\u60a8\u7684\u95dc\u6ce8\u3002
|
||||
email.template.route_step_validate.instruction2=\u8981\u67e5\u770b\u6587\u6a94\u4e26\u5be9\u6838\u5de5\u4f5c\u6d41\u7a0b\uff0c\u8acb\u8a2a\u554f\u4ee5\u4e0b\u9023\u7d50\uff1a
|
||||
email.no_html.error=\u60a8\u7684\u96fb\u5b50\u90f5\u4ef6\u5ba2\u6236\u7aef\u7a0b\u5f0f\u4e0d\u652f\u63f4HTML\u683c\u5f0f\u90f5\u4ef6
|
||||
|
@ -1,5 +1,21 @@
|
||||
package com.sismics.docs.rest.resource;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URLDecoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.nio.file.StandardCopyOption;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.List;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
import org.glassfish.jersey.media.multipart.FormDataBodyPart;
|
||||
import org.glassfish.jersey.media.multipart.FormDataParam;
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.io.ByteStreams;
|
||||
@ -27,30 +43,27 @@ import com.sismics.util.HttpUtil;
|
||||
import com.sismics.util.JsonUtil;
|
||||
import com.sismics.util.context.ThreadLocalContext;
|
||||
import com.sismics.util.mime.MimeType;
|
||||
import org.glassfish.jersey.media.multipart.FormDataBodyPart;
|
||||
import org.glassfish.jersey.media.multipart.FormDataParam;
|
||||
|
||||
import jakarta.json.Json;
|
||||
import jakarta.json.JsonArrayBuilder;
|
||||
import jakarta.json.JsonObjectBuilder;
|
||||
import jakarta.ws.rs.*;
|
||||
import jakarta.ws.rs.Consumes;
|
||||
import jakarta.ws.rs.DELETE;
|
||||
import jakarta.ws.rs.FormParam;
|
||||
import jakarta.ws.rs.GET;
|
||||
import jakarta.ws.rs.NotFoundException;
|
||||
import jakarta.ws.rs.POST;
|
||||
import jakarta.ws.rs.PUT;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.PathParam;
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.QueryParam;
|
||||
import jakarta.ws.rs.WebApplicationException;
|
||||
import jakarta.ws.rs.core.HttpHeaders;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
import jakarta.ws.rs.core.Response;
|
||||
import jakarta.ws.rs.core.Response.Status;
|
||||
import jakarta.ws.rs.core.StreamingOutput;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URLDecoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.nio.file.StandardCopyOption;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.List;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
/**
|
||||
* File REST resources.
|
||||
@ -637,7 +650,7 @@ public class FileResource extends BaseResource {
|
||||
}
|
||||
|
||||
Response.ResponseBuilder builder = Response.ok(stream)
|
||||
.header(HttpHeaders.CONTENT_DISPOSITION, "inline; filename=\"" + file.getFullName("data") + "\"")
|
||||
.header(HttpHeaders.CONTENT_DISPOSITION, "inline; filename*=utf-8''" + filenameEncode( file.getFullName("data") ))
|
||||
.header(HttpHeaders.CONTENT_TYPE, mimeType);
|
||||
if (decrypt) {
|
||||
// Cache real files
|
||||
@ -651,6 +664,15 @@ public class FileResource extends BaseResource {
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
private String filenameEncode(String name) {
|
||||
try {
|
||||
return java.net.URLEncoder.encode(name, "UTF-8").replace("+", "%20");
|
||||
} catch (java.io.UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all files from a document, zipped.
|
||||
*
|
||||
|
@ -39,13 +39,21 @@
|
||||
"global_quota_warning": "<strong>提醒!</strong> 全球配额存储空间已经使用 {{ current | number: 0 }}MB 占总存储配额 {{ total | number: 0 }}MB 的 ({{ percent | number: 1 }}%)"
|
||||
},
|
||||
"document": {
|
||||
"navigation_up": "上一层",
|
||||
"toggle_navigation": "切换文件夹导航",
|
||||
"display_mode_list": "在列表中显示文件",
|
||||
"display_mode_grid": "以网格显示文件",
|
||||
"search_simple": "简单搜索",
|
||||
"search_fulltext": "全文搜索",
|
||||
"search_creator": "创建者",
|
||||
"search_language": "语言",
|
||||
"search_before_date": "在此日期之前",
|
||||
"search_after_date": "在此日期之后",
|
||||
"search_before_update_date": "在此日期之前更新",
|
||||
"search_after_update_date": "在此日期之后更新",
|
||||
"search_tags": "标签",
|
||||
"search_shared": "仅共享文件",
|
||||
"search_workflow": "分配给我的工作流程",
|
||||
"search_clear": "清除",
|
||||
"any_language": "所有语言",
|
||||
"add_document": "添加一个文档",
|
||||
@ -56,6 +64,7 @@
|
||||
"search": "搜索",
|
||||
"search_empty": "无匹配 <strong>\"{{ search }}\"</strong>",
|
||||
"shared": "已共享",
|
||||
"current_step_name": "当前步骤",
|
||||
"title": "标题",
|
||||
"description": "介绍",
|
||||
"contributors": "贡献者",
|
||||
@ -67,16 +76,17 @@
|
||||
"format": "格式",
|
||||
"source": "来源",
|
||||
"type": "类型",
|
||||
"coverage": "覆盖",
|
||||
"rights": "权利",
|
||||
"coverage": "范围",
|
||||
"rights": "版权",
|
||||
"relations": "关联",
|
||||
"page_size": "页面大小",
|
||||
"page_size_10": "10 每页",
|
||||
"page_size_20": "20 每页",
|
||||
"page_size_30": "30 每页",
|
||||
"page_size_10": "每页10列",
|
||||
"page_size_20": "每页20列",
|
||||
"page_size_30": "每页30列",
|
||||
"upgrade_quota": "如需要升级您的限额, 请联系管理员",
|
||||
"quota": "{{ current | number: 0 }}MB ({{ current | number: 1 }}%) 已使用 {{ total | number: 0 }}MB",
|
||||
"count": "找到{{ count }}个文件",
|
||||
"last_updated": "最后更新 {{ date | timeAgo: dateFormat }}",
|
||||
"view": {
|
||||
"delete_comment_title": "删除评论",
|
||||
"delete_comment_message": "您是否确认删除此评论?",
|
||||
@ -106,7 +116,13 @@
|
||||
"upload_error": "上传失败",
|
||||
"upload_error_quota": "已达到您的限额",
|
||||
"drop_zone": "将文件拖放至此处上传",
|
||||
"add_files": "添加文件"
|
||||
"add_files": "添加文件",
|
||||
"file_processing_indicator": "此文件正在处理中。该文件正在处理中。在处理完毕之前,将无法进行搜索。",
|
||||
"reprocess_file": "重新处理该文件",
|
||||
"upload_new_version": "传新版本",
|
||||
"open_versions": "显示历史版本",
|
||||
"display_mode_list": "以列表形式显示文件",
|
||||
"display_mode_grid": "以网格方式显示文件"
|
||||
},
|
||||
"workflow": {
|
||||
"workflow": "工作流程",
|
||||
@ -117,7 +133,8 @@
|
||||
"full_name": "<strong>{{ name }}</strong>开始于{{ create_date | date }}",
|
||||
"cancel_workflow": "取消当前的工作流程",
|
||||
"cancel_workflow_title": "取消工作流程",
|
||||
"cancel_workflow_message": "你真的想取消当前的工作流程吗?"
|
||||
"cancel_workflow_message": "你真的想取消当前的工作流程吗?",
|
||||
"no_workflow": "您不能在此文档上启动任何工作流程。"
|
||||
},
|
||||
"permissions": {
|
||||
"permissions": "权限",
|
||||
@ -136,7 +153,6 @@
|
||||
"edit": {
|
||||
"document_edited_with_errors": "文档编辑成功但部分文件没能上传",
|
||||
"document_added_with_errors": "文档成功添加但部分文件没能上传",
|
||||
"document_added": "文档成功上传 (与{{ count }}个文件)",
|
||||
"quota_reached": "达到限额",
|
||||
"primary_metadata": "主要元数据",
|
||||
"title_placeholder": "资源的性质或类型",
|
||||
@ -163,7 +179,10 @@
|
||||
"latest_activity": "最新活动",
|
||||
"footer_sismics": "由<a href=\"https://www.sismics.com\" target=\"_blank\">Sismics</a>精心制作",
|
||||
"api_documentation": "API 存档",
|
||||
"feedback": "欢迎提供反馈意见"
|
||||
"feedback": "欢迎提供反馈意见",
|
||||
"workflow_document_list": "分配给您的文件",
|
||||
"select_all": "全选",
|
||||
"select_none": "不选"
|
||||
},
|
||||
"pdf": {
|
||||
"export_title": "以PDF形式导出",
|
||||
@ -184,12 +203,22 @@
|
||||
"previous": "上一个",
|
||||
"next": "下一个",
|
||||
"not_found": "文件未找到"
|
||||
},
|
||||
"edit": {
|
||||
"title": "编辑档案",
|
||||
"name": "文档名称"
|
||||
},
|
||||
"versions": {
|
||||
"title": "历史版本",
|
||||
"filename": "文档名称",
|
||||
"mimetype": "类型",
|
||||
"create_date": "创建日期",
|
||||
"version": "版本"
|
||||
}
|
||||
},
|
||||
"tag": {
|
||||
"new_tag": "新标签",
|
||||
"search": "搜索",
|
||||
"edit_tag": "更改标签",
|
||||
"default": {
|
||||
"title": "标签",
|
||||
"message_1": "<strong>标签</strong> 是和文档相关的标示.",
|
||||
@ -204,7 +233,9 @@
|
||||
"name": "名称",
|
||||
"color": "颜色",
|
||||
"parent": "母",
|
||||
"info": "此标记的权限也将应用于已标记的文档 <span class=\"label label-info\" ng-style=\"{ 'background': color }\">{{ name }}</span>"
|
||||
"info": "此标记的权限也将应用于已标记的文档 <span class=\"label label-info\" ng-style=\"{ 'background': color }\">{{ name }}</span>",
|
||||
"circular_reference_title": "重复引用",
|
||||
"circular_reference_message": "父标签的层级结构形成了一个循环,请选择另一个父标签。"
|
||||
}
|
||||
},
|
||||
"group": {
|
||||
@ -239,6 +270,7 @@
|
||||
"menu_user_account": "用户帐号",
|
||||
"menu_two_factor_auth": "双重身份验证",
|
||||
"menu_opened_sessions": "已打开会话",
|
||||
"menu_file_importer": "批量文件导入程序",
|
||||
"menu_general_settings": "一般设置",
|
||||
"menu_workflow": "工作流程",
|
||||
"menu_users": "用户",
|
||||
@ -246,7 +278,23 @@
|
||||
"menu_vocabularies": "词条",
|
||||
"menu_configuration": "配置",
|
||||
"menu_inbox": "收件箱扫描",
|
||||
"menu_server_logs": "服务器日志",
|
||||
"menu_ldap": "LDAP 身份验证",
|
||||
"menu_metadata": "自定义元数据",
|
||||
"menu_monitoring": "监控",
|
||||
"ldap": {
|
||||
"title": "LDAP 身份验证",
|
||||
"enabled": "启用 LDAP 身份验证",
|
||||
"host": "LDAP 主机名",
|
||||
"port": "LDAP 端口(默认为 389)",
|
||||
"usessl": "启用 SSL (ldaps)",
|
||||
"admin_dn": "管理员 DN",
|
||||
"admin_password": "管理员密码",
|
||||
"base_dn": "基本搜索 DN",
|
||||
"filter": "搜索过滤器(必须包含 USERNAME, eg. \"(uid=USERNAME)\")",
|
||||
"default_email": "LDAP 用户的默认电子邮件",
|
||||
"default_storage": "LDAP 用户的默认存储空间",
|
||||
"saved": "成功保存 LDAP 配置"
|
||||
},
|
||||
"user": {
|
||||
"title": "用户 <small>管理</small>",
|
||||
"add_user": "添加用户",
|
||||
@ -256,6 +304,8 @@
|
||||
"edit": {
|
||||
"delete_user_title": "删除用户",
|
||||
"delete_user_message": "您是否确认删除该用户? 所有相关文档,文件和标签将被删除",
|
||||
"user_used_title": "用户使用中",
|
||||
"user_used_message": "该用户用于工作流程 \"{{ name }}\"",
|
||||
"edit_user_failed_title": "用户已存在",
|
||||
"edit_user_failed_message": "该用户名已被占用",
|
||||
"edit_user_title": "<small>编辑</small> \"{{ username }}\"",
|
||||
@ -270,7 +320,10 @@
|
||||
"disabled": "禁用用户",
|
||||
"password_reset_btn": "给该用户发送密码重置电子邮件",
|
||||
"password_lost_sent_title": "密码重置邮件已发送",
|
||||
"password_lost_sent_message": "密码重置电子邮件已发送至 <strong>{{ username }}</strong>"
|
||||
"password_lost_sent_message": "密码重置电子邮件已发送至 <strong>{{ username }}</strong>",
|
||||
"disable_totp_btn": "为该用户禁用双因素身份验证",
|
||||
"disable_totp_title": "禁用双因素身份验证",
|
||||
"disable_totp_message": "您确定要禁用该用户的双因素身份验证吗?"
|
||||
}
|
||||
},
|
||||
"workflow": {
|
||||
@ -291,7 +344,10 @@
|
||||
"type_validate": "验证",
|
||||
"target": "分配给",
|
||||
"target_help": "<strong>批准:</strong>审核并继续工作流程<strong>验证:</strong>接受或拒绝审核",
|
||||
"add_step": "添加工作流程步骤"
|
||||
"add_step": "添加工作流程步骤",
|
||||
"actions": "之后会发生什么呢?",
|
||||
"remove_action": "移除行动",
|
||||
"acl_info": "只有在此定义的用户和组才能在文档上启动此工作流程"
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
@ -311,7 +367,10 @@
|
||||
"message": "您的帐户将不再受双重身份验证保护.",
|
||||
"confirm_password": "确认您的密码",
|
||||
"submit": "不激活双重身份验证"
|
||||
}
|
||||
},
|
||||
"test_totp": "请输入手机上显示的验证码:",
|
||||
"test_code_success": "验证码 OK",
|
||||
"test_code_fail": "此代码无效,请仔细检查您的手机是否正确配置或禁用双因素身份验证"
|
||||
},
|
||||
"group": {
|
||||
"title": "群组 <small>管理</small>",
|
||||
@ -322,6 +381,8 @@
|
||||
"delete_group_message": "您是否确认删除该组?",
|
||||
"edit_group_failed_title": "组已存在",
|
||||
"edit_group_failed_message": "该组名已经被占用",
|
||||
"group_used_title": "使用中的组",
|
||||
"group_used_message": "组用于工作流程 \"{{ name }}\"",
|
||||
"edit_group_title": "编辑 <small>\"{{ name }}\"</small>",
|
||||
"add_group_title": "<small>添加一个</small>组",
|
||||
"name": "名称",
|
||||
@ -359,7 +420,23 @@
|
||||
"smtp_from": "发送邮件",
|
||||
"smtp_username": "SMTP 用户名",
|
||||
"smtp_password": "SMTP密码",
|
||||
"smtp_updated": "SMTP组态更新成功"
|
||||
"smtp_updated": "SMTP组态更新成功",
|
||||
"title_ocr": "光学字符识别 (OCR)",
|
||||
"message_ocr": "OCR 是一种从图像和 PDF 文件中提取文本的功能。该功能需要在服务器上安装一个正常运行的 Tesseract。",
|
||||
"enable_ocr": "启用 OCR",
|
||||
"disable_ocr": "禁用 OCR",
|
||||
"webhooks": "Webhooks",
|
||||
"webhooks_explain": "当指定事件发生时,Webhooks 将被调用。给定的 URL 将与包含事件名称和相关资源 ID 的 JSON 有效负载一起被 POST。",
|
||||
"webhook_event": "事件",
|
||||
"webhook_url": "URL",
|
||||
"webhook_create_date": "创建日期",
|
||||
"webhook_add": "添加 Webhook"
|
||||
},
|
||||
"metadata": {
|
||||
"title": "自定义元数据配置",
|
||||
"message": "在这里,您可以为文档添加自定义元数据,如内部标识符或过期日期。请注意,元数据类型在创建后无法更改。",
|
||||
"name": "元数据名称",
|
||||
"type": "元数据类型"
|
||||
},
|
||||
"inbox": {
|
||||
"title": "收件箱扫描",
|
||||
@ -367,6 +444,7 @@
|
||||
"enabled": "启用收件箱扫描",
|
||||
"hostname": "IMAP主机名",
|
||||
"port": "IMAP端口(143或993)",
|
||||
"starttls": "启用 STARTTLS",
|
||||
"username": "IMAP用户名",
|
||||
"password": "IMAP密码",
|
||||
"folder": "IMAP 件夹中",
|
||||
@ -374,13 +452,23 @@
|
||||
"test": "测试参数",
|
||||
"last_sync": "上次同步:{{ data.date | date }},{{ data.count }}消息导入",
|
||||
"test_success": "与收件箱的连接成功({{count}}消息)",
|
||||
"test_fail": "连接到收件箱时发生错误,请检查参数"
|
||||
"test_fail": "连接到收件箱时发生错误,请检查参数",
|
||||
"saved": "IMAP 配置保存成功",
|
||||
"autoTagsEnabled": "从标有 # 的主题行自动添加标签",
|
||||
"deleteImported": "导入后从邮箱中删除邮件"
|
||||
},
|
||||
"log": {
|
||||
"title": "服务器 <small>日志</small>",
|
||||
"date": "日期",
|
||||
"tag": "标签",
|
||||
"message": "信息"
|
||||
"monitoring": {
|
||||
"background_tasks": "后台任务",
|
||||
"queued_tasks": "当前有 {{ count }} 队列任务。",
|
||||
"queued_tasks_explain": "文件处理、缩略图创建、索引更新、光学字符识别都是后台任务。大量未处理的任务会导致搜索结果不完整。",
|
||||
"server_logs": "服务器日志",
|
||||
"log_date": "日期",
|
||||
"log_tag": "标签",
|
||||
"log_message": "信息",
|
||||
"indexing": "编制索引",
|
||||
"indexing_info": "如果发现搜索结果存在差异,可以尝试进行全面的重新索引。在完成此操作之前,搜索结果将是不完整的。",
|
||||
"start_reindexing": "开始全面重新索引",
|
||||
"reindexing_started": "重新索引已开始,请等待后台任务结束。"
|
||||
},
|
||||
"session": {
|
||||
"title": "打开 <small>会话</small>",
|
||||
@ -401,6 +489,18 @@
|
||||
"value": "值",
|
||||
"order": "顺序",
|
||||
"new_entry": "新输入"
|
||||
},
|
||||
"fileimporter": {
|
||||
"title": "批量文件导入程序",
|
||||
"advanced_users": "面向高级用户!",
|
||||
"need_intro": "如果您需要:",
|
||||
"need_1": "一次性导入一个文件目录",
|
||||
"need_2": "扫描目录以查找新文件并将其导入",
|
||||
"line_1": "转到 <a href=\"https://github.com/sismics/docs/releases\">sismics/docs/releases</a> 并为你的系统下载文件导入工具。",
|
||||
"line_2": "请按照<a href=\"https://github.com/sismics/docs/tree/master/docs-importer\">此处的说明</a>使用该工具。",
|
||||
"line_3": "您的文件将根据文件导入器的配置导入到文档中。",
|
||||
"download": "下载",
|
||||
"instructions": "使用说明"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
@ -437,16 +537,17 @@
|
||||
"Document": "文档",
|
||||
"File": "文件",
|
||||
"Group": "组",
|
||||
"RouteModel": "工作流程",
|
||||
"Route": "工作流程",
|
||||
"Tag": "标签",
|
||||
"User": "用户",
|
||||
"RouteModel": "工作流程",
|
||||
"Route": "工作流程"
|
||||
"Webhook": "Webhook"
|
||||
},
|
||||
"selectrelation": {
|
||||
"typeahead": "请输入一个文档名称"
|
||||
"typeahead": "请输入文档名称"
|
||||
},
|
||||
"selecttag": {
|
||||
"typeahead": "请输入一个标签"
|
||||
"typeahead": "请输入标签"
|
||||
},
|
||||
"datepicker": {
|
||||
"current": "今天",
|
||||
@ -470,7 +571,7 @@
|
||||
},
|
||||
"workflow_type": {
|
||||
"VALIDATE": "验证",
|
||||
"APPROVE": "赞许"
|
||||
"APPROVE": "批准"
|
||||
},
|
||||
"workflow_transition": {
|
||||
"APPROVED": "批准",
|
||||
@ -484,14 +585,44 @@
|
||||
"email": "必须是一个有效邮箱地址",
|
||||
"password_confirm": "密码和确认密码必须完全一致",
|
||||
"number": "必须为数字",
|
||||
"no_space": "不允许空格"
|
||||
"no_space": "不允许空格",
|
||||
"alphanumeric": "只允许使用字母和数字"
|
||||
},
|
||||
"action_type": {
|
||||
"ADD_TAG": "添加标签",
|
||||
"REMOVE_TAG": "移除标签",
|
||||
"PROCESS_FILES": "处理文件"
|
||||
},
|
||||
"pagination": {
|
||||
"previous": "上一个",
|
||||
"next": "下一个",
|
||||
"first": "第一",
|
||||
"last": "持续"
|
||||
"first": "页首",
|
||||
"last": "尾页"
|
||||
},
|
||||
"onboarding": {
|
||||
"step1": {
|
||||
"title": "第一次来?",
|
||||
"description": "如果您是第一次访问 Teedy,请单击 “下一步 ”按钮,否则请随时关闭我。"
|
||||
},
|
||||
"step2": {
|
||||
"title": "文件",
|
||||
"description": "Teedy 以文件形式组织,每个文件包含多个文件。"
|
||||
},
|
||||
"step3": {
|
||||
"title": "文档",
|
||||
"description": "您可以在创建文档后或之前使用快速上传区域添加文件。"
|
||||
},
|
||||
"step4": {
|
||||
"title": "检索",
|
||||
"description": "这是找回文件的主要方法。还可以使用放大镜按钮进行高级搜索。"
|
||||
},
|
||||
"step5": {
|
||||
"title": "标签",
|
||||
"description": "您可以使用标签来模拟目录结构(如超级文件夹)。请在此处进行配置。"
|
||||
}
|
||||
},
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"ok": "确认",
|
||||
"cancel": "取消",
|
||||
"share": "共享",
|
||||
@ -504,6 +635,8 @@
|
||||
"export": "导出",
|
||||
"edit": "编辑",
|
||||
"delete": "删除",
|
||||
"rename": "Rename",
|
||||
"download": "Download",
|
||||
"loading": "加载中...",
|
||||
"send": "发送",
|
||||
"enabled": "激活",
|
||||
|
@ -1,155 +1,171 @@
|
||||
{
|
||||
"login": {
|
||||
"username": "用戶名",
|
||||
"username": "帳號",
|
||||
"password": "密碼",
|
||||
"validation_code_required": "請輸入驗證碼",
|
||||
"validation_code_title": "您的帳號已經激活了雙身份驗證. 請輸入您配置手機app的提供的驗證碼.",
|
||||
"validation_code_title": "您的帳號已經啟用雙因素驗證. 請輸入您手機app提供的驗證碼.",
|
||||
"validation_code": "驗證碼",
|
||||
"remember_me": "記住我",
|
||||
"submit": "登錄",
|
||||
"login_as_guest": "以遊客身份登錄",
|
||||
"login_failed_title": "登錄失敗",
|
||||
"login_failed_message": "用戶名或密碼不正確",
|
||||
"password_lost_btn": "密碼丟失?",
|
||||
"submit": "登入",
|
||||
"login_as_guest": "以訪客身份登入",
|
||||
"login_failed_title": "登入失敗",
|
||||
"login_failed_message": "帳號或密碼不正確",
|
||||
"password_lost_btn": "忘記密碼?",
|
||||
"password_lost_sent_title": "發送密碼重置郵件",
|
||||
"password_lost_sent_message": "一封電子郵件已經發送到<strong>{{username}}</ strong>以重置您的密碼",
|
||||
"password_lost_error_title": "密碼重置錯誤",
|
||||
"password_lost_error_message": "無法發送密碼重置電子郵件,請聯繫您的管理員進行手動重置"
|
||||
},
|
||||
"passwordlost": {
|
||||
"title": "密碼丟失",
|
||||
"message": "請輸入您的用戶名以接收密碼重置鏈接。 如果您不記得您的用戶名,請聯繫您的管理員",
|
||||
"title": "忘記密碼",
|
||||
"message": "請輸入您的帳號以接收密碼重置連結。 如果您不記得您的帳號,請聯繫您的管理員",
|
||||
"submit": "重置我的密碼"
|
||||
},
|
||||
"passwordreset": {
|
||||
"message": "請輸入一個新的密碼",
|
||||
"submit": "更改我的密碼",
|
||||
"error_title": "更改密碼出錯",
|
||||
"error_message": "您的密碼恢復請求已超時,請在登錄頁面上提出新的請求"
|
||||
"message": "請輸入新的密碼",
|
||||
"submit": "變更我的密碼",
|
||||
"error_title": "密碼變更錯誤",
|
||||
"error_message": "您的密碼恢復請求已超時,請在登入頁面上提出新的請求"
|
||||
},
|
||||
"index": {
|
||||
"toggle_navigation": "切換導航",
|
||||
"nav_documents": "文檔",
|
||||
"toggle_navigation": "切換顯示方式",
|
||||
"nav_documents": "文件",
|
||||
"nav_tags": "標籤",
|
||||
"nav_users_groups": "用戶 & 群組",
|
||||
"nav_users_groups": "帳號 & 群組",
|
||||
"error_info": "{{ count }} 新錯誤",
|
||||
"logged_as": "以 {{ username }}登錄",
|
||||
"logged_as": "以 {{ username }}登入",
|
||||
"nav_settings": "設置",
|
||||
"logout": "退出",
|
||||
"global_quota_warning": "<strong>提醒!</ strong>存儲空間已經使用{{current | number: 0}} MB({{percent | number: 1}}%)總計{{total | number: 0}} MB"
|
||||
"logout": "登出",
|
||||
"global_quota_warning": "<strong>提醒!</ strong>儲存空間已經使用{{current | number: 0}} MB({{percent | number: 1}}%)總計{{total | number: 0}} MB"
|
||||
},
|
||||
"document": {
|
||||
"search_simple": "簡單搜索",
|
||||
"search_fulltext": "全文搜索",
|
||||
"search_creator": "創建者",
|
||||
"navigation_up": "上一层",
|
||||
"toggle_navigation": "切換資料夾顯示方式",
|
||||
"display_mode_list": "清單顯示",
|
||||
"display_mode_grid": "網格顯示",
|
||||
"search_simple": "簡易搜尋",
|
||||
"search_fulltext": "全文檢索",
|
||||
"search_creator": "建立者",
|
||||
"search_language": "語言",
|
||||
"search_before_date": "在該日期之前",
|
||||
"search_after_date": "在該日期之後",
|
||||
"search_before_update_date": "在此日期之前更新",
|
||||
"search_after_update_date": "在此日期之後更新",
|
||||
"search_tags": "標籤",
|
||||
"search_shared": "僅共享文件",
|
||||
"search_workflow": "分配給我的工作流程",
|
||||
"search_clear": "清除",
|
||||
"any_language": "任何語言",
|
||||
"add_document": "添加一個文檔",
|
||||
"import_eml": "從電子郵件導入(EML格式)",
|
||||
"add_document": "新增文件",
|
||||
"import_eml": "從電子郵件匯入(EML格式)",
|
||||
"tags": "標籤",
|
||||
"no_tags": "無標籤",
|
||||
"no_documents": "數據庫中無該文檔",
|
||||
"search": "搜索",
|
||||
"search_empty": "無匹配 <strong>\"{{ search }}\"</strong>",
|
||||
"no_documents": "無此文件",
|
||||
"search": "搜尋",
|
||||
"search_empty": "搜尋不到 <strong>\"{{ search }}\"</strong>",
|
||||
"shared": "分享",
|
||||
"title": "標題",
|
||||
"description": "介绍",
|
||||
"current_step_name": "當前步驟",
|
||||
"title": "文件名稱",
|
||||
"description": "簡介",
|
||||
"contributors": "貢獻者",
|
||||
"language": "語言",
|
||||
"creation_date": "創建時間",
|
||||
"creation_date": "建立時間",
|
||||
"subject": "主題",
|
||||
"identifier": "識別碼",
|
||||
"publisher": "發布者",
|
||||
"publisher": "發佈者",
|
||||
"format": "格式",
|
||||
"source": "來源",
|
||||
"type": "類型",
|
||||
"coverage": "覆蓋",
|
||||
"rights": "權利",
|
||||
"coverage": "範圍",
|
||||
"rights": "版權",
|
||||
"relations": "關聯",
|
||||
"page_size": "頁面大小",
|
||||
"page_size_10": "10 每頁",
|
||||
"page_size_20": "20 每頁",
|
||||
"page_size_30": "20 每頁",
|
||||
"upgrade_quota": "如需要升級您的限額, 請聯繫管理員",
|
||||
"page_size_10": "每頁10列",
|
||||
"page_size_20": "每頁20列",
|
||||
"page_size_30": "每頁30列",
|
||||
"upgrade_quota": "如需要擴充檔案容量, 請聯繫管理員",
|
||||
"quota": "{{ current | number: 0 }}MB ({{ current | number: 1 }}%) 已使用 {{ total | number: 0 }}MB",
|
||||
"count": "{{ count }} 文檔找到",
|
||||
"count": "{{ count }} 文件找到",
|
||||
"last_updated": "最後更新 {{ date | timeAgo: dateFormat }}",
|
||||
"view": {
|
||||
"delete_comment_title": "刪除評論",
|
||||
"delete_comment_message": "您是否確認刪除此評論?",
|
||||
"delete_document_title": "刪除文檔",
|
||||
"delete_document_message": "您是否確認刪除此文檔?",
|
||||
"shared_document_title": "共享文檔",
|
||||
"shared_document_message": "您可以直接通過發送該鏈接來分享該文檔. 注意:任何有該鏈接的人員均可查看該文檔.<br/><input class=\"form-control share-link\" type=\"text\" readonly=\"readonly\" value=\"{{ link }}\" onclick=\"this.select(); document.execCommand('copy');\" />",
|
||||
"not_found": "文檔未找到",
|
||||
"delete_comment_title": "刪除留言",
|
||||
"delete_comment_message": "您是否確認刪除此留言?",
|
||||
"delete_document_title": "刪除文件",
|
||||
"delete_document_message": "您是否確認刪除此文件?",
|
||||
"shared_document_title": "共享文件",
|
||||
"shared_document_message": "您可以直接通過發送該連結來分享該文件. 注意:任何有該連結的人員均可查看文件.<br/><input class=\"form-control share-link\" type=\"text\" readonly=\"readonly\" value=\"{{ link }}\" onclick=\"this.select(); document.execCommand('copy');\" />",
|
||||
"not_found": "文件未找到",
|
||||
"forbidden": "無權限",
|
||||
"download_files": "下載文檔",
|
||||
"export_pdf": "以PDF格式導出",
|
||||
"download_files": "下載文件",
|
||||
"export_pdf": "以PDF格式匯出",
|
||||
"by_creator": "由",
|
||||
"comments": "評論",
|
||||
"no_comments": "此文檔暫無評論",
|
||||
"add_comment": "添加評論",
|
||||
"error_loading_comments": "評論加載失敗",
|
||||
"workflow_current": "當前工作流程步驟",
|
||||
"workflow_comment": "添加工作流程評論",
|
||||
"workflow_validated_title": "工作流程步驟已驗證",
|
||||
"workflow_validated_message": "工作流步驟已成功驗證。",
|
||||
"comments": "留言",
|
||||
"no_comments": "此文件暫無留言",
|
||||
"add_comment": "新增留言",
|
||||
"error_loading_comments": "留言載入失敗",
|
||||
"workflow_current": "目前工作流程",
|
||||
"workflow_comment": "新增工作流程留言",
|
||||
"workflow_validated_title": "工作流程確認",
|
||||
"workflow_validated_message": "工作流程確認成功。",
|
||||
"content": {
|
||||
"content": "內容",
|
||||
"delete_file_title": "刪除文檔",
|
||||
"delete_file_message": "您是否確認刪除此文檔?",
|
||||
"delete_file_title": "刪除檔案",
|
||||
"delete_file_message": "您是否確認刪除此檔案?",
|
||||
"upload_pending": "等待中...",
|
||||
"upload_progress": "上傳中...",
|
||||
"upload_error": "上傳失敗",
|
||||
"upload_error_quota": "已達到您的限額",
|
||||
"drop_zone": "將文件拖放至此處上傳",
|
||||
"add_files": "添加文件"
|
||||
"upload_error_quota": "超過上限",
|
||||
"drop_zone": "將檔案拖放至此處上傳",
|
||||
"add_files": "新增檔案",
|
||||
"file_processing_indicator": "該文件正在處理中。在完成之前搜尋將不可用。",
|
||||
"reprocess_file": "重新更新檔案",
|
||||
"upload_new_version": "上傳新的版本",
|
||||
"open_versions": "顯示歷史版本",
|
||||
"display_mode_list": "以列表方式顯示",
|
||||
"display_mode_grid": "以網格方式顯示"
|
||||
},
|
||||
"workflow": {
|
||||
"workflow": "工作流程",
|
||||
"message": "使用工作流程與您的組織的人員驗證或驗證您的文檔。",
|
||||
"message": "使用工作流程讓組織中的人員確認或檢閱您的文件。",
|
||||
"workflow_start_label": "哪個工作流程啟動?",
|
||||
"add_more_workflow": "添加更多工作流程",
|
||||
"add_more_workflow": "新增工作流程",
|
||||
"start_workflow_submit": "開始工作流程",
|
||||
"full_name": "<strong>{{ name }}</strong>開始於{{ create_date | date }}",
|
||||
"cancel_workflow": "取消當前的工作流程",
|
||||
"cancel_workflow": "取消目前的工作流程",
|
||||
"cancel_workflow_title": "取消工作流程",
|
||||
"cancel_workflow_message": "你真的想取消當前的工作流程嗎?"
|
||||
"cancel_workflow_message": "你真的想取消目前的工作流程嗎?",
|
||||
"no_workflow": "您無法對此文件啟動任何工作流程。"
|
||||
},
|
||||
"permissions": {
|
||||
"permissions": "權限",
|
||||
"message": "權限可以直接應用於此文檔, 或從 <a href=\"#/tag\">標籤</a>獲取.",
|
||||
"title": "該文檔權限",
|
||||
"inherited_tags": "由標籤獲取的權限",
|
||||
"message": "權限可以直接套用於此文件, 或從 <a href=\"#/tag\">標籤</a>取得.",
|
||||
"title": "文件權限",
|
||||
"inherited_tags": "由標籤取得的權限",
|
||||
"acl_source": "從",
|
||||
"acl_target": "為",
|
||||
"acl_permission": "權限"
|
||||
},
|
||||
"activity": {
|
||||
"activity": "活動",
|
||||
"message": "對該文檔的任何更改都將記錄於此."
|
||||
"message": "對該文件的任何更改都將記錄於此."
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"document_edited_with_errors": "文檔編輯成功但部分文件沒能上傳",
|
||||
"document_added_with_errors": "文檔成功添加但部分文件沒能上傳",
|
||||
"document_added": "文檔已成功添加 (包含 {{ count }} 文件)",
|
||||
"quota_reached": "達到限額",
|
||||
"primary_metadata": "主要元數據",
|
||||
"document_edited_with_errors": "文件編輯成功但部分文件沒能上傳",
|
||||
"document_added_with_errors": "文件成功新增但部分文件沒能上傳",
|
||||
"quota_reached": "達到上限",
|
||||
"primary_metadata": "主要後設資料",
|
||||
"title_placeholder": "資源的性質或類型",
|
||||
"description_placeholder": "資源的賬戶",
|
||||
"new_files": "新文件",
|
||||
"new_files": "新增文件",
|
||||
"orphan_files": "+ {{ count }} 文件",
|
||||
"additional_metadata": "附加元數據",
|
||||
"subject_placeholder": "資源話題",
|
||||
"additional_metadata": "附加後設資料",
|
||||
"subject_placeholder": "主題",
|
||||
"identifier_placeholder": "在給定的上下文中對資源的明確引用",
|
||||
"publisher_placeholder": "負責提供資源的實體",
|
||||
"format_placeholder": "資源的文件格式, 物理介質或維度",
|
||||
"source_placeholder": "從中導出所描述的資源的相關來源",
|
||||
"uploading_files": "上傳文件中..."
|
||||
"format_placeholder": "資源的文件格式、實體媒體或尺寸",
|
||||
"source_placeholder": "從中匯出所描述的資源的相關來源",
|
||||
"uploading_files": "文件上傳中..."
|
||||
},
|
||||
"default": {
|
||||
"upload_pending": "等待中...",
|
||||
@ -158,24 +174,27 @@
|
||||
"upload_error_quota": "達到限額",
|
||||
"quick_upload": "快速上傳",
|
||||
"drop_zone": "將文件拖放至此處上傳",
|
||||
"add_files": "添加文件",
|
||||
"add_new_document": "添加至新文檔",
|
||||
"add_files": "新增檔案",
|
||||
"add_new_document": "新增文件",
|
||||
"latest_activity": "最新活動",
|
||||
"footer_sismics": "<span class=\"fas fa-heart\"></span> 由 <a href=\"https://www.sismics.com\" target=\"_blank\">Sismics</a> 精心製作",
|
||||
"api_documentation": "API 存檔",
|
||||
"feedback": "歡迎提供反饋意見"
|
||||
"feedback": "歡迎回饋意見",
|
||||
"workflow_document_list": "指派給您的文件",
|
||||
"select_all": "全選",
|
||||
"select_none": "不選"
|
||||
},
|
||||
"pdf": {
|
||||
"export_title": "以PDF形式導出",
|
||||
"export_metadata": "導出元數據",
|
||||
"export_comments": "導出評論",
|
||||
"fit_to_page": "使圖像適合頁面",
|
||||
"margin": "餘量",
|
||||
"millimeter": "毫米"
|
||||
"export_title": "以PDF形式匯出",
|
||||
"export_metadata": "匯出後設資料",
|
||||
"export_comments": "匯出留言",
|
||||
"fit_to_page": "符合頁面",
|
||||
"margin": "頁邊",
|
||||
"millimeter": "公釐"
|
||||
},
|
||||
"share": {
|
||||
"title": "共享文檔",
|
||||
"message": "如果您想多次共享同一文檔,請將共享命名.",
|
||||
"title": "共享文件",
|
||||
"message": "如果您想要多次共享相同文件,請為共享命名。",
|
||||
"submit": "共享"
|
||||
}
|
||||
},
|
||||
@ -183,36 +202,48 @@
|
||||
"view": {
|
||||
"previous": "上一個",
|
||||
"next": "下一個",
|
||||
"not_found": "文件未找到"
|
||||
"not_found": "未找到文件"
|
||||
},
|
||||
"edit": {
|
||||
"title": "編輯檔案",
|
||||
"name": "檔案名稱"
|
||||
},
|
||||
"versions": {
|
||||
"title": "版本歷史",
|
||||
"filename": "檔名",
|
||||
"mimetype": "類型",
|
||||
"create_date": "建立日期",
|
||||
"version": "版本"
|
||||
}
|
||||
},
|
||||
"tag": {
|
||||
"new_tag": "新標籤",
|
||||
"search": "搜索",
|
||||
"edit_tag": "更改標籤",
|
||||
"new_tag": "新增",
|
||||
"search": "搜尋",
|
||||
"default": {
|
||||
"title": "標籤",
|
||||
"message_1": "<strong>標籤</strong> 是和文檔相關的標示.",
|
||||
"message_2": "一個文檔可以由多個標籤標記, 同時一個標籤可以運用於多個文檔.",
|
||||
"message_3": "使用該 <span class=\"fas fa-pencil-alt\"></span> 按鈕, 您可以編輯標籤的權限.",
|
||||
"message_4": "如果一個標籤可以被另一個用戶或組讀取, 相關的文件也可以被這些人閱讀.",
|
||||
"message_5": "例如, 用一個標籤標記您公司的文檔 <span class=\"label label-info\">我的公司</span> 並同時添加權限 <strong>可讀</strong> 給一個群組的 <span class=\"btn btn-default\">員工</span>"
|
||||
"message_1": "<strong>標籤</strong>是用來連結文件的標記.",
|
||||
"message_2": "文件可以對應多個標籤, 同時標籤也可以運用於多個文件.",
|
||||
"message_3": "點選 <span class=\"fas fa-pencil-alt\"></span> 按鈕, 您可以設定標籤權限.",
|
||||
"message_4": "如果標籤可以被帳號或群組讀取, 相關聯的文件也可以被這些人閱讀.",
|
||||
"message_5": "例如, 用標籤標記您公司文件 <span class=\"label label-info\">我的公司</span> 並同時賦予 <strong>可讀</strong> 權限給群組\"<span class=\"btn btn-default\">員工</span>\""
|
||||
},
|
||||
"edit": {
|
||||
"delete_tag_title": "刪除標籤",
|
||||
"delete_tag_message": "您是否確認刪除該標籤?",
|
||||
"delete_tag_message": "是否刪除?",
|
||||
"name": "名稱",
|
||||
"color": "顏色",
|
||||
"parent": "母",
|
||||
"info": "此標記的權限也將應用於已標記的文檔 <span class=\"label label-info\" ng-style=\"{ 'background': color }\">{{ name }}</span>"
|
||||
"parent": "上層",
|
||||
"info": "此標籤上的權限將套用至關聯的文件 <span class=\"label label-info\" ng-style=\"{ 'background': color }\">{{ name }}</span>",
|
||||
"circular_reference_title": "重複引用",
|
||||
"circular_reference_message": "上層標籤的層次結構形成循環,請選擇另一個上層標籤。"
|
||||
}
|
||||
},
|
||||
"group": {
|
||||
"profile": {
|
||||
"members": "組成員",
|
||||
"no_members": "無組成員",
|
||||
"related_links": "相關鏈接",
|
||||
"edit_group": "編輯 {{ name }} 組"
|
||||
"members": "群組成員",
|
||||
"no_members": "沒有成員",
|
||||
"related_links": "相關連結",
|
||||
"edit_group": "編輯 {{ name }} 群組"
|
||||
}
|
||||
},
|
||||
"user": {
|
||||
@ -220,230 +251,300 @@
|
||||
"groups": "群組",
|
||||
"quota_used": "已使用配額",
|
||||
"percent_used": "{{ percent | number: 0 }}% 已使用",
|
||||
"related_links": "相關鏈接",
|
||||
"document_created": "文檔由 {{ username }} 創建",
|
||||
"edit_user": "編輯 {{ username }} 用戶"
|
||||
"related_links": "相關連接",
|
||||
"document_created": "文件由 {{ username }} 建立",
|
||||
"edit_user": "編輯 {{ username }} 帳號"
|
||||
}
|
||||
},
|
||||
"usergroup": {
|
||||
"search_groups": "搜索群組",
|
||||
"search_users": "搜索用戶",
|
||||
"search_groups": "搜尋群組",
|
||||
"search_users": "搜尋帳號",
|
||||
"you": "您",
|
||||
"default": {
|
||||
"title": "用戶 & 群組",
|
||||
"message": "此處您可以瀏覽用戶和群組信息."
|
||||
"title": "帳號 & 群組",
|
||||
"message": "此處您可以瀏覽帳號和群組資訊."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"menu_personal_settings": "個人設置",
|
||||
"menu_user_account": "用戶帳號",
|
||||
"menu_two_factor_auth": "雙重身份驗證",
|
||||
"menu_opened_sessions": "已打開會話",
|
||||
"menu_general_settings": "一般設置",
|
||||
"menu_personal_settings": "個人設定",
|
||||
"menu_user_account": "帳號",
|
||||
"menu_two_factor_auth": "雙因素驗證",
|
||||
"menu_opened_sessions": "已開啟之連線",
|
||||
"menu_file_importer": "匯入大量檔案",
|
||||
"menu_general_settings": "一般設定",
|
||||
"menu_workflow": "工作流程",
|
||||
"menu_users": "用戶",
|
||||
"menu_users": "使用者",
|
||||
"menu_groups": "群組",
|
||||
"menu_vocabularies": "詞條",
|
||||
"menu_configuration": "配置",
|
||||
"menu_inbox": "收件箱掃描",
|
||||
"menu_server_logs": "服務器日誌",
|
||||
"menu_vocabularies": "詞彙",
|
||||
"menu_configuration": "設定",
|
||||
"menu_inbox": "收件匣",
|
||||
"menu_ldap": "LDAP 驗證",
|
||||
"menu_metadata": "自訂後置資料",
|
||||
"menu_monitoring": "監控",
|
||||
"ldap": {
|
||||
"title": "LDAP 驗證",
|
||||
"enabled": "啟用Ldap驗證",
|
||||
"host": "主機名稱",
|
||||
"port": "通運埠 port (389)",
|
||||
"usessl": "使用 SSL (ldaps)",
|
||||
"admin_dn": "管理帳號 DN",
|
||||
"admin_password": "管理帳號密碼",
|
||||
"base_dn": "Base search DN",
|
||||
"filter": "過濾 (必須包含 USERNAME, 例如: \"(uid=USERNAME)\")",
|
||||
"default_email": "\"EMAIL\"欄位名稱",
|
||||
"default_storage": "\"可用容量\"欄位名稱",
|
||||
"saved": "LDAP 設定成功"
|
||||
},
|
||||
"user": {
|
||||
"title": "用戶 <small>管理</small>",
|
||||
"add_user": "添加用戶",
|
||||
"username": "用戶名",
|
||||
"create_date": "創建日期",
|
||||
"totp_enabled": "為該用戶啟用雙重身份驗證",
|
||||
"title": "使用者 <small>管理</small>",
|
||||
"add_user": "新增使用者",
|
||||
"username": "使用者",
|
||||
"create_date": "建立日期",
|
||||
"totp_enabled": "啟用雙因素驗證",
|
||||
"edit": {
|
||||
"delete_user_title": "刪除用戶",
|
||||
"delete_user_message": "您是否確認刪除該用戶? 所有相關文檔,文件和標籤將被刪除",
|
||||
"edit_user_failed_title": "用戶已經存在",
|
||||
"edit_user_failed_message": "該用戶名已經被占用",
|
||||
"delete_user_title": "刪除使用者",
|
||||
"delete_user_message": "您是否確認刪除使用者? 所有相關文件,文件和標籤將被刪除",
|
||||
"user_used_title": "正在使用中",
|
||||
"user_used_message": "使用者已參與工作流程 \"{{ name }}\"",
|
||||
"edit_user_failed_title": "使用者已經存在",
|
||||
"edit_user_failed_message": "該使用者正在使用中",
|
||||
"edit_user_title": "<small>編輯</small> \"{{ username }}\"",
|
||||
"add_user_title": "<small>添加一個</small> 用戶",
|
||||
"username": "用戶名",
|
||||
"email": "郵箱",
|
||||
"add_user_title": "<small>新增</small> 使用者",
|
||||
"username": "使用者",
|
||||
"email": "郵件",
|
||||
"groups": "群組",
|
||||
"storage_quota": "存儲限額",
|
||||
"storage_quota_placeholder": "存儲限額 (單位MB)",
|
||||
"storage_quota": "儲存限額",
|
||||
"storage_quota_placeholder": "儲存限額 (單位MB)",
|
||||
"password": "密碼",
|
||||
"password_confirm": "密碼 (確認)",
|
||||
"disabled": "禁用用戶",
|
||||
"password_reset_btn": "給該用戶發送密碼重置電子郵件",
|
||||
"password_lost_sent_title": "密碼重置郵件已發送",
|
||||
"password_lost_sent_message": "密碼重置電子郵件已發送至 <strong>{{ username }}</strong>"
|
||||
"disabled": "禁用",
|
||||
"password_reset_btn": "發送重置密碼電子郵件",
|
||||
"password_lost_sent_title": "重置密碼郵件已發送",
|
||||
"password_lost_sent_message": "重置密碼電子郵件已發送至 <strong>{{ username }}</strong>",
|
||||
"disable_totp_btn": "停用該使用者的雙因素驗證",
|
||||
"disable_totp_title": "停用雙因素驗證",
|
||||
"disable_totp_message": "您確定要為此使用者停用雙因素驗證嗎?"
|
||||
}
|
||||
},
|
||||
"workflow": {
|
||||
"title": "工作流程<small>配置</small>",
|
||||
"add_workflow": "添加工作流程",
|
||||
"title": "工作流程<small>設定</small>",
|
||||
"add_workflow": "新增工作流程",
|
||||
"name": "名稱",
|
||||
"create_date": "創建日期",
|
||||
"create_date": "建立日期",
|
||||
"edit": {
|
||||
"delete_workflow_title": "刪除工作流程",
|
||||
"delete_workflow_message": "你真的想刪除這個工作流程嗎?當前正在運行的工作流程不會被刪除",
|
||||
"delete_workflow_message": "你真的想刪除這個工作流程嗎?目前正在運行的工作流程不會被刪除",
|
||||
"edit_workflow_title": "<small>編輯</small>\"{{name}}\"",
|
||||
"add_workflow_title": "<small>添加一個</small>工作流程",
|
||||
"add_workflow_title": "<small>新增</small>工作流程",
|
||||
"name": "名稱",
|
||||
"name_placeholder": "步驟名稱或說明",
|
||||
"drag_help": "拖放以重新排序步驟",
|
||||
"type": "步驟類型",
|
||||
"type_approve": "批准",
|
||||
"type_validate": "驗證",
|
||||
"target": "分配給",
|
||||
"target_help": "<strong>批准:</strong>審核並繼續工作流程<br/><strong>驗證:</strong>接受或拒絕審核",
|
||||
"add_step": "添加工作流程步驟"
|
||||
"type": "類型",
|
||||
"type_approve": "核准",
|
||||
"type_validate": "檢查",
|
||||
"target": "指派",
|
||||
"target_help": "<strong>檢查:</strong>檢閱並繼續工作流程<br/><strong>核准:</strong>接受或拒絕",
|
||||
"add_step": "新增工作流程",
|
||||
"actions": "設定下一步驟",
|
||||
"remove_action": "移除步驟",
|
||||
"acl_info": "只有此處定義的使用者和群組才能在文件上啟動此工作流程"
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"enable_totp": "激活雙重身份驗證",
|
||||
"enable_totp_message": "請確保您的手機上已經擁有一個TOTP兼容的應用程序方可添加新賬戶",
|
||||
"title": "雙重身份 <small>驗證</small>",
|
||||
"message_1": "雙重身份驗證將讓您的<strong>{{ appName }}</strong> 帳號獲得多一層的安全保障.<br/>在啟用該功能前, 請確保在您的手機上擁有一個與TOTP兼容的應用程序:",
|
||||
"enable_totp": "啟用雙因素驗證",
|
||||
"enable_totp_message": "請確保您的手機上已經擁有相容TOTP的應用程序方可啟用",
|
||||
"title": "雙因素 <small>驗證</small>",
|
||||
"message_1": "雙因素驗證將讓您的<strong>{{ appName }}</strong> 帳號獲得多一層的安全保障.<br/>在啟用該功能前, 請確保在您的手機上擁有TOTP相容的應用程式:",
|
||||
"message_google_authenticator": "給安卓, 蘋果, 和 黑莓系統: <a href=\"https://support.google.com/accounts/answer/1066447\" target=\"_blank\">谷歌認證</a>",
|
||||
"message_duo_mobile": "給 安卓 和 蘋果系統: <a href=\"https://guide.duo.com/third-party-accounts\" target=\"_blank\">Duo Mobile</a>",
|
||||
"message_authenticator": "給 Windows 系統手機: <a href=\"https://www.microsoft.com/en-US/store/apps/Authenticator/9WZDNCRFJ3RJ\" target=\"_blank\">認證</a>",
|
||||
"message_2": "這些應用程序會自動生成一個驗證碼,且該驗證碼在一段時間內會變化.<br/>每次登錄 <strong>{{ appName }}</strong>時您都需要輸入該驗證碼.",
|
||||
"secret_key": "您的秘鑰是: <strong>{{ secret }}</strong>",
|
||||
"secret_key_warning": "現在用該秘鑰配置您的手機應用程序上的TOTP, 您之後將無獲取權限.",
|
||||
"totp_enabled_message": "雙重身份驗證將確保您的帳號.<br/>每次您登錄 <strong>{{ appName }}</strong>時, 您都需要從您配置的手機應用程序的驗證碼.<br/>如果您丟失您的手機, 您將無法登錄您的帳號但有效會話將允許您重新生成密鑰.",
|
||||
"message_2": "這些應用程式會自動生成驗證碼,且該驗證碼在一段時間內會變化.<br/>每次登入 <strong>{{ appName }}</strong>時您都需要輸入該驗證碼.",
|
||||
"secret_key": "您的金鑰是: <strong>{{ secret }}</strong>",
|
||||
"secret_key_warning": "現在用金鑰設定您的手機應用程序上的TOTP, 您之後將無法存取本金鑰.",
|
||||
"totp_enabled_message": "雙因素驗證將確保您的帳號.<br/>每次您登入 <strong>{{ appName }}</strong>時, 您都需要從您設定的手機應用程序的驗證碼.<br/>如果您丟失您的手機, 您將無法登入您的帳號但有效連線將允許您重新生成密鑰.",
|
||||
"disable_totp": {
|
||||
"disable_totp": "不激活雙重身份驗證",
|
||||
"message": "您的帳戶將不再受雙重身份驗證保護.",
|
||||
"disable_totp": "不啟用雙因素驗證",
|
||||
"message": "您的帳號將不再受雙因素驗證保護.",
|
||||
"confirm_password": "確認您的密碼",
|
||||
"submit": "不激活雙重身份驗證"
|
||||
}
|
||||
"submit": "不啟用雙因素驗證"
|
||||
},
|
||||
"test_totp": "請輸入手機上顯示的驗證碼:",
|
||||
"test_code_success": "驗證碼正確",
|
||||
"test_code_fail": "驗證碼無效,請仔細檢查您的手機設定是否正確或停用雙因素驗證"
|
||||
},
|
||||
"group": {
|
||||
"title": "群組 <small>管理</small>",
|
||||
"add_group": "添加組",
|
||||
"add_group": "新增群組",
|
||||
"name": "名稱",
|
||||
"edit": {
|
||||
"delete_group_title": "刪除組",
|
||||
"delete_group_message": "您是否確認刪除該組?",
|
||||
"edit_group_failed_title": "組已經存在",
|
||||
"edit_group_failed_message": "這個組名已經被占用",
|
||||
"delete_group_title": "刪除群組",
|
||||
"delete_group_message": "您是否確認刪除該群組?",
|
||||
"edit_group_failed_title": "群組已經存在",
|
||||
"edit_group_failed_message": "這個群組名已經被使用",
|
||||
"group_used_title": "Group in use",
|
||||
"group_used_message": "This group is used in the workflow \"{{ name }}\"",
|
||||
"edit_group_title": "編輯 <small>\"{{ name }}\"</small>",
|
||||
"add_group_title": "添加 <small>組</small>",
|
||||
"add_group_title": "新增 <small>組</small>",
|
||||
"name": "名稱",
|
||||
"parent_group": "母群組",
|
||||
"search_group": "搜索組",
|
||||
"parent_group": "上層群組",
|
||||
"search_group": "搜尋群組",
|
||||
"members": "成員",
|
||||
"new_member": "新成員",
|
||||
"search_user": "搜索用戶"
|
||||
"search_user": "搜尋帳號"
|
||||
}
|
||||
},
|
||||
"account": {
|
||||
"title": "用戶<small>帳戶</ small>",
|
||||
"title": "帳號<small>帳號</ small>",
|
||||
"password": "密碼",
|
||||
"password_confirm": "密碼 (確認)",
|
||||
"updated": "帳號更新成功"
|
||||
},
|
||||
"config": {
|
||||
"title_guest_access": "遊客 <small>權限</small>",
|
||||
"message_guest_access": "遊客權限是所有人都能無需密碼即獲取 {{ appName }} 的權限模式.<br/>和其他正常用戶一樣, 遊客權限用戶也只能通過其獲取的權限來訪問其文檔.<br/>",
|
||||
"enable_guest_access": "激活遊客權限",
|
||||
"disable_guest_access": "不激活遊客權限",
|
||||
"title_guest_access": "訪客 <small>權限</small>",
|
||||
"message_guest_access": "訪客權限是所有人都能無需密碼即可取得 {{ appName }} 的權限模式.<br/>和其他正常帳號一樣, 訪客權限帳號也只能通過其取得的權限來存取其文件.<br/>",
|
||||
"enable_guest_access": "啟用訪客權限",
|
||||
"disable_guest_access": "不啟用訪客權限",
|
||||
"title_theme": "主題 <small>定制</small>",
|
||||
"title_general": "一般配置",
|
||||
"default_language": "新文檔的默認語言",
|
||||
"application_name": "申請名",
|
||||
"title_general": "一般設定",
|
||||
"default_language": "新文件預設語言",
|
||||
"application_name": "名稱",
|
||||
"main_color": "主顏色",
|
||||
"custom_css": "用戶樣式表",
|
||||
"custom_css_placeholder": "在主樣式表之後添加客戶自定義樣式表",
|
||||
"logo": "圖標 (正方形)",
|
||||
"custom_css": "自訂CSS",
|
||||
"custom_css_placeholder": "在主要stylesheet之後新增自訂CSS",
|
||||
"logo": "標誌 (正方形)",
|
||||
"background_image": "背景圖片",
|
||||
"uploading_image": "上傳圖片中...",
|
||||
"title_smtp": "電子郵件<small>配置</ small>",
|
||||
"smtp_hostname": "SMTP主機名",
|
||||
"smtp_port": "SMTP端口",
|
||||
"smtp_from": "發件人的電子郵件",
|
||||
"smtp_username": "SMTP用戶名",
|
||||
"title_smtp": "電子郵件<small>設定</ small>",
|
||||
"smtp_hostname": "SMTP主機名稱",
|
||||
"smtp_port": "SMTP埠",
|
||||
"smtp_from": "寄件者電子郵件",
|
||||
"smtp_username": "SMTP帳號",
|
||||
"smtp_password": "SMTP密碼",
|
||||
"smtp_updated": "SMTP配置已成功更新"
|
||||
"smtp_updated": "SMTP設定已成功更新",
|
||||
"title_ocr": "光學文字辨識 (OCR)",
|
||||
"message_ocr": "OCR 是一項從圖像和 PDF 文件中提取文字的功能。此功能需要在伺服器上安裝有效的 Tesseract。",
|
||||
"enable_ocr": "啟用 OCR",
|
||||
"disable_ocr": "停用 OCR",
|
||||
"webhooks": "Webhooks觸發",
|
||||
"webhooks_explain": "當指定事件發生時,將呼叫 Webhook。給定的 URL 將使用包含事件名稱和相關資源 ID 的 JSON 負載進行 POST 處理。",
|
||||
"webhook_event": "事件",
|
||||
"webhook_url": "URL",
|
||||
"webhook_create_date": "建立日期",
|
||||
"webhook_add": "新增webhook"
|
||||
},
|
||||
"metadata": {
|
||||
"title": "設定後置資料",
|
||||
"message": "您可以在此處自訂之後置資料至文件中,例如內部識別碼或到期日。請注意,\"類型\"建立後無法變更。",
|
||||
"name": "名稱",
|
||||
"type": "類型"
|
||||
},
|
||||
"inbox": {
|
||||
"title": "收件箱掃描",
|
||||
"message": "通過啟用此功能,系統會定期掃描指定收件箱中的新電子郵件並自動導入它們。",
|
||||
"enabled": "啟用收件箱掃描",
|
||||
"hostname": "IMAP主機名",
|
||||
"port": "IMAP端口(143或993)",
|
||||
"username": "IMAP用戶名",
|
||||
"title": "收件匣掃描",
|
||||
"message": "通過啟用此功能,系統會定期掃描指定收件匣中的新電子郵件並自動匯入它們。",
|
||||
"enabled": "啟用收件匣掃描功能",
|
||||
"hostname": "IMAP主機名稱",
|
||||
"port": "IMAP埠(143或993)",
|
||||
"starttls": "啟用STARTTLS",
|
||||
"username": "IMAP帳號",
|
||||
"password": "IMAP密碼",
|
||||
"folder": "IMAP 資料夾",
|
||||
"tag": "標籤添加到導入的文檔",
|
||||
"tag": "新增標籤到匯入的文件",
|
||||
"test": "測試參數",
|
||||
"last_sync": "上次同步:{{ data.date | date }},{{data.count}}消息導入",
|
||||
"test_success": "與收件箱的連接成功({{ count }} 消息)",
|
||||
"test_fail": "連接到收件箱時發生錯誤,請檢查參數"
|
||||
"last_sync": "上次同步:{{ data.date | date }},{{data.count}}訊息匯入",
|
||||
"test_success": "與收件匣的連接成功({{ count }} 消息)",
|
||||
"test_fail": "連接到收件匣時發生錯誤,請檢查參數",
|
||||
"saved": "設定成功",
|
||||
"autoTagsEnabled": "自動從標有 # 的主旨新增標籤",
|
||||
"deleteImported": "匯入後從郵件匣中刪除郵件"
|
||||
},
|
||||
"log": {
|
||||
"title": "服務器 <small>日誌</small>",
|
||||
"date": "日期",
|
||||
"tag": "標籤",
|
||||
"message": "信息"
|
||||
"monitoring": {
|
||||
"background_tasks": "背景任務",
|
||||
"queued_tasks": "目前有 {{ count }} 任務排列.",
|
||||
"queued_tasks_explain": "文件處理、縮圖建立、索引更新、光學字元辨識是後台任務。大量未處理的任務將導致搜尋結果不完整。",
|
||||
"server_logs": "伺服器日誌",
|
||||
"log_date": "日期",
|
||||
"log_tag": "標籤",
|
||||
"log_message": "訊息",
|
||||
"indexing": "索引",
|
||||
"indexing_info": "如果您發現搜尋結果有差異,可以嘗試進行完整的重新索引。在完成此操作之前,搜尋結果將不完整。",
|
||||
"start_reindexing": "重建全部索引",
|
||||
"reindexing_started": "重建索引開始, 請耐心等待直至無任務排列"
|
||||
},
|
||||
"session": {
|
||||
"title": "打開 <small>會話</small>",
|
||||
"created_date": "創建日期",
|
||||
"last_connection_date": "最後登錄時間",
|
||||
"title": "已開啟 <small>連線</small>",
|
||||
"created_date": "建立日期",
|
||||
"last_connection_date": "最後登入時間",
|
||||
"user_agent": "從",
|
||||
"current": "當前",
|
||||
"current_session": "這是目前會話",
|
||||
"clear_message": "該帳號的所有其他連接將終止",
|
||||
"clear": "清除所有其他會話"
|
||||
"current": "目前",
|
||||
"current_session": "這是目前連線",
|
||||
"clear_message": "該帳號的所有其他連線將中斷",
|
||||
"clear": "清除其他連線"
|
||||
},
|
||||
"vocabulary": {
|
||||
"title": "詞條 <small>輸入</small>",
|
||||
"choose_vocabulary": "選擇一個詞條編輯",
|
||||
"type": "類型",
|
||||
"coverage": "覆蓋",
|
||||
"rights": "權利",
|
||||
"value": "值",
|
||||
"title": "詞彙 <small>輸入</small>",
|
||||
"choose_vocabulary": "選擇詞彙編輯",
|
||||
"type": "一般類型",
|
||||
"coverage": "國家地區",
|
||||
"rights": "授權類",
|
||||
"value": "詞彙",
|
||||
"order": "顺序",
|
||||
"new_entry": "新輸入"
|
||||
"new_entry": "新增詞彙"
|
||||
},
|
||||
"fileimporter": {
|
||||
"title": "匯入大量檔案",
|
||||
"advanced_users": "進階使用者專用!",
|
||||
"need_intro": "阿你如果要:",
|
||||
"need_1": "一次性匯入整個目錄內檔案",
|
||||
"need_2": "掃描目錄內新的檔案並且匯入",
|
||||
"line_1": "前往 <a href=\"https://github.com/sismics/docs/releases\">sismics/docs/releases</a> 並下載適合您系統的檔案匯入工具。",
|
||||
"line_2": "請依照<a href=\"https://github.com/sismics/docs/tree/master/docs-importer\">此處的說明</a>使用此工具。",
|
||||
"line_3": "您的文件將根據設定匯入到文件中。",
|
||||
"download": "下載",
|
||||
"instructions": "匯入步驟"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"title": "歡迎提供反饋意見",
|
||||
"message": "對Teedy文檔管理系統有任何建議或疑問?我們靜候您的反饋意見!",
|
||||
"sent_title": "反饋已發送",
|
||||
"sent_message": "感謝您的反饋意見!這將幫助我們進一步優化Teedy文檔管理系統以便更好的為您提供服務。"
|
||||
"title": "歡迎提供回饋意見",
|
||||
"message": "對Teedy文件管理系統有任何建議或疑問?我們靜候您的回饋意見!",
|
||||
"sent_title": "回饋已發送",
|
||||
"sent_message": "感謝您的回饋意見!這將幫助我們進一步優化Teedy文件管理系統以便更好的為您提供服務。"
|
||||
},
|
||||
"import": {
|
||||
"title": "輸入",
|
||||
"error_quota": "已達到配額限制,請聯繫您的管理員以增加配額",
|
||||
"error_general": "嘗試導入文件時發生錯誤,請確保它是有效的EML文件"
|
||||
"error_general": "嘗試匯入文件時發生錯誤,請確保它是有效的EML文件"
|
||||
},
|
||||
"app_share": {
|
||||
"main": "請求一個共享的文檔鏈接來訪問該文檔",
|
||||
"main": "請求文件共享的連結來存取該文件",
|
||||
"403": {
|
||||
"title": "未經授權",
|
||||
"message": "您正在查看的文檔已經被取消共享"
|
||||
"message": "您正在查看的文件已經被取消共享"
|
||||
}
|
||||
},
|
||||
"directive": {
|
||||
"acledit": {
|
||||
"acl_target": "用於",
|
||||
"acl_permission": "允許",
|
||||
"add_permission": "添加一個許可",
|
||||
"search_user_group": "搜索一個用戶或組"
|
||||
"acl_target": "對象",
|
||||
"acl_permission": "權限",
|
||||
"add_permission": "新增權限",
|
||||
"search_user_group": "搜尋帳號或群組"
|
||||
},
|
||||
"auditlog": {
|
||||
"log_created": "創建",
|
||||
"log_created": "建立",
|
||||
"log_updated": "更新",
|
||||
"log_deleted": "删除",
|
||||
"Acl": "ACL",
|
||||
"Comment": "評論",
|
||||
"Document": "文檔",
|
||||
"Comment": "留言",
|
||||
"Document": "文件",
|
||||
"File": "文件",
|
||||
"Group": "組",
|
||||
"Tag": "標籤",
|
||||
"User": "用戶",
|
||||
"Route": "工作流程",
|
||||
"RouteModel": "工作流程",
|
||||
"Route": "工作流程"
|
||||
"Tag": "標籤",
|
||||
"User": "帳號",
|
||||
"Webhook": "Webhook"
|
||||
},
|
||||
"selectrelation": {
|
||||
"typeahead": "請輸入文檔名稱"
|
||||
"typeahead": "請輸入文件名稱"
|
||||
},
|
||||
"selecttag": {
|
||||
"typeahead": "請輸入標籤"
|
||||
@ -464,48 +565,80 @@
|
||||
"READ": "可讀",
|
||||
"READWRITE": "可寫",
|
||||
"WRITE": "可寫",
|
||||
"USER": "用戶",
|
||||
"USER": "帳號",
|
||||
"GROUP": "組",
|
||||
"SHARE": "已共享"
|
||||
},
|
||||
"workflow_type": {
|
||||
"VALIDATE": "驗證",
|
||||
"APPROVE": "讚許"
|
||||
"VALIDATE": "檢查",
|
||||
"APPROVE": "核准"
|
||||
},
|
||||
"workflow_transition": {
|
||||
"APPROVED": "批准",
|
||||
"REJECTED": "拒絕",
|
||||
"VALIDATED": "驗證"
|
||||
"APPROVED": "核准",
|
||||
"REJECTED": "退回",
|
||||
"VALIDATED": "確認"
|
||||
},
|
||||
"validation": {
|
||||
"required": "必填",
|
||||
"too_short": "過短",
|
||||
"too_long": "過長",
|
||||
"email": "必須是一個有效郵箱地址",
|
||||
"password_confirm": "密碼和確認密碼必須完全一致",
|
||||
"email": "必須是有效郵件地址",
|
||||
"password_confirm": "密碼必須一致",
|
||||
"number": "必須為數字",
|
||||
"no_space": "不允許空格"
|
||||
"no_space": "不允許空格",
|
||||
"alphanumeric": "只允許使用字母和數字"
|
||||
},
|
||||
"action_type": {
|
||||
"ADD_TAG": "加入標籤",
|
||||
"REMOVE_TAG": "移除標籤",
|
||||
"PROCESS_FILES": "處理檔案"
|
||||
},
|
||||
"pagination": {
|
||||
"previous": "以前",
|
||||
"next": "下一個",
|
||||
"first": "首先",
|
||||
"last": "最後"
|
||||
"previous": "上一頁",
|
||||
"next": "下一頁",
|
||||
"first": "頁首",
|
||||
"last": "頁尾"
|
||||
},
|
||||
"onboarding": {
|
||||
"step1": {
|
||||
"title": "首次造訪?",
|
||||
"description": "如果這是您第一次使用 Teedy,請按「下一步」按鈕,或取消本導覽。"
|
||||
},
|
||||
"step2": {
|
||||
"title": "文件",
|
||||
"description": "Teedy 以文件的形式組成,每個文件含多個檔案。"
|
||||
},
|
||||
"step3": {
|
||||
"title": "檔案",
|
||||
"description": "您可以在新增文件之後加入檔案,或使用快速上傳區域上傳檔案。"
|
||||
},
|
||||
"step4": {
|
||||
"title": "搜尋",
|
||||
"description": "這是搜尋文件方式,也可以使用放大鏡進行進階搜尋。"
|
||||
},
|
||||
"step5": {
|
||||
"title": "標籤",
|
||||
"description": "可以用利用標籤模擬目錄結構(就像超級資料夾)。請在此進行設定作業。"
|
||||
}
|
||||
},
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"ok": "確認",
|
||||
"cancel": "取消",
|
||||
"share": "共享",
|
||||
"unshare": "不共享",
|
||||
"close": "關閉",
|
||||
"add": "添加",
|
||||
"add": "新增",
|
||||
"open": "打開",
|
||||
"see": "查看",
|
||||
"save": "保存",
|
||||
"export": "導出",
|
||||
"save": "儲存",
|
||||
"export": "匯出",
|
||||
"edit": "編輯",
|
||||
"delete": "刪除",
|
||||
"loading": "加載中...",
|
||||
"rename": "修改名稱",
|
||||
"download": "下載",
|
||||
"loading": "載入中...",
|
||||
"send": "發送",
|
||||
"enabled": "激活",
|
||||
"disabled": "未激活"
|
||||
"enabled": "啟用",
|
||||
"disabled": "未啟用"
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user