diff options
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js')
| -rw-r--r-- | packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js | 174 |
1 files changed, 165 insertions, 9 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js index 218b5f3..367efa0 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js @@ -66,6 +66,7 @@ export default { 'register.submit': '注册', 'register.loading': '正在创建账户…', 'register.has_account': '已经有账户了?', + 'register.legal_notice': "创建账户即表示您接受此 hub 的使用条款。依照法律,它须将您的连接日志(IP 地址、日期、操作)保存一年,即使您的账户已被删除。", 'register.login_link': '登录', 'register.recovery_title': '保存您的恢复密钥', 'register.recovery_intro': '如果您忘记了密码短语,此密钥可恢复您的群组身份。请将其保存在密码管理器或安全的地方。', @@ -123,6 +124,7 @@ export default { 'welcome.docs_devel': '开发文档', 'welcome.docs_design': '设计', 'welcome.docs_protocol': '协议', + 'welcome.docs_api': 'API', 'welcome.download': '下载(测试版)', 'welcome.legal': '法律信息', 'register.err_mismatch': '两次输入的密码不一致', @@ -205,6 +207,11 @@ export default { 'group.mkdir_prompt': '新文件夹名称', 'group.mkdir_offline': '未连接到节点。', 'group.download_offline': '未连接到节点 — 无法开始下载。连接会自动恢复,请稍后重试。', + 'group.link_unknown': "此链接指向一个您不是其成员的群组,或该群组已不再使用此名称。", + 'group.link_path_unknown': "此群组中 {path} 处没有内容——文件可能已被移动、重命名或删除。", + 'link.copy': "复制链接", + 'link.copied': "链接已复制", + 'link.copy_failed': "无法复制——链接为 {url}", 'group.download_write_stalled': '文件停止写入磁盘({seconds} 秒无进展)。已中止下载而不是让它一直卡住,请重试。', 'device.add_title': 'This browser is not linked to this node yet', 'device.add_hint': 'Your account is known here, but this browser holds a different key. Approve it from a device already linked — no operator needed.', @@ -270,6 +277,7 @@ export default { 'group.upload_indexing': '建立索引中…', 'video.err_transport': '传输未连接', 'video.err_mse': '该编解码器不支持流式播放:{codec}', + 'video.err_no_mse': '此浏览器不支持视频流式播放(iPhone 需要 iOS 17.1 或更高版本)', 'video.mode_poster': '海报视图', 'video.mode_flat': '平铺列表', 'video.filter_all': 'All', @@ -366,10 +374,17 @@ export default { one: '{n} 张照片', other: '{n} 张照片', }, + 'photo.n_videos': { + one: "{n} 个视频", + other: "{n} 个视频", + }, + 'photo.play_video': "播放视频", 'photo.back': '返回', 'photo.prev': '上一张(←)', 'photo.next': '下一张(→)', 'photo.zip_album': '将相册下载为 zip', + 'photo.slideshow': '幻灯片放映', + 'photo.slideshow_stop': '停止幻灯片放映', 'photo.zoom_in': '放大', 'photo.zoom_out': '缩小', 'photo.zoom_fit_title': '适应窗口', @@ -383,6 +398,13 @@ export default { 'cast.copied': '链接已复制', 'cast.scanning': '正在搜索设备…', 'cast.no_devices': '未找到设备', + 'cast.casting_to': '投放到', + 'cast.seek': '播放位置', + 'cast.waiting': '正在等待电视…', + 'cast.back30': '后退 30 秒', + 'cast.fwd30': '前进 30 秒', + 'cast.play': '播放', + 'cast.pause': '暂停', // Settings 'settings.title': '设置', @@ -412,6 +434,15 @@ export default { 'settings.email_verified': '邮箱地址修改成功。', 'settings.notif_global_disable': '关闭所有通知', 'settings.notif_global_hint': '启用后,所有群组都不会创建通知。', + 'settings.push_label': '此手机上的通知', + 'settings.push_off': '已关闭。开启后,即使 MeshBay 已关闭,也会收到新消息和邀请的通知。', + 'settings.push_pending': '正在等待分发应用的响应…', + 'settings.push_blocked': 'Android 正在阻止 MeshBay 的通知:请在系统设置中允许。', + 'settings.push_ready': '已开启。新通知通过分发应用送达此手机,并经过加密,分发应用无法读取。', + 'settings.push_poll': '已开启。此手机大约每十五分钟检查一次新通知。如需即时收到,可以安装 UnifiedPush 分发应用,例如 ntfy(可选)。', + 'settings.push_global_off': '所有通知关闭期间不会发送任何内容。', + 'push.channel_chat': '消息', + 'push.channel_other': '邀请与账户', 'settings.defaults': '默认值', 'settings.default_tab': 'Default tab', 'settings.default_tab_hint': 'Which tab opens first when you enter a group.', @@ -481,12 +512,11 @@ export default { 'firstrun.hint': 'A hub holds your account and introduces you to nodes. It never sees your files, your messages or your keys.', 'firstrun.btn': 'Continue', 'firstrun.checking': 'Checking…', - 'firstrun.note': 'There is no default on purpose: this application only trusts a hub for its API, never for the interface, which ships with the application itself.', 'device.this_device': 'This device', 'settings.keys_heading': 'Keys on this device', 'settings.hub_heading': 'Hub', 'settings.hub_current': 'Currently', - 'settings.hub_hint': 'Changing this signs you out and restarts the window.', + 'settings.hub_hint': 'The hub this application connects to. Changing it signs you out: your account stays on this hub.', 'settings.hub_change': 'Change', 'settings.keys_where': 'Protected by', 'settings.keys_unprotected': 'No system keyring is running, so your keys are encrypted with a key that is not a secret. Anyone who can read this machine’s files can read them. Start a keyring, or treat this device as untrusted.', @@ -504,12 +534,14 @@ export default { 'settings.node_key_placeholder': '粘贴 node 的 Ed25519 公钥(base64)', 'settings.node_key_submit': '关联 node', 'settings.node_key_success': 'node 关联成功', + 'settings.node_key_unlink': "取消关联", + 'settings.node_key_unlink_confirm': "要从你的账户取消关联该节点吗?在再次关联节点之前,它将停止为你的群组提供服务。", + 'settings.node_key_unlinked': "已取消关联节点", 'settings.node_key_current': '已关联的 node 密钥', // Sidebar 'sidebar.create_group': '创建群组', 'sidebar.settings': '设置', - 'sidebar.admin': '管理', // User menu 'usermenu.language': '语言', @@ -738,6 +770,7 @@ export default { 'transfers.eta_minutes': '剩余 {n} 分钟', 'transfers.eta_hours': '剩余 {n} 小时', 'transfers.failed': '失败', + 'transfers.disk_full': 'node 的磁盘已满', 'group.select': '选择', 'group.select_done': '完成', 'group.actions': '操作({n})', @@ -818,6 +851,7 @@ export default { 'indexdock.next_count': "等待中:{count}", 'indexdock.open': "打开此群组的设置", 'indexdock.hide': "隐藏,直到下一次索引", + 'indexdock.pause': "暂停索引此文件夹", 'chat.load_older': '加载更早的 {n} 条消息', 'chat.start_of_history': '对话开头', 'chat.today': '今天', @@ -864,7 +898,7 @@ export default { 'lazy.reload': '重新加载页面', // Sidebar - 'sidebar.node': 'Node', + 'androidsync.title': 'Android Sync', // Node admin 'node.title': 'Node', @@ -889,6 +923,7 @@ export default { 'node.startup_mode_service': '作为后台服务(开机时启动)', 'node.startup_mode_updating': '正在切换模式 — 请留意管理员权限提示…', 'node.startup_mode_service_unavailable_hint': '后台服务模式需要已安装的版本。如需本地测试,请在具有管理员权限的 PowerShell 中运行 "meshbay-node service install"。', + 'node.startup_mode_service_store_hint': '在任何人登录之前随系统启动,需要使用 MeshBay 安装程序 (.exe),而不是 Microsoft Store 版本。', 'node.not_operator': '无法连接到您的 node。请确保它正在运行。', 'node.offline': 'Node 已离线', 'node.retry': '重试', @@ -896,6 +931,13 @@ export default { 'node.pair_code_placeholder': '配对码', 'node.pair_button': '配对此浏览器', 'node.pair_success': '配对成功。', + 'node.pair_pending': '配对码已就绪:下次打开此 Node 的任一群组时将自动使用。', + 'node.link_other_node': "你的账户已关联到另一台机器的节点,因此此节点无法为你的群组提供服务。", + 'node.link_here': "改为关联此节点", + 'node.link_here_confirm': "将此节点关联到你的账户?当前关联的另一台机器上的节点将停止为你的群组提供服务,直到再次关联。", + 'node.link_other_account': "此节点是为 {account} 而不是为你设置的,因此无法为你的群组提供服务。", + 'node.link_take_over': "将此节点用于我的账户", + 'node.link_linking': "正在关联…", 'node.reload': '重新加载配置', 'node.reloaded': '配置已重新加载。对现有群组的目录更改现已生效。', 'node.restart_needed': '添加后请初始化群组密钥(meshbay-node gek-init --group <名称>)。', @@ -914,6 +956,8 @@ export default { 'node.setting_max_uploads': '最大同时上传数', 'node.setting_transcode': 'Transcode incompatible video', 'node.setting_max_upload': '单个上传的最大大小', + 'node.setting_connection_processes': '用于连接的 CPU 核心数', + 'node.setting_unit_of': '/ {n}', 'node.setting_unit_gb': 'GB', 'node.setting_unit_hours': 'hours', 'node.setting_unit_minutes': 'min', @@ -931,9 +975,10 @@ export default { 'node.remove_root': '移除', 'node.root_no_signing_key': '没有可用的签名密钥 — 请先将本设备与节点配对', 'node.root_no_route': '无法连接到节点 — 请先连接,或在运行该节点的机器上使用应用', + 'node.root_pause': "暂停索引", + 'node.root_resume': "继续索引", + 'node.root_paused': "索引已暂停", 'node.root_remove_last': '每个群组至少需要一个目录', - 'node.root_path_hint': '托管该群组的机器上,节点所看到的路径。', - 'node.root_path_placeholder': '/home/user/Media', 'node.root_path': '路径', 'node.directory': '目录', 'node.root_added': '目录已添加。', @@ -953,7 +998,6 @@ export default { 'node.gek_init_hint': '尚无群组密钥。请从命令行运行 GEK 初始化来设置。', 'node.gek_public_hint': '公开群组不支持密钥轮换。', 'node.gek_rotate': '轮换群组密钥', - 'node.gek_rotate_confirm': '轮换群组密钥?已连接的成员将自动收到新密钥。已下载的内容不受影响。', 'node.gek_rotated': '群组密钥已轮换。', 'node.roster': '花名册', 'node.roster_load': '加载花名册', @@ -1057,9 +1101,12 @@ export default { 'settings_app.chat_encrypted_always': '本群组的聊天始终加密,无法关闭。', 'settings_app.chat_rotate_epoch': '更换聊天密钥', 'settings_app.chat_rotate_epoch_hint': '成员仍可阅读全部历史记录。已被移出群组的人无法阅读此后写入的内容。移除成员或设备时已自动执行此操作。', + 'settings_app.chat_purge': '清空聊天', + 'settings_app.chat_purge_hint': '删除此节点上该群组聊天的全部消息,对所有成员生效。附件保留在其文件夹中。此操作无法撤销。', 'settings_app.tmdb_token_prompt': '在 TMDB 注册以生成你自己的 API 密钥。', 'settings_app.tmdb_token_link': '获取密钥', 'settings_node.roots_offline_hint': '未连接到节点 — 变更将通过本地节点进行,并在其下次重新加载时生效。', + 'settings_node.roots_local_only_hint': '添加目录以及切换读写或可移除,只能在运行节点的机器上进行 — 在桌面应用中,或使用 meshbay-node root。', 'settings_node.directories_title': '应用目录', 'settings_node.directories_hint': '共享文件夹,以及“视频”“音乐”和“照片”应用各自使用哪个(些)作为入口。', @@ -1211,6 +1258,7 @@ export default { 'home.accept': "接受", 'home.decline': "拒绝", 'members.invited': "已邀请", + 'members.awaiting_code': "waiting for their code", 'hosts.title': "主机", 'hosts.hint': "你自己的 node 无需询问即可提供此群组。其他 node 只有在你于此处批准后才会提供;提出申请的 node 列在下方。", 'hosts.none': "没有其他 node 申请托管此群组。", @@ -1233,9 +1281,117 @@ export default { 'settings.browser_access_off_in_browser': '此账户已关闭浏览器访问。可在 MeshBay 桌面应用中开启,该应用也可以单独批准此浏览器。', 'group.browser_access_off': '此账户已关闭浏览器访问。请在 MeshBay 桌面应用(个人资料)中开启,或从该应用批准此浏览器。', // Worded by the desktop main process for its own dialogs (main.js). - 'native.attach_confirm': '在这台电脑上托管群组“{name}”,并与其成员共享文件夹 {path}?', - 'native.folder_confirm': '与这台电脑上托管的群组成员共享文件夹 {path}?该文件夹不是在文件夹选择器中选择的。', 'native.node_account_confirm': '这台电脑上的 node 已为 {current} 设置。改为为 {next} 设置吗?它将不再为 {current} 提供其托管的群组。', 'native.browser_access_confirm': '允许从浏览器登录吗?应用会在您使用的每个 node 上留下您的身份,并加以封存,只有您的密码短语配合您的 hub 账户才能打开。', 'native.declined': '已取消,未做任何更改。', + + // Photo backup, Android only (photo-sync.js, photo-sync-settings.js). + 'photosync.heading': "照片备份", + 'photosync.intro': "每天一次,通过 Wi-Fi 将这部手机拍摄的照片发送到您某个群组的文件夹。从手机删除的照片会保留在群组中。", + 'photosync.setup': "设置", + 'photosync.change': "更改", + 'photosync.turn_off': "关闭", + 'photosync.now': "立即备份", + 'photosync.permission_needed': "MeshBay 需要访问这部手机上的照片。", + 'photosync.permission_allow': "允许访问", + 'photosync.permission_partial': "访问权限仅限于您选择的照片:在您允许访问全部照片之前,新照片不会被备份。", + 'photosync.group': "群组", + 'photosync.choose_group': "选择群组", + 'photosync.checking_group': "正在读取群组的文件夹…", + 'photosync.group_offline': "目前没有托管此群组的 node 在线。请在其上线后重试。", + 'photosync.folder': "文件夹", + 'photosync.albums': "这部手机上的相册", + 'photosync.album_camera': "相机", + 'photosync.album_count': "{n} 张照片 · {size}", + 'photosync.videos_not_included': "视频未备份:点“更改”添加。", + 'photosync.videos_included': "视频也会备份。", + 'photosync.include_videos': "包括视频", + 'photosync.include_videos_hint': "视频体积较大:它们和照片一样通过 Wi-Fi 发送,首次备份可能需要一些时间。", + 'photosync.album_count_videos': "{n} 张照片,{v} 个视频 · {size}", + 'photosync.confirm_videos': "将把 {count} 个照片和视频({size},其中 {videos} 个视频,{videoSize})发送到 {dir},之后每天发送一次新的。", + 'photosync.video_permission_needed': "MeshBay 还需要访问本机的视频。", + 'photosync.scope_existing': "手机上已有的照片,然后是新照片", + 'photosync.scope_new': "仅从现在起拍摄的照片", + 'photosync.start': "开始备份", + 'photosync.confirm': "将把 {count} 张照片({size})发送到 {dir},之后每天发送一次新照片。", + 'photosync.confirm_new': "新照片将每天一次发送到 {dir}。", + 'photosync.metered_confirm': "您正在使用移动数据 — {count} 张照片,{size}。仍要发送吗?", + 'photosync.other_account': "已为 @{account} 设置。请以 @{account} 登录以继续,或在此重新设置。", + 'photosync.sent_total': "已发送照片:{n}", + 'photosync.last_run': "上次备份:{when}", + 'photosync.never': "尚未备份", + 'photosync.state_waiting_wifi': "正在等待 Wi-Fi", + 'photosync.state_connecting': "正在连接群组…", + 'photosync.state_sending': "正在发送 {done} / {total}", + 'photosync.state_offline': "群组的 node 均不在线;稍后重试", + 'photosync.state_interrupted': "已中断 — 将在下次有机会时继续", + 'photosync.state_up_to_date': "已是最新", + 'photosync.notif_progress': "正在备份照片 — {done} / {total}", + 'photosync.fail_disk_full': "照片备份已停止:node 的磁盘已满。", + 'photosync.fail_read_only': "照片备份已停止:该文件夹不再接受上传。", + 'photosync.fail_no_folder': "照片备份已停止:该文件夹已不在群组中。", + 'photosync.fail_unavailable': "照片备份已停止:该文件夹所在的磁盘未连接到 node。", + 'photosync.fail_not_member': "照片备份已停止:您已不再是此群组的成员。", + 'photosync.fail_permission': "照片备份已停止:MeshBay 已无法访问照片。", + 'photosync.fail_other': "照片备份已停止。", + 'contactsync.heading': "联系人备份", + 'contactsync.intro': "在联系人有变动的日子里,每天一次发送本机联系人的副本。每份副本都是任何手机都能导入的 .vcf 文件。", + 'contactsync.permission_needed': "MeshBay 需要访问本机的联系人。", + 'calendarsync.heading': "日历备份", + 'calendarsync.intro': "在日历有变动的日子里,每天一次发送本机日历的副本:包括你可以编辑的日历,不包括仅订阅的日历。每份副本都是任何日历都能导入的 .ics 文件。", + 'calendarsync.permission_needed': "MeshBay 需要访问本机的日历。", + 'messagesync.heading': "短信备份", + 'messagesync.intro': "每天一次发送本机的短信:第一份副本包含全部短信,之后每份只包含新短信。文件采用短信备份应用可以恢复的 XML 格式。不包括彩信。", + 'messagesync.permission_needed': "MeshBay 需要访问本机的短信。", + 'messagesync.restricted_hint': "如果 Android 提示这是受限设置:打开应用设置,点按顶部的 ⋮,选择“允许受限设置”,然后回到这里再次开启。Android 对不是从应用商店安装的应用有此要求。", + 'phonesync.state_sending': "正在发送…", + 'phonesync.summary': "{group} → {dir}", + 'phonesync.copies_sent': "已发送副本:{n}", + 'phonesync.last_file': "最近一份副本:{name}", + 'phonesync.checking_groups': "正在查找由你创建且只有你一个成员的群组…", + 'phonesync.no_private_group': "你没有由你创建且只有你一个成员的群组。请创建一个只属于你自己的群组,然后回到这里。", + 'phonesync.no_folder': "这个群组没有你可以添加文件的文件夹。", + 'phonesync.notice': "{what}。{reason}", + 'phonesync.fail_disk_full': "已停止:node 的磁盘已满。", + 'phonesync.fail_read_only': "已停止:该文件夹不再接受上传。", + 'phonesync.fail_no_folder': "已停止:该文件夹在群组中已不存在。", + 'phonesync.fail_unavailable': "已停止:该文件夹所在的磁盘未连接到 node。", + 'phonesync.fail_not_member': "已停止:你已不再是这个群组的成员。", + 'phonesync.fail_not_private': "已停止:有其他人加入了群组。", + 'phonesync.fail_permission': "已停止:MeshBay 已无法访问。", + 'phonesync.fail_other': "已停止。", + 'phonesync.open_settings': "打开应用设置", + 'drivesync.heading': "文件备份", + 'drivesync.intro': "每天一次通过 Wi-Fi 发送你在本机选择的文件夹中的文件。在手机上修改过的文件会在之前的副本旁边再次发送;不会替换任何内容。", + 'drivesync.folders': "已备份的文件夹", + 'drivesync.no_folders': "尚未选择文件夹。", + 'drivesync.folders_hint': "照片和视频由照片备份负责:不能选择 DCIM、Pictures 和 Movies。Android 不允许应用选择整个 Download 文件夹,只能选择其中的文件夹。", + 'drivesync.add_folder': "添加文件夹", + 'drivesync.remove': "移除", + 'drivesync.refused_media': "这个文件夹包含照片备份会发送的照片和视频:请选择其他文件夹。", + 'drivesync.refused_root': "Android 不允许选择整个存储空间:请选择其中的文件夹。", + 'drivesync.notif_progress': "正在备份文件:{done} / {total}", + 'drivesync.metered_confirm': "你正在使用移动数据。仍要发送这些文件吗?", + 'drivesync.sent_total': "已发送文件:{n}", + 'whatsappsync.heading': "WhatsApp", + 'whatsappsync.intro': "每天一次通过 Wi-Fi 复制 WhatsApp 自己生成的聊天备份,以便在新手机上恢复。它们仍由 WhatsApp 加密:这里无法读取,只能用于恢复。", + 'whatsappsync.folder_needed': "尚未选择 WhatsApp 的文件夹。", + 'whatsappsync.folder_chosen': "已选择 WhatsApp 的文件夹。", + 'whatsappsync.folder_choose': "选择 WhatsApp 的文件夹", + 'whatsappsync.folder_hint': "选择器会直接打开它:Android/media/com.whatsapp/WhatsApp。点按“使用此文件夹”。", + 'whatsappsync.media': "包括媒体", + 'whatsappsync.media_hint': "收发的照片、视频、语音消息和文档:常常有好几 GB。照片备份已发送的内容不会重复发送。", + 'whatsappsync.refused': "这不是 WhatsApp 的文件夹:请选择 Android/media/com.whatsapp/WhatsApp。", + 'whatsappsync.restore_hint': "在新手机上恢复:安装 WhatsApp 之前,把最新副本中的 Databases 和 Backups 文件夹复制到 Android/media/com.whatsapp/WhatsApp,然后用同一个手机号恢复(如果开启了端到端加密备份,还需要密码或 64 位密钥)。", + 'whatsappsync.notif_progress': "正在备份 WhatsApp:{done} / {total}", + 'androidsync.dest_heading': "备份保存位置", + 'androidsync.dest_intro': "备份会保存到一个由你创建且只有你一个成员的群组的文件夹中。每种备份在那里都有自己的文件夹。", + 'androidsync.dest_summary': "{group} → {folder}", + 'androidsync.dest_dirs': "使用的文件夹:{dirs}", + 'androidsync.dest_change_confirm': "所有备份将在 {group} 的 {folder} 中重新开始。已发送的内容保留在原处。", + 'androidsync.dest_not_in_photos': "该群组的照片标签页不显示 {dir}:照片会被备份,但在该文件夹加入标签页的文件夹之前(群组设置)不会在那里显示。", + 'androidsync.dest_needed': "请先在本页顶部选择备份保存位置。", + 'androidsync.dest_save': "保存", + 'phonesync.turn_on': "开启", + 'photosync.fail_not_private': "照片备份已停止:有其他人加入了群组。", }; |