From c3c16ae0697648333f0e3146022701836531b756 Mon Sep 17 00:00:00 2001 From: Ryan Wang Date: Mon, 24 Nov 2025 17:16:30 +0800 Subject: [PATCH] Update zh_CN and zh_TW locales with new and revised strings (#6064) --- .changeset/cute-clocks-crash.md | 5 ++ packages/@uppy/locales/src/zh_CN.ts | 123 +++++++++++++++++++++------- packages/@uppy/locales/src/zh_TW.ts | 23 ++++-- 3 files changed, 113 insertions(+), 38 deletions(-) create mode 100644 .changeset/cute-clocks-crash.md diff --git a/.changeset/cute-clocks-crash.md b/.changeset/cute-clocks-crash.md new file mode 100644 index 000000000..fa073506a --- /dev/null +++ b/.changeset/cute-clocks-crash.md @@ -0,0 +1,5 @@ +--- +"@uppy/locales": patch +--- + +Improve zh-CN and zh-TW locale diff --git a/packages/@uppy/locales/src/zh_CN.ts b/packages/@uppy/locales/src/zh_CN.ts index e1d3e103b..36cc14031 100644 --- a/packages/@uppy/locales/src/zh_CN.ts +++ b/packages/@uppy/locales/src/zh_CN.ts @@ -9,23 +9,38 @@ const zh_CN: Locale<0> = { zh_CN.strings = { addBulkFilesFailed: '内部错误导致添加 %{smart_count} 个文件失败', + addedNumFiles: '已添加 %{numFiles} 个文件', + addingMoreFiles: '添加更多文件', + additionalRestrictionsFailed: '有 %{count} 个附加限制未满足', addMore: '添加更多文件', addMoreFiles: '添加更多文件', - addingMoreFiles: '添加更多文件', + aggregateExceedsSize: + '您选择了 %{size} 的文件,但最大允许大小为 %{sizeAllowed}', + allFilesFromFolderNamed: '来自文件夹 %{name} 的所有文件', allowAccessDescription: '为了通过您的相机进行拍照或录像,请给网站相机的访问权限', allowAccessTitle: '请允许对相机的访问权限', + allowAudioAccessDescription: '为了录制音频,请允许网站访问麦克风', + allowAudioAccessTitle: '请允许访问麦克风', + aspectRatioLandscape: '裁剪为横向(16:9)', + aspectRatioPortrait: '裁剪为纵向(9:16)', + aspectRatioSquare: '裁剪为正方形', + authAborted: '认证已中止', + authenticate: '连接', authenticateWith: '连接到 %{pluginName}', authenticateWithTitle: '请使用 %{pluginName} 进行认证以选择文件', back: '返回', browse: '浏览', - browseFiles: '浏览', + browseFiles: '浏览文件', + browseFolders: '浏览文件夹', cancel: '取消', cancelUpload: '取消上传', closeModal: '关闭窗口', companionError: '和 Companion 连接失败了', companionUnauthorizeHint: '请访问 %{url} 以认证您的 %{provider} 账户', complete: '上传完毕', + compressedX: '通过压缩图片节省了 %{size}', + compressingImages: '正在压缩图片…', connectedToInternet: '连接至网络', copyLink: '复制链接', copyLinkToClipboardFallback: '复制以下网址', @@ -33,88 +48,134 @@ zh_CN.strings = { creatingAssembly: '正在准备上传…', creatingAssemblyFailed: 'Transloadit:无法创建程序集', dashboardTitle: '文件上传工具', - dashboardWindowTitle: '文件上传工具窗口(点击离开以关闭)', - dataUploadedOfTotal: '%{total} / %{complete}', + dashboardWindowTitle: '文件上传工具窗口(按 Escape 键关闭)', + dataUploadedOfTotal: '%{complete} / %{total}', + dataUploadedOfUnknown: '%{complete} / 未知大小', + discardMediaFile: '丢弃媒体文件', + discardRecordedFile: '丢弃录制的文件', done: '完成', + dropHereOr: '将文件拖拽到这里或者%{browse}', dropHint: '拖拽文件到这里', - dropPasteBoth: '拖拽文件到这里,或者%{browse}文件', - dropPasteFiles: '拖拽文件到这里,或者%{browse}文件', - dropPasteFolders: '拖拽文件到这里,或者%{browse}文件', - dropPasteImportBoth: '拖拽文件到这里,粘贴、%{browse}或者导入', - dropPasteImportFiles: '拖拽文件到这里,粘贴、%{browse}或者导入', - dropPasteImportFolders: '拖拽文件到这里,粘贴、%{browse}或者导入', + dropPasteBoth: '将文件拖拽到这里,%{browseFiles}或%{browseFolders}', + dropPasteFiles: '将文件拖拽到这里或%{browseFiles}', + dropPasteFolders: '将文件拖拽到这里或%{browseFolders}', + dropPasteImportBoth: + '将文件拖拽到这里,%{browseFiles}、%{browseFolders}或从以下位置导入:', + dropPasteImportFiles: '将文件拖拽到这里,%{browseFiles}或从以下位置导入:', + dropPasteImportFolders: + '将文件拖拽到这里,%{browseFolders}或从以下位置导入:', editFile: '编辑文件', + editFileWithFilename: '编辑文件 %{file}', editImage: '编辑图片', editing: '正在编辑 %{file}', emptyFolderAdded: '无法从空文件夹添加文件', encoding: '正在编码…', - enterCorrectUrl: '错误链接: 请确认您输入的是文件的链接', - enterUrlToImport: '输入链接或者导入文件', - exceedsSize: '文件超过了最大尺寸限制 %{size}', + enterCorrectUrl: '错误链接:请确认您输入的是文件的直接链接', + enterTextToSearch: '输入文字以搜索图片', + enterUrlToImport: '输入链接以导入文件', + error: '错误', + exceedsSize: '%{file} 超过了最大允许大小 %{size}', failedToFetch: 'Companion 无法抓取此链接,请确保它是正确的', failedToUpload: '上传 %{file} 失败', - fileSource: '文件源:%{name}', filesUploadedOfTotal: '已上传 %{smart_count} 个文件中的 %{complete} 个', filter: '筛选器', finishEditingFile: '完成文件编辑', + flipHorizontal: '水平翻转', folderAdded: '从 %{folder} 添加了 %{smart_count} 个文件', + folderAlreadyAdded: '文件夹"%{folder}"已经被添加过了', generatingThumbnails: '正在生成缩略图…', import: '导入', + importFiles: '从以下位置导入文件:', importFrom: '从 %{name} 导入', - inferiorSize: '文件大小必须超过 %{size}', + inferiorSize: '此文件小于最小允许大小 %{size}', + loadedXFiles: '已加载 %{numFiles} 个文件', loading: '正在载入…', + logIn: '登录', logOut: '登出', micDisabled: '麦克风的权限访问被用户拒绝', + missingRequiredMetaField: '缺少必需的元数据字段', + missingRequiredMetaFieldOnFile: '%{fileName} 中缺少必需的元数据字段', + missingRequiredMetaFields: '缺少必需的元数据字段:%{fields}', myDevice: '我的设备', + noAudioDescription: '为了录制音频,请连接麦克风或其他音频输入设备', + noAudioTitle: '麦克风不可用', noCameraDescription: '为了拍摄照片或录制视频,请连接一个摄像设备', noCameraTitle: '摄像头不可用', - noDuplicates: '无法添加重复文件 %{fileName},该文件已存在', + noDuplicates: '无法添加重复文件"%{fileName}",该文件已存在', noFilesFound: '这里空空如也', noInternetConnection: '无法连接到网络', - noMoreFilesAllowed: '无法添加新文件:已正在上传文件', + noMoreFilesAllowed: '无法添加更多文件', + noSearchResults: '很抱歉,没有找到相关搜索结果', openFolderNamed: '打开文件夹 %{name}', pause: '暂停', - pauseUpload: '暂停上传', paused: '已暂停', + pauseUpload: '暂停上传', + pickFiles: '选择文件', + pickPhotos: '选择照片', + pleaseWait: '请稍候', + pluginNameAudio: '音频', + pluginNameCamera: '相机', + pluginNameScreenCapture: '屏幕录制', + pluginNameUrl: '链接', + pluginWebdavInputLabel: 'WebDAV 文件 URL(例如来自 ownCloud 或 Nextcloud)', poweredBy: '强力驱动于 %{uppy}', processingXFiles: '正在处理 %{smart_count} 个文件', recording: '正在录制', - recordingLength: '录制长度 %{recording_length}', - recordingStoppedMaxSize: '录像已停止,文件大小即将超过限制', + recordingLength: '录制时长 %{recording_length}', + recordingStoppedMaxSize: '录制已停止,文件大小即将超过限制', + recordVideoBtn: '录制视频', + recoveredAllFiles: '我们已恢复所有文件。您现在可以继续上传。', + recoveredXFiles: + '我们无法完全恢复 %{smart_count} 个文件。请重新选择它们并继续上传。', removeFile: '删除文件', + reSelect: '重新选择', resetFilter: '重置筛选器', + resetSearch: '重置搜索', resume: '恢复', resumeUpload: '恢复上传', retry: '重试', - retryUpload: '重试', + retryUpload: '重试上传', + revert: '重置', + rotate: '旋转 90°', + save: '保存', saveChanges: '保存变更', - selectFileNamed: '选择文件 %{name}', + search: '搜索', + searchImages: '搜索图片', selectX: '选择 %{smart_count}', + sessionRestored: '会话已恢复', + showErrorDetails: '显示错误详情', + signInWithGoogle: '使用 Google 登录', smile: '笑一笑!', + startAudioRecording: '开始音频录制', startCapturing: '开始屏幕录制', startRecording: '开始视频录制', + stopAudioRecording: '停止音频录制', stopCapturing: '停止屏幕录制', stopRecording: '停止视频录制', streamActive: '视频流已激活', streamPassive: '视频流未激活', - submitRecordedFile: '提交已录制视频', + submitRecordedFile: '提交录制的文件', takePicture: '拍照', - timedOut: '上传已超时 %{seconds} 秒,中止上传', - unselectFileNamed: '取消选择文件 %{name}', + takePictureBtn: '拍照', + takeScreenshot: '截屏', + unnamed: '未命名', upload: '上传', uploadComplete: '上传完成', uploadFailed: '上传失败', - uploadPaused: '上传暂停', - uploadXFiles: '上传 %{smart_count} 个文件', - uploadXNewFiles: '新上传了 %{smart_count} 个文件', uploading: '正在上传', uploadingXFiles: '正在上传 %{smart_count} 个文件', - xFilesSelected: '%{smart_count} 个文件待上传', - xMoreFilesAdded: '又有 %{smart_count} 个文件被添加', + uploadPaused: '上传已暂停', + uploadStalled: '上传已 %{seconds} 秒没有进度。您可能需要重试。', + uploadXFiles: '上传 %{smart_count} 个文件', + uploadXNewFiles: '上传 +%{smart_count} 个文件', + xFilesSelected: '已选择 %{smart_count} 个文件', + xMoreFilesAdded: '又添加了 %{smart_count} 个文件', xTimeLeft: '剩余 %{time}', - youCanOnlyUploadFileTypes: '您只能上传这些文件类型:%{types}', + youCanOnlyUploadFileTypes: '您只能上传:%{types}', youCanOnlyUploadX: '您只能上传 %{smart_count} 个文件', youHaveToAtLeastSelectX: '您至少要选择 %{smart_count} 个文件', + zoomIn: '放大', + zoomOut: '缩小', } // @ts-ignore untyped diff --git a/packages/@uppy/locales/src/zh_TW.ts b/packages/@uppy/locales/src/zh_TW.ts index ed884964b..764c96360 100644 --- a/packages/@uppy/locales/src/zh_TW.ts +++ b/packages/@uppy/locales/src/zh_TW.ts @@ -14,6 +14,8 @@ zh_TW.strings = { additionalRestrictionsFailed: '尚未滿足 %{count} 個額外限制', addMore: '新增更多', addMoreFiles: '新增更多檔案', + aggregateExceedsSize: + '您選擇了 %{size} 的檔案,但最大允許大小為 %{sizeAllowed}', allFilesFromFolderNamed: '資料夾 %{name} 中的所有檔案', allowAccessDescription: '請允許本網站存取相機以拍照或錄影。', allowAccessTitle: '請允許對相機的存取權限', @@ -23,6 +25,7 @@ zh_TW.strings = { aspectRatioPortrait: '裁切成直向 (9:16)', aspectRatioSquare: '裁切成方形', authAborted: '驗證已中止', + authenticate: '連接', authenticateWith: '連接到 %{pluginName}', authenticateWithTitle: '請使用 %{pluginName} 進行身份驗證以選擇檔案', back: '返回', @@ -46,8 +49,11 @@ zh_TW.strings = { dashboardTitle: 'Uppy 儀表板', dashboardWindowTitle: 'Uppy 儀表板視窗(按下 Esc 以關閉)', dataUploadedOfTotal: '%{complete}/%{total}', + dataUploadedOfUnknown: '%{complete} / 未知大小', + discardMediaFile: '捨棄媒體檔案', discardRecordedFile: '捨棄錄影檔', done: '完成', + dropHereOr: '將檔案拖曳到這裡或者%{browse}', dropHint: '將檔案拖曳至此處', dropPasteBoth: '將檔案拖曳至此處、%{browseFiles},或%{browseFolders}', dropPasteFiles: '將檔案拖曳至此處,或%{browseFiles}', @@ -79,7 +85,9 @@ zh_TW.strings = { importFiles: '檔案匯入來源:', importFrom: '從 %{name} 匯入', inferiorSize: '此檔案小於允許的大小:%{size}', + loadedXFiles: '已載入 %{numFiles} 個檔案', loading: '正在載入...', + logIn: '登入', logOut: '登出', micDisabled: '使用者拒絕麥克風存取權限', missingRequiredMetaField: '遺漏中繼資料必要欄位', @@ -99,15 +107,14 @@ zh_TW.strings = { pause: '暫停', paused: '已暫停', pauseUpload: '暫停上傳', + pickFiles: '選擇檔案', + pickPhotos: '選擇照片', + pleaseWait: '請稍候', pluginNameAudio: '音訊', - pluginNameBox: 'Box', pluginNameCamera: '相機', - pluginNameDropbox: 'Dropbox', - pluginNameFacebook: 'Facebook', - pluginNameGoogleDrive: 'Google 雲端硬碟', - pluginNameInstagram: 'Instagram', - pluginNameOneDrive: 'OneDrive', - pluginNameZoom: 'Zoom', + pluginNameScreenCapture: '螢幕錄製', + pluginNameUrl: '連結', + pluginWebdavInputLabel: 'WebDAV 檔案 URL(例如來自 ownCloud 或 Nextcloud)', poweredBy: '技術提供者 %{uppy}', processingXFiles: '正在處理 %{smart_count} 個檔案', recording: '正在錄製', @@ -147,7 +154,9 @@ zh_TW.strings = { submitRecordedFile: '提交錄影檔', takePicture: '拍照', takePictureBtn: '拍照', + takeScreenshot: '螢幕截圖', timedOut: '上傳已停滯 %{seconds} 秒,正在中止上傳。', + unnamed: '未命名', upload: '上傳', uploadComplete: '上傳完成', uploadFailed: '上傳失敗',