translations and version bump (#5878)

This commit is contained in:
Anthony Stirling
2026-03-06 11:09:18 +00:00
committed by GitHub
parent 7c1eb4183b
commit 456106195e
41 changed files with 24601 additions and 1121 deletions
+615 -28
View File
@@ -96,6 +96,8 @@ pin = "固定文件(工具运行后保持活动)"
poweredBy = "མཁོ་སྲོད་བྱེད་མཁན།"
pro = "ཆེད་ལས།"
processTimeWarning = "ཉེན་བཅོས། བྱ་རིམ་འདི་ཡིག་ཆའི་ཆེ་ཆུང་ལ་གཞིགས་ནས་སྐར་མ་གཅིག་བར་འགོར་སྲིད།"
processingComplete = "您的文件已准备就绪。"
processingCompleteMultiple = "{{count}} 个文件已准备就绪。"
property = "ཁྱད་ཆོས།"
quickPosition = "快速定位"
red = "དམར་པོ"
@@ -105,6 +107,7 @@ save = "ཉར་ཚགས།"
saveToBrowser = "བཤར་ཆེ་ནང་ཉར་ཚགས།"
saveUnavailable = "此项无法保存"
seeDockerHub = "Docker Hub ལ་ལྟ་བ།"
editSecret = "编辑此值"
selectFillter = "-- འདེམས་རོགས། --"
size = "大小"
sponsor = "མཐུན་འགྱུར་སྦྱོར་མཁན།"
@@ -651,6 +654,7 @@ description = "配置外部身份验证提供方,如 OAuth2 和 SAML。"
disconnect = "断开连接"
disconnected = "已成功断开提供方"
disconnectError = "断开提供方失败"
documentation = "查看文档"
imageResolutionFull = "完整(原始大小)"
imageResolutionReduced = "缩小(最大 1200px"
linkedServices = "已连接的服务"
@@ -964,6 +968,18 @@ label = "默认区域"
description = "最大文件上传大小(例如:100MB、1GB)"
label = "文件上传限制"
[admin.settings.general.hideDisabledTools]
description = "在界面中隐藏已禁用的工具"
label = "隐藏已禁用的工具"
[admin.settings.general.hideDisabledTools.googleDrive]
description = "未启用时隐藏 Google Drive 按钮"
label = "隐藏 Google Drive"
[admin.settings.general.hideDisabledTools.mobileScanner]
description = "未启用时隐藏移动端 QR 扫描按钮"
label = "隐藏移动端扫描器"
[admin.settings.general.frontendUrl]
description = "前端的基础 URL(例如 https://pdf.example.com)。用于邮件邀请链接和移动端 QR 码上传。留空则使用后端 URL。"
label = "前端 URL"
@@ -1148,6 +1164,8 @@ title = "安全"
[admin.settings.security.audit]
label = "审计日志"
showDetails = "显示审计级别详情"
hideDetails = "隐藏审计级别详情"
[admin.settings.security.audit.enabled]
description = "跟踪用户操作和系统事件,用于合规与安全监控"
@@ -1157,10 +1175,32 @@ label = "启用审计日志"
description = "0=关闭,1=基础,2=标准,3=详细"
label = "审计等级"
[admin.settings.security.audit.levelDetails]
off = "不记录审计日志(关键安全事件除外)"
basic = "PDF 文件操作(压缩、拆分、合并等)和设置变更。捕获:操作状态(成功/失败)、方法参数、时间信息。最小日志量。"
standard = "在 BASIC 事件基础上,另外:用户登录/登出、账户变更、通用 GET 请求。为减少日志噪声,排除持续轮询调用(/auth/me、/app-config、/health 等)。适用于大多数部署。"
verbose = "在 STANDARD 事件基础上,另外:持续轮询调用、所有 GET 请求、详细时间信息。警告:日志量大且影响性能。"
[admin.settings.security.audit.retentionDays]
description = "保留审计日志的天数"
label = "审计保留(天)"
[admin.settings.security.audit.advancedOptions]
title = "高级选项"
description = "以下选项会增加处理时间和内存使用量。仅在确有需要时启用。"
[admin.settings.security.audit.captureFileHash]
description = "提取上传 PDF 文件的 SHA-256 哈希用于完整性校验。与审计级别无关。"
label = "捕获文件哈希(SHA-256"
[admin.settings.security.audit.capturePdfAuthor]
description = "在处理过程中从 PDF 文档中提取作者字段。需要解析 PDF,会增加延迟。与审计级别无关。"
label = "捕获 PDF 作者元数据"
[admin.settings.security.audit.captureOperationResults]
description = "捕获方法返回值。不推荐:会显著增加日志量和磁盘占用。"
label = "捕获操作结果"
[admin.settings.security.csrfDisabled]
description = "禁用跨站请求伪造保护(不推荐)"
label = "禁用 CSRF 保护"
@@ -1536,72 +1576,152 @@ tags = "附件,添加,删除,嵌入,文件"
title = "添加附件"
[audit]
configureAudit = "配置审计日志"
configureAuditMessage = "在“安全与认证”部分调整审计级别、保留期限及其他设置。"
disabled = "已禁用审计日志"
disabledMessage = "请在应用配置中启用审计日志以跟踪系统事件。"
enterpriseRequired = "需要企业版许可证"
enterpriseRequiredMessage = "审计日志系统是企业功能。请升级到企业版许可证以访问审计日志和分析功能。"
goToSettings = "前往审计设置"
notAvailable = "审计系统不可用"
notAvailableMessage = "审计系统未配置或不可用。"
[audit.charts]
byType = "按类型分类的事件"
byUser = "按用户分类的事件"
day = "日"
error = "加载图表时出错"
month = "月"
overTime = "事件随时间变化"
title = "审计仪表板"
week = "周"
[audit.error]
title = "加载审计系统时出错"
[audit.events]
actions = "操作"
clearFilters = "清除"
details = "详情"
endDate = "结束日期"
error = "加载事件时出错"
eventDetails = "事件详情"
filterByType = "按类型筛选"
filterByUser = "按用户筛选"
ipAddress = "IP 地址"
noEvents = "未找到事件"
startDate = "开始日期"
timestamp = "时间戳"
title = "审计事件"
type = "类型"
user = "用户"
viewDetails = "查看详情"
[audit.export]
clearFilters = "清除"
description = "将审计事件导出为 CSV 或 JSON 格式。使用筛选器限制导出数据。"
endDate = "结束日期"
error = "导出数据失败"
exportButton = "导出数据"
fieldAuthor = "作者(来自 PDF"
fieldDate = "日期"
fieldDocumentName = "文档名称"
fieldFileHash = "文件哈希(SHA-256"
fieldIpAddress = "IP 地址"
fieldOperationResults = "操作结果"
fieldOutcome = "结果(成功/失败)"
fieldTool = "工具"
fieldUsername = "用户名"
filterByType = "按类型筛选"
filterByUser = "按用户筛选"
filters = "筛选条件(可选)"
format = "导出格式"
selectFields = "选择要包含的字段"
startDate = "开始日期"
title = "导出审计数据"
verboseRequired = "需要 VERBOSE 审计级别"
[audit.systemStatus]
autoRefresh = "自动刷新"
autoRefreshLabel = "每 30 秒自动刷新"
captureBySettings = "请在设置中启用"
capturedFields = "已捕获字段"
date = "日期"
days = "天"
disabled = "已禁用"
documentName = "文档名称"
enabled = "已启用"
fileHash = "文件哈希"
level = "审计级别"
pdfAuthor = "PDF 作者"
retention = "保留期限"
status = "审计日志"
title = "系统状态"
tool = "工具"
totalEvents = "事件总数"
username = "用户名"
verboseOnly = "仅 VERBOSE"
[audit.stats]
activeUsers = "活跃用户"
attention = "需要关注"
avgLatency = "平均延迟"
error = "加载统计信息出错"
errorLoadingStats = "无法加载统计信息"
excellent = "优秀"
good = "良好"
noData = "N/A"
successRate = "成功率"
title = "概览"
totalEvents = "事件总数"
vsLastPeriod = "较上期"
[audit.charts]
byTool = "最常用工具"
byType = "按类型分类的事件"
byUser = "按用户分类的事件"
day = "日"
error = "加载图表时出错"
hourlyActivity = "分时活动"
month = "月"
noData = "该时段无数据"
overTime = "事件随时间变化"
title = "审计仪表板"
week = "周"
[audit.events]
actions = "操作"
author = "作者"
clearFilters = "清除"
details = "详情"
documentName = "文档"
endDate = "结束日期"
error = "加载事件时出错"
eventDetails = "事件详情"
failure = "失败"
fileHash = "文件哈希"
filterByType = "按类型筛选"
filterByUser = "按用户筛选"
ipAddress = "IP 地址"
noEvents = "未找到事件"
outcome = "状态"
sortAsc = "升序排序"
sortDesc = "降序排序"
startDate = "开始日期"
success = "成功"
timestamp = "时间戳"
title = "审计事件"
type = "类型"
user = "用户"
viewDetails = "查看详情"
[audit.filters]
allOutcomes = "全部"
failureOnly = "仅失败"
last7Days = "过去 7 天"
last30Days = "过去 30 天"
outcomeFilter = "结果"
quickPresets = "快速筛选"
successOnly = "仅成功"
thisMonth = "本月"
today = "今天"
[audit.tabs]
clearData = "清除数据"
dashboard = "仪表板"
events = "审计事件"
export = "导出"
[audit.clearData]
cancel = "取消"
codeDoesNotMatch = "代码不匹配"
codePlaceholder = "在此输入代码"
confirmationCode = "确认代码"
confirmationRequired = "删除全部审计数据"
confirmMessage = "这将永久移除所有审计日志。请输入下方确认代码以继续。"
confirmTitle = "请确认您要删除"
deleteButton = "删除"
enterCode = "确认代码"
enterCodeBelow = "请严格按照上方显示输入代码(区分大小写)"
initiateDelete = "删除全部数据"
irreversible = "不可逆"
success = "成功"
successMessage = "已成功清除所有审计数据"
warning1 = "此操作无法撤销"
warning2 = "删除审计数据将永久移除数据库中的所有历史审计日志,包括安全事件、用户活动和文件操作。"
[auth]
accessDenied = "拒绝访问"
insufficientPermissions = "你没有执行此操作的权限。"
@@ -2254,9 +2374,11 @@ copy = "复制"
done = "完成"
error = "错误"
expand = "展开"
learnMore = "了解更多"
lines = "行"
loading = "正在加载..."
next = "下一步"
operation = "此操作"
preview = "预览"
previous = "上一步"
refresh = "刷新"
@@ -2920,6 +3042,7 @@ copyStack = "Stack Trace པར་སློག"
discordSubmit = "Discord - རྒྱབ་སྐྱོར་སྙན་ཞུ་འབུལ་བ།"
dismissAllErrors = "清除所有错误"
encryptedPdfMustRemovePassword = "此 PDF 已加密或受密码保护。请先解锁再转换为 PDF/A。"
generic = "发生错误"
github = "GitHub སྟེང་དུ་སྙན་ཞུ་འབུལ་བ།"
githubSubmit = "GitHub - སྙན་ཞུ་འབུལ་བ།"
incorrectPasswordProvided = "PDF 密码不正确或未提供。"
@@ -4456,6 +4579,10 @@ upgradeCompleteMessage = "您的订阅已成功升级。现有许可证密钥已
upgradeSuccess = "支付成功!您的订阅已升级。许可证已在服务器上更新。稍后您将收到确认邮件。"
upgradeTitle = "升级到 {{planName}}"
yearly = "按年"
checkoutOpened = "已在浏览器中打开结算页面"
checkoutInstructions = "请在刚打开的浏览器窗口中完成购买。支付完成后返回此处,点击下方按钮刷新您的计费信息。"
refreshBilling = "我已完成支付 - 刷新计费"
closeLater = "稍后再做"
[payment.emailStage]
continue = "继续"
@@ -4679,6 +4806,13 @@ prompt = "选择要提取表格的页面"
submit = "提取"
title = "PDF ནས་ CSV ལ།"
[PDFToXLSX]
header = "PDF 转 Excel"
prompt = "选择要提取表格的页面"
submit = "转换"
title = "PDF 转 ExcelXLSX"
tags = "电子表格,excel,xlsx,表格,提取,转换"
[PDFToHTML]
credit = "此服务使用 pdftohtml 进行文件转换。"
header = "PDF ནས་ HTML ལ།"
@@ -4835,6 +4969,7 @@ customPricing = "自定义"
featureComparison = "功能对比"
from = "起价"
hideComparison = "隐藏功能对比"
included = "已包含"
includedInCurrent = "已包含在您的方案中"
licensedSeats = "已授权:{{count}} 个席位"
manage = "管理"
@@ -4852,9 +4987,11 @@ title = "当前套餐"
[plan.availablePlans]
subtitle = "选择最符合您需求的套餐"
loadError = "无法加载套餐定价。已使用默认值。"
title = "可用套餐"
[plan.enterprise]
siteLicense = "站点许可证"
highlight1 = "定制定价"
highlight2 = "专属支持"
highlight3 = "最新功能"
@@ -4928,6 +5065,81 @@ keyDescription = "粘贴您邮件中的许可证密钥"
success = "许可证已激活!"
successMessage = "您的许可证已成功激活。您现在可以关闭此窗口。"
[plan.team]
name = "团队"
siteLicense = "站点许可证"
[credits]
enableOverageBilling = "启用超额计费"
maybeLater = "稍后再说"
upgrade = "升级"
[credits.modal]
advancedMonitoring = "高级监控"
allInOneWorkspace = "一体化 PDF 工作空间(查看器、工具与代理)"
apiSandbox = "API 沙盒"
contactSales = "联系销售"
creditsRemaining = "剩余 {{current}} / {{total}}"
creditsThisMonth = "每月额度"
current = "当前套餐"
customPricing = "自定义"
customSmartFolders = "自定义智能文件夹"
dedicatedSupportSlas = "专属支持与 SLA"
enterpriseSubscription = "企业版"
everythingInCredits = "包含“额度”中的全部内容,另加:"
everythingInFree = "包含“免费版”的全部功能,另加:"
fasterThroughput = "10 倍吞吐速度"
forRegularWork = "适合常规 PDF 工作:"
freeTier = "免费版"
fullyPrivateFiles = "完全私有的文件"
largeFileProcessing = "大文件处理"
managedMemberMessage = "您可通过团队无限使用额度。如需帮助,请联系您的团队负责人。"
managedMemberTitle = "无限额度"
meteringBillingNote = "超额额度将与您的团队订阅一同按月结算。您可随时在账户设置中查看用量。"
meteringExplanation = "您的团队套餐每月包含 {{credits}} 额度。用完后,系统会通过超额计费自动提供额外额度,确保工作不中断。"
meteringIncluded = "团队套餐每月包含 {{credits}} 额度"
meteringNoCommitment = "无长期绑定,随时可取消"
meteringNeverRunOut = "额度永不断供"
meteringPayAsYouGo = "只为实际使用付费"
meteringPrice = "额外额度 {{price}}/额度"
meteringTitle = "按使用量的超额计费"
monthlyCredits = "每月额度"
orgWideAccess = "组织范围的访问控制"
overage = "超额"
perMonth = "/月"
popular = "热门"
premiumAiModels = "高级 AI 模型"
prioritySupport = "优先支持"
privateDocCloud = "私有文档云"
ragFineTuning = "RAG + 微调"
secureApiAccess = "安全的 API 访问"
selfHostLink = "查看文档与套餐"
selfHostPrompt = "想要自托管?"
standardThroughput = "标准吞吐"
subtitle = "升级到团队版,获取 10 倍额度与更快处理速度。"
subtitlePro = "启用自动超额计费,额度永不断供。"
teamLeaderOnly = "仅团队负责人可启用超额计费"
teamSubscription = "团队"
titleExhausted = "您的免费额度已用完"
titleExhaustedPro = "您的额度已用尽"
unlimitedApiAccess = "无限 API 访问"
unlimitedMonthlyCredits = "站点许可证"
unlimitedSeats = "无限席位"
[credits.modal.features]
everythingInCredits = "包含“额度”中的全部内容,另加:"
everythingInFree = "包含“免费版”的全部功能,另加:"
forRegularWork = "适合常规 PDF 工作:"
[credits.insufficient]
brief = "额度不足。您需要 {{required}} 额度,但当前只有 {{current}}。"
freeTier = "升级到团队版,获取 10 倍额度并支持无限制的超额计费。"
managedMember = "请联系您的团队负责人获取帮助。"
message = "您的额度不足,无法运行 {{tool}}。您当前有 {{current}} 额度。"
messageWithAmount = "您需要 {{required}} 额度来运行 {{tool}},但您只有 {{current}}。"
teamMember = "启用超额计费,额度永不断供。"
title = "额度不足"
[printFile]
header = "ཡིག་ཆ་པར་འདེབས་འཕྲུལ་འཁོར་ལ་པར་འདེབས།"
submit = "པར་འདེབས།"
@@ -5565,6 +5777,70 @@ user = "登录身份"
saas = "Stirling Cloud"
selfhosted = "自托管"
[settings.planBilling]
currentPlan = "当前套餐"
loading = "正在加载计费信息..."
notAvailable = "“套餐与计费”仅在连接到 Stirling CloudSaaS 模式)时可用。"
title = "套餐与计费"
[settings.planBilling.billing]
manageBilling = "管理计费"
nextBillingDate = "下次结算日期"
overageCost = "当前超额费用:{{amount}}{{credits}} 额度)"
[settings.planBilling.credits]
estimatedCost = "预计费用:{{amount}}"
freeTierInfo = "免费版每月包含 {{freeCredits}} 额度。升级到团队版可获得 {{teamCredits}} 额度/月,并支持按量超额计费。"
included = "{{count}} 额度/月(已包含)"
noOverage = "本月无超额费用。您正在使用包含的 {{count}} 额度。"
overage = "+ {{count}} 超额"
overageInfo = "超额额度按每额度 {{price}} 计费。超出每月额度的部分,您只需为实际使用付费。"
title = "额度使用情况"
[settings.planBilling.errors]
fetchFailed = "无法获取计费数据"
retry = "重试"
[settings.planBilling.status]
active = "已激活"
canceled = "已取消"
pastDue = "逾期"
trial = "试用"
[settings.planBilling.tier]
enterprise = "企业"
enterpriseDescription = "定制的企业功能与支持"
free = "免费"
freeDescription = "每月 50 额度"
team = "团队"
teamBadge = "团队"
teamDescription = "包含 500 额度/月,自动超额计费,服务不中断"
teamTooltipCredits = "团队套餐包含 {{credits}} 额度/月。"
teamTooltipFineprint = "仅为超出包含额度的部分付费。"
teamTooltipOverage = "自动按 {{price}}/额度进行超额计费,确保服务不中断。"
[settings.planBilling.team]
managedByTeam = "由团队管理"
memberCount = "{{count}} 名团队成员"
[settings.planBilling.trial]
daysRemaining = "剩余 {{days}} 天"
daysRemainingFull = "您的试用将在 {{days}} 天后结束"
endDate = "到期时间:{{date}}"
endsOn = "试用结束"
title = "免费试用已启用"
[settings.planBilling.upgrade]
cta = "升级到团队版"
featureApi = "用于自动化的 API 访问"
featureCredits = "每月 {{teamCredits}} 额度(免费版为 {{freeCredits}}"
featureMembers = "不限团队成员"
featureSupport = "优先支持"
featureThroughput = "更快的处理吞吐"
opensInBrowser = "将在浏览器中打开以完成升级"
subtitle = "升级到团队版可获得:"
title = "升级您的套餐"
[settings.developer]
apiKeys = "API 密钥"
title = "开发者"
@@ -5689,6 +5965,9 @@ people = "成员"
teams = "团队"
title = "工作区"
[settings.team]
title = "团队"
[setup]
description = "选择您希望使用 Stirling PDF 的方式开始"
welcome = "欢迎使用 Stirling PDF"
@@ -6011,6 +6290,11 @@ desc = "使用分隔页自动拆分"
name = "分隔页"
tooltip = "在扫描时将带有 QR 码的分隔页插入文档之间"
[split.methods.byPoster]
name = "可打印分块"
desc = "将大页面拆分为可打印尺寸"
tooltip = "将超大页面划分为适合在标准纸张(A4、Letter 等)上打印的较小分块"
[split.methods.byPages]
desc = "提取特定页面(1,3,5-10"
name = "页码"
@@ -6029,6 +6313,7 @@ tooltip = "指定最大文件大小(如 10MB、500KB"
[split.methods.prefix]
splitAt = "拆分于"
splitBy = "按以下方式拆分"
splitInto = "拆分为"
[split.methodSelection.tooltip]
bullet1 = "点击方法卡片以选择"
@@ -6048,6 +6333,21 @@ selectMethodFirst = "请先选择一种拆分方法"
chooseMethod = "选择方法"
settings = "设置"
[split.poster]
rightToLeft = "从右到左拆分"
[split.poster.pageSize]
label = "目标页面尺寸"
description = "用于打印的输出页面大小"
[split.poster.xFactor]
label = "水平分割数"
description = "每页按列拆分的数量"
[split.poster.yFactor]
label = "垂直分割数"
description = "每页按行拆分的数量"
[split.tooltip.byChapters]
bullet1 = "书签级别:在第几个级别拆分(1=顶级)"
bullet2 = "包含元数据:保留文档属性"
@@ -6085,6 +6385,14 @@ bullet5 = "若扫描分隔页双面,请启用双面模式"
text = "使用带有 QR 码的实体分隔页自动拆分扫描的文档。非常适合一次性扫描多份文档。"
title = "按分隔页拆分"
[split.tooltip.byPoster]
bullet1 = "目标页面尺寸:选择输出纸张大小(A4、Letter 等)"
bullet2 = "水平/垂直分割:用于拆分的网格大小"
bullet3 = "从右到左:为 RTL 布局反转列顺序"
bullet4 = "打印并拼接这些部分以制作海报"
text = "将较大的 PDF 页面拆分为适合标准纸张尺寸打印的更小分块。非常适合把超大页面制作成海报打印。"
title = "海报打印拆分"
[split.tooltip.byPages]
bullet1 = "单个拆分点:3,7(在第 3 页和第 7 页之后拆分)"
bullet2 = "范围拆分点:3-8(在第 3 页之前与第 8 页之后拆分)"
@@ -6364,9 +6672,13 @@ tags = "དྲ་ངོས་ལེན་པ།,ཤོག་ངོས་ཉར
title = "URL ནས་ PDF ལ།"
[usage]
aboutUsageAnalytics = "关于使用分析"
configureSettings = "配置分析设置"
error = "加载使用统计时出错"
noData = "暂无数据"
noDataMessage = "当前无使用统计数据。"
usageAnalyticsExplanation = "使用分析会跟踪端点请求和工具使用模式。结合审计日志仪表板,您可以全面掌握系统活动、性能与安全事件。"
viewAuditLogs = "查看审计日志"
[usage.chart]
title = "端点使用情况图表"
@@ -6947,3 +7259,278 @@ cancel = "取消"
confirm = "解压"
message = "此 ZIP 包含 {{count}} 个文件。仍要解压吗?"
title = "大型 ZIP 文件"
[cloudBadge]
tooltip = "此操作将使用您的云额度"
[team]
cancelInviteError = "取消邀请失败"
confirmCancelInvite = "确定要取消此邀请吗?"
confirmLeave = "确定要离开此团队吗?"
confirmLeaveLeader = "作为团队负责人,离开将把您从团队中移除。确定要继续吗?"
confirmRemove = "确定要移除此成员吗?"
editName = "编辑团队名称"
inviteCancelled = "已取消邀请"
inviteError = "发送邀请失败"
inviteSent = "邀请已发送"
leader = "负责人"
leaveButton = "离开团队"
leaveError = "离开团队失败"
leaveSuccess = "已成功离开团队"
loading = "正在加载团队信息..."
memberCount = "{{count}} 名成员"
memberRemoved = "已成功移除成员"
namePlaceholder = "输入团队名称"
personal = "个人"
removeError = "移除成员失败"
renameError = "重命名团队失败"
renameSuccess = "团队重命名成功"
[team.invitationBanner]
message = "邀请您加入"
acceptButton = "接受"
rejectButton = "拒绝"
[team.features]
badge = "团队功能"
subtitle = "与团队协作"
title = "团队协作"
viewPlans = "查看套餐"
[team.features.billing]
description = "管理计费与订阅"
title = "计费管理"
[team.features.credits]
description = "所有成员共享额度池"
title = "共享额度"
[team.features.dashboard]
description = "查看团队活动与使用情况"
title = "团队仪表板"
[team.features.invite]
description = "将成员添加到您的团队"
title = "邀请成员"
[team.invite]
cancelLabel = "取消"
invalidEmail = "无效的邮箱地址"
placeholder = "输入邮箱地址"
sendButton = "发送邀请"
title = "邀请团队成员"
[team.members]
emailColumn = "邮箱"
empty = "暂无团队成员"
nameColumn = "姓名"
pending = "待接受"
remove = "移除"
roleColumn = "角色"
title = "团队成员"
[team.upgrade]
button = "升级到团队版"
description = "解锁团队协作功能"
title = "升级到团队套餐"
[provider.oauth2.google]
scope = "登录认证"
[provider.oauth2.google.clientId]
label = "Client ID"
description = "来自 Google Cloud Console 的 OAuth2 Client ID"
[provider.oauth2.google.clientSecret]
label = "Client Secret"
description = "来自 Google Cloud Console 的 OAuth2 Client Secret"
[provider.oauth2.google.scopes]
label = "作用域"
description = "以逗号分隔的 OAuth2 作用域"
[provider.oauth2.google.useAsUsername]
label = "用作用户名"
description = "用作用户名的字段(email、name、given_name、family_name"
[provider.oauth2.github]
scope = "登录认证"
[provider.oauth2.github.clientId]
label = "Client ID"
description = "来自 GitHub Developer Settings 的 OAuth2 Client ID"
[provider.oauth2.github.clientSecret]
label = "Client Secret"
description = "来自 GitHub Developer Settings 的 OAuth2 Client Secret"
[provider.oauth2.github.scopes]
label = "作用域"
description = "以逗号分隔的 OAuth2 作用域"
[provider.oauth2.github.useAsUsername]
label = "用作用户名"
description = "用作用户名的字段(email、login、name"
[provider.oauth2.keycloak]
scope = "SSO"
[provider.oauth2.keycloak.issuer]
label = "Issuer URL"
description = "Keycloak Realm 的 OpenID Connect 发现端点 URL"
[provider.oauth2.keycloak.clientId]
label = "Client ID"
description = "来自 Keycloak 的 OAuth2 Client ID"
[provider.oauth2.keycloak.clientSecret]
label = "Client Secret"
description = "来自 Keycloak 的 OAuth2 Client Secret"
[provider.oauth2.keycloak.scopes]
label = "作用域"
description = "以逗号分隔的 OAuth2 作用域"
[provider.oauth2.keycloak.useAsUsername]
label = "用作用户名"
description = "用作用户名的字段(email、name、given_name、family_name、preferred_username"
[provider.oauth2.generic]
name = "通用 OAuth2"
scope = "SSO"
[provider.oauth2.generic.enabled]
label = "启用通用 OAuth2"
description = "使用自定义 OAuth2 提供商进行认证"
[provider.oauth2.generic.provider]
label = "提供商名称"
description = "您的 OAuth2 提供商名称(例如 Azure AD、Okta"
[provider.oauth2.generic.issuer]
label = "Issuer URL"
description = "支持 OpenID Connect Discovery/.well-known/openid-configuration)的提供商"
[provider.oauth2.generic.clientId]
label = "Client ID"
description = "来自您的提供商的 OAuth2 Client ID"
[provider.oauth2.generic.clientSecret]
label = "Client Secret"
description = "来自您的提供商的 OAuth2 Client Secret"
[provider.oauth2.generic.scopes]
label = "作用域"
description = "以逗号分隔的 OAuth2 作用域"
[provider.oauth2.generic.useAsUsername]
label = "用作用户名"
description = "用作用户名的字段"
[provider.oauth2.generic.autoCreateUser]
label = "自动创建用户"
description = "首次通过 OAuth2 登录时自动创建用户账号"
[provider.oauth2.generic.blockRegistration]
label = "阻止注册"
description = "禁止通过 OAuth2 注册新用户"
[provider.smtp]
name = "SMTP 邮件"
scope = "邮件通知"
[provider.smtp.enabled]
label = "启用邮件"
description = "启用邮件通知与 SMTP 功能"
[provider.smtp.host]
label = "SMTP 主机"
description = "SMTP 服务器的主机名或 IP 地址"
[provider.smtp.port]
label = "SMTP 端口"
description = "SMTP 连接端口(通常为 25、465 或 587"
[provider.smtp.username]
label = "SMTP 用户名"
description = "SMTP 认证用户名"
[provider.smtp.password]
label = "SMTP 密码"
description = "SMTP 认证密码"
[provider.smtp.from]
label = "发件人地址"
description = "作为发件人的邮箱地址"
[provider.saml2]
name = "SAML2"
scope = "SSO (SAML)"
[provider.saml2.enabled]
label = "启用 SAML2"
description = "启用 SAML2 认证(仅企业版)"
[provider.saml2.provider]
label = "提供商名称"
description = "您的 SAML2 提供商名称"
[provider.saml2.registrationId]
label = "注册 ID"
description = "您的服务提供商(SP)应用名称"
[provider.saml2.idpMetadataUri]
label = "IDP 元数据 URI"
description = "您的提供商元数据的 URI"
[provider.saml2.idpSingleLoginUrl]
label = "IDP 单点登录 URL"
description = "用于发起 SSO 的 URL"
[provider.saml2.idpSingleLogoutUrl]
label = "IDP 单点登出 URL"
description = "用于发起 SLO 的 URL"
[provider.saml2.idpIssuer]
label = "IDP Issuer"
description = "您的提供商的 ID"
[provider.saml2.idpCert]
label = "IDP 证书"
description = "证书路径(例如:classpath:okta.cert"
[provider.saml2.privateKey]
label = "私钥"
description = "您的私钥路径"
[provider.saml2.spCert]
label = "SP 证书"
description = "您的签名证书路径"
[provider.saml2.autoCreateUser]
label = "自动创建用户"
description = "首次通过 SAML2 登录时自动创建用户账号"
[provider.saml2.blockRegistration]
label = "阻止注册"
description = "禁止通过 SAML2 注册新用户"
[provider.googledrive]
name = "Google Drive"
scope = "文件导入"
[provider.googledrive.enabled]
label = "启用 Google Drive 文件选择器"
description = "允许用户直接从 Google Drive 导入文件"
[provider.googledrive.clientId]
label = "Client ID"
description = "来自 Google Cloud Console 的 Google OAuth 2.0 Client ID"
[provider.googledrive.apiKey]
label = "API Key"
description = "来自 Google Cloud Console 的 Google Picker API 的 Google API Key"
[provider.googledrive.appId]
label = "App ID"
description = "来自 Google Cloud Console 的 Google Drive App ID"