diff --git a/web/i18n/languages.json b/web/i18n/languages.json index 0760fe1d..0ef3695e 100644 --- a/web/i18n/languages.json +++ b/web/i18n/languages.json @@ -1,4 +1,5 @@ { "en": "english", - "ru": "русский" + "ru": "русский", + "zh-CN": "中文" } diff --git a/web/i18n/zh-cn/a11y/dialog.json b/web/i18n/zh-cn/a11y/dialog.json new file mode 100644 index 00000000..84df736b --- /dev/null +++ b/web/i18n/zh-cn/a11y/dialog.json @@ -0,0 +1,5 @@ +{ + "picker.item.photo": "photo thumbnail", + "picker.item.video": "video thumbnail", + "picker.item.gif": "gif thumbnail" +} diff --git a/web/i18n/zh-cn/a11y/donate.json b/web/i18n/zh-cn/a11y/donate.json new file mode 100644 index 00000000..625eee91 --- /dev/null +++ b/web/i18n/zh-cn/a11y/donate.json @@ -0,0 +1,4 @@ +{ + "share.qr.expand": "qr code. press to expand.", + "share.qr.collapse": "expanded qr code. press to collapse." +} diff --git a/web/i18n/zh-cn/a11y/general.json b/web/i18n/zh-cn/a11y/general.json new file mode 100644 index 00000000..30c862e1 --- /dev/null +++ b/web/i18n/zh-cn/a11y/general.json @@ -0,0 +1,3 @@ +{ + "back": "go back" +} diff --git a/web/i18n/zh-cn/a11y/save.json b/web/i18n/zh-cn/a11y/save.json new file mode 100644 index 00000000..2dc85154 --- /dev/null +++ b/web/i18n/zh-cn/a11y/save.json @@ -0,0 +1,13 @@ +{ + "link_area": "link input area", + "link_area.turnstile": "link input area. checking if you're not a robot.", + "clear_input": "clear input", + "download": "download", + "download.think": "processing the link...", + "download.check": "verifying download...", + "download.done": "downloading done", + "download.error": "downloading error", + + "tutorial.shortcut.photos": "add photos shortcut", + "tutorial.shortcut.files": "add files shortcut" +} diff --git a/web/i18n/zh-cn/a11y/tabs.json b/web/i18n/zh-cn/a11y/tabs.json new file mode 100644 index 00000000..7eafb56f --- /dev/null +++ b/web/i18n/zh-cn/a11y/tabs.json @@ -0,0 +1,3 @@ +{ + "tab_panel": "tabs panel" +} diff --git a/web/i18n/zh-cn/about.json b/web/i18n/zh-cn/about.json new file mode 100644 index 00000000..331ddbd4 --- /dev/null +++ b/web/i18n/zh-cn/about.json @@ -0,0 +1,27 @@ +{ + "page.general": "什么是 Cobalt?", + "page.faq": "常见问题", + "page.community": "社区与支持", + "page.privacy": "隐私政策", + "page.terms": "条款与伦理", + "page.credits": "致谢与许可证", + "community.discord": "社区 Discord 服务器", + "community.twitter": "Twitter 新闻账号", + "community.github": "GitHub 仓库", + "community.email": "支持邮箱", + "community.telegram": "Telegram 新闻频道", + "heading.general": "通用条款", + "heading.licenses": "许可证", + "heading.summary": "保存你喜爱的最佳方式", + "heading.privacy": "领先的隐私保护", + "heading.community": "开放社区", + "heading.local": "本地设备处理", + "heading.saving": "保存", + "heading.encryption": "加密", + "heading.plausible": "匿名流量分析", + "heading.cloudflare": "网络隐私与安全", + "heading.responsibility": "用户责任", + "heading.abuse": "滥用报告", + "heading.motivation": "动机", + "heading.testers": "测试者" +} diff --git a/web/i18n/zh-cn/about/credits.md b/web/i18n/zh-cn/about/credits.md new file mode 100644 index 00000000..6c001f58 --- /dev/null +++ b/web/i18n/zh-cn/about/credits.md @@ -0,0 +1,52 @@ + + +
+ + +huge shoutout to our thing breakers for testing updates early and making sure they're stable. +they also helped us ship cobalt 10! + + +all links are external and lead to their personal websites or social media. +
+ +
+ + +meowbalt is cobalt's speedy mascot. he is an extremely expressive cat that loves fast internet. + +all amazing drawings of meowbalt that you see in cobalt were made by [GlitchyPSI](https://glitchypsi.xyz/). +he is also the original designer of the character. + +you cannot use or modify GlitchyPSI's artworks of meowbalt without his explicit permission. + +you cannot use or modify the meowbalt character design commercially or in any form that isn't fan art. +
+ +
+ + +cobalt processing server is open source and licensed under [AGPL-3.0]({docs.apiLicense}). + +cobalt frontend is [source first](https://sourcefirst.com/) and licensed under [CC-BY-NC-SA 4.0]({docs.webLicense}). +we decided to use this license to stop grifters from profiting off our work +& from creating malicious clones that deceive people and hurt our public identity. + +we rely on many open source libraries, create & distribute our own. +you can see the full list of dependencies on [github]({contacts.github}). +
diff --git a/web/i18n/zh-cn/about/general.md b/web/i18n/zh-cn/about/general.md new file mode 100644 index 00000000..2334ab8e --- /dev/null +++ b/web/i18n/zh-cn/about/general.md @@ -0,0 +1,78 @@ + + +
+ + +cobalt helps you save anything from your favorite websites: video, audio, photos or gifs. just paste the link and you're ready to rock! + +no ads, trackers, paywalls, or other nonsense. just a convenient web app that works anywhere, whenever you need it. +
+ +
+ + +cobalt was created for public benefit, to protect people from ads and malware pushed by its alternatives. +we believe that the best software is safe, open, and accessible. + +it's possible to keep the main instances up thanks to our long-standing infrastructure partner, [royalehosting.net]({partners.royalehosting})! +
+ +
+ + +all requests to the backend are anonymous and all information about tunnels is encrypted. +we have a strict zero log policy and don't track *anything* about individual people. + +when a request needs additional processing, cobalt processes files on-the-fly. +it's done by tunneling processed parts directly to the client, without ever saving anything to disk. +for example, this method is used when the source service provides video and audio channels as separate files. + +additionally, you can [enable forced tunneling](/settings/privacy#tunnel) to protect your privacy. +when enabled, cobalt will tunnel all downloaded files. +no one will know where you download something from, even your network provider. +all they'll see is that you're using a cobalt instance. +
+ +
+ + +cobalt is used by countless artists, educators, and content creators to do what they love. +we're always on the line with our community and work together to make cobalt even more useful. +feel free to [join the conversation](/about/community)! + +we believe that the future of the internet is open, which is why cobalt is +[source first](https://sourcefirst.com/) and [easily self-hostable]({docs.instanceHosting}). + +if your friend hosts a processing instance, just ask them for a domain and [add it in instance settings](/settings/instances#community). + +you can check the source code and contribute [on github]({contacts.github}) at any time. +we welcome all contributions and suggestions! +
+ +
+ + +newest features, such as [remuxing](/remux), work locally on your device. +on-device processing is efficient and never sends anything over the internet. +it perfectly aligns with our future goal of moving as much processing as possible to the client. +
diff --git a/web/i18n/zh-cn/about/privacy.md b/web/i18n/zh-cn/about/privacy.md new file mode 100644 index 00000000..b19ca762 --- /dev/null +++ b/web/i18n/zh-cn/about/privacy.md @@ -0,0 +1,76 @@ + + +
+ + +cobalt's privacy policy is simple: we don't collect or store anything about you. what you do is solely your business, not ours or anyone else's. + +these terms are applicable only when using the official cobalt instance. in other cases, you may need to contact the hoster for accurate info. +
+ +
+ + +tools that use on-device processing work offline, locally, and never send any data anywhere. they are explicitly marked as such whenever applicable. +
+ +
+ + +when using saving functionality, in some cases cobalt will encrypt & temporarily store information needed for tunneling. it's stored in processing server's RAM for 90 seconds and irreversibly purged afterwards. no one has access to it, even instance owners, as long as they don't modify the official cobalt image. + +processed/tunneled files are never cached anywhere. everything is tunneled live. cobalt's saving functionality is essentially a fancy proxy service. +
+ +
+ + +temporarily stored tunnel data is encrypted using the AES-256 standard. decryption keys are only included in the access link and never logged/cached/stored anywhere. only the end user has access to the link & encryption keys. keys are generated uniquely for each requested tunnel. +
+ +{#if env.PLAUSIBLE_ENABLED} +
+ + +for sake of privacy, we use [plausible's anonymous traffic analytics](https://plausible.io/) to get an approximate number of active cobalt users. no identifiable information about you or your requests is ever stored. all data is anonymized and aggregated. the plausible instance we use is hosted & managed by us. + +plausible doesn't use cookies and is fully compliant with GDPR, CCPA, and PECR. + +[learn more about plausible's dedication to privacy.](https://plausible.io/privacy-focused-web-analytics) + +if you wish to opt out of anonymous analytics, you can do it in privacy settings. +
+{/if} + +
+ + +we use cloudflare services for ddos & bot protection. we also use cloudflare pages for deploying & hosting the static web app. all of these are required to provide the best experience for everyone. it's the most private & reliable provider that we know of. + +cloudflare is fully compliant with GDPR and HIPAA. + +[learn more about cloudflare's dedication to privacy.](https://www.cloudflare.com/trust-hub/privacy-and-data-protection/) +
diff --git a/web/i18n/zh-cn/about/terms.md b/web/i18n/zh-cn/about/terms.md new file mode 100644 index 00000000..37143396 --- /dev/null +++ b/web/i18n/zh-cn/about/terms.md @@ -0,0 +1,56 @@ + + +
+ + +these terms are applicable only when using the official freesavevideo instance. +in other cases, you may need to contact the hoster for accurate info. +
+ +
+ + +saving functionality simplifies downloading content from the internet and takes zero liability for what the saved content is used for. +processing servers work like advanced proxies and don't ever write any content to disk. +everything is handled in RAM and permanently purged once the tunnel is done. +we have no downloading logs and can't identify anyone. + +[you can read more about how tunnels work in our privacy policy.](/about/privacy) +
+ +
+ + +you (end user) are responsible for what you do with our tools, how you use and distribute resulting content. +please be mindful when using content of others and always credit original creators. +make sure you don't violate any terms or licenses. + +when used in educational purposes, always cite sources and credit original creators. + +fair use and credits benefit everyone. +
+ +
+ + +we have no way of detecting abusive behavior automatically, as freesavevideo is 100% anonymous. +however, you can report such activities to us and we will do our best to comply manually: [safety@imput.net](mailto:safety@imput.net) + +please note that this email is not intended for user support. +if you're experiencing issues, contact us via any preferred method on [the support page](/about/community). +
diff --git a/web/i18n/zh-cn/button.json b/web/i18n/zh-cn/button.json new file mode 100644 index 00000000..3c98e7cb --- /dev/null +++ b/web/i18n/zh-cn/button.json @@ -0,0 +1,20 @@ +{ + "gotit": "知道了", + "cancel": "取消", + "reset": "重置", + "done": "完成", + "download.audio": "下载音频", + "download": "下载", + "share": "分享", + "copy": "复制", + "copy.section": "复制部分链接", + "copied": "已复制", + "import": "导入", + "continue": "继续", + "star": "收藏", + "follow": "关注", + "save": "保存", + "export": "导出", + "yes": "是", + "no": "否" +} diff --git a/web/i18n/zh-cn/dialog.json b/web/i18n/zh-cn/dialog.json new file mode 100644 index 00000000..2ebc818b --- /dev/null +++ b/web/i18n/zh-cn/dialog.json @@ -0,0 +1,18 @@ +{ + "reset.title": "重置所有设置?", + "reset.body": "您确定要重置所有设置吗?此操作不可撤销。", + "picker.title": "选择要保存的内容", + "picker.description.desktop": "点击项目以保存。图片也可以通过右键菜单保存。", + "picker.description.phone": "长按项目以保存。图片也可以通过长按保存。", + "picker.description.ios": "按住项目以通过快捷方式保存。图片也可以通过长按保存。", + "saving.title": "选择保存方式", + "saving.blocked": "Cobalt尝试在新标签中打开文件,但您的浏览器阻止了它。您可以为Cobalt启用弹出窗口以防止下次发生。", + "saving.timeout": "Cobalt尝试自动保存文件,但您的浏览器阻止了它。您需要手动选择首选的保存方式。", + "safety.title": "重要的安全提示", + "import.body": "导入未知或损坏的文件可能会意外更改或破坏Cobalt的功能。仅导入您自己导出的且未修改的文件。如果有人要求您导入此文件,请不要这样做。我们不对导入未知设置文件造成的任何损害负责。", + "api.override.title": "处理实例覆盖", + "api.override.body": "{{ value }} 现在是处理实例。如果您不信任它,请按“取消”,它将被忽略。稍后您可以在处理设置中更改您的选择。", + "safety.custom_instance.body": "自定义实例可能会带来隐私和安全风险。恶意实例可能会:1. 将您重定向离开Cobalt并试图诈骗您。2. 记录您请求的所有信息,永久存储,并用来跟踪您。3. 向您提供恶意文件(如恶意软件)。4. 强制您观看广告,或让您付费下载。此后,我们无法保护您。请谨慎选择使用哪些实例,并始终相信自己的直觉。如果感觉不对劲,请回到此页面,重置自定义实例,并在GitHub上向我们报告。", + "processing.ongoing": "Cobalt当前正在此标签页处理媒体。离开将中止处理。您确定要执行此操作吗?", + "processing.title.ongoing": "处理将被取消" +} diff --git a/web/i18n/zh-cn/donate.json b/web/i18n/zh-cn/donate.json new file mode 100644 index 00000000..d1b59f29 --- /dev/null +++ b/web/i18n/zh-cn/donate.json @@ -0,0 +1,29 @@ +{ + "banner.title": "支持一个安全\n且开放的互联网", + "banner.subtitle": "捐赠给 Imput 或与朋友分享\nCobalt 的乐趣", + "body.motivation": "Cobalt 帮助制作人、教育者、视频创作者以及许多其他人做他们热爱的事情。这是一种不同的服务,充满了爱,而非为了盈利。", + "body.no_bullshit": "我们相信互联网不必可怕,这就是为什么 Cobalt 永远不会有广告或其他恶意内容。这是我们坚守的承诺。我们所做的一切都以隐私、可访问性和易用性为核心,使 Cobalt 可供所有人使用。", + "body.keep_going": "如果您觉得 Cobalt 有用,请考虑支持我们的工作!您可以通过捐赠或与朋友分享 Cobalt 来帮助我们。我们非常感谢每一笔捐款,这将帮助我们继续开发 Cobalt 及其他项目。", + "card.once": "一次性捐赠", + "card.recurring": "定期捐赠", + "card.custom": "自定义金额(从 $2 起)", + "card.processor": "通过 {{value}}", + "card.option.5": "一杯咖啡", + "card.option.10": "一份披萨", + "card.option.15": "一顿午餐", + "card.option.30": "两人的午餐", + "card.option.50": "10 公斤猫粮", + "card.option.100": "一年域名费用", + "card.option.200": "空气炸锅", + "card.option.500": "豪华办公椅", + "card.option.1599": "基础款 MacBook Pro", + "card.option.4900": "10,000 个苹果", + "card.option.7398": "顶配 MacBook Pro", + "card.option.8629": "一小块土地", + "card.option.9433": "豪华热水浴缸", + "card.custom.submit": "捐赠自定义金额", + "share.title": "与朋友分享 Cobalt", + "alternative.title": "其他捐赠方式", + "alt.copy": "{{ value }}。加密钱包地址。按下复制。", + "alt.open": "{{ value }}。按下打开。" +} diff --git a/web/i18n/zh-cn/error.json b/web/i18n/zh-cn/error.json new file mode 100644 index 00000000..7d173e1a --- /dev/null +++ b/web/i18n/zh-cn/error.json @@ -0,0 +1,38 @@ +{ + "import.no_data": "文件中没有要加载的内容。您确定这是正确的文件吗?", + "import.invalid": "您的文件没有有效的 Cobalt 设置。您确定这是正确的文件吗?", + "import.hash_invalid": "文件校验和无效。请确认这是正确的文件。", + "import.unknown": "无法从文件加载数据。它可能已损坏或格式错误。以下是我收到的错误信息:\n\n{{ value }}", + "settings.invalid": "设置文件包含不支持的设置,加载已中止。", + "settings.too_large": "您导入的文件太大,无法处理。", + "api.unknown": "发生了未知错误。请稍后再试。", + "api.network": "由于网络问题,无法连接到服务器。", + "api.timeout": "请求超时,请稍后重试。", + "api.server": "服务器出现问题,请稍后重试。", + "api.maintenance": "服务器正在维护中。请稍后重试。", + "api.quota": "已达到配额限制,请稍后再试。", + "api.content.too_long": "您请求的媒体太长。目前的时长限制为 {{ limit }} 分钟。请尝试较短的内容!", + "api.content.video.unavailable": "我无法访问该视频。可能是由于 {{ service }} 的限制。您粘贴的链接正确吗?", + "api.content.video.live": "该视频当前正在直播,因此我无法下载。请等直播结束后再试!", + "api.content.video.private": "该视频是私密的,因此我无法访问。请更改其可见性或尝试其他视频!", + "api.content.video.age": "该视频有年龄限制,因此我无法匿名访问。请尝试其他视频!", + "api.content.video.region": "该视频有地区限制,而处理服务器位于不同位置。请尝试其他视频!", + "api.content.post.unavailable": "无法找到该帖子的相关信息。其可见性可能受限,或帖子不存在。请确认链接是否有效,并在几秒钟后再试!", + "api.content.post.private": "该帖子来自私人账号,因此我无法访问。您粘贴的链接正确吗?", + "api.content.post.age": "该帖子有年龄限制,因此我无法匿名访问。您粘贴的链接正确吗?", + "api.youtube.codec": "YouTube 没有返回您偏好的视频编解码器。请在设置中尝试其他选项!", + "api.youtube.decipher": "YouTube 更新了其解密算法,我无法提取视频信息。\n\n请稍后重试,如果问题仍然存在,请联系我们寻求支持。", + "api.youtube.login": "无法获取此视频,因为 YouTube 将我标记为机器人。这可能是由于处理实例没有任何活跃的账户令牌。请稍后重试,如果仍然无法解决,请告知实例拥有者此错误!", + "api.youtube.token_expired": "无法获取此视频,因为 YouTube 令牌已过期,且无法刷新。请稍后重试,如果仍然无法解决,请告知实例拥有者此错误!", + "remux.corrupted": "无法读取该文件的元数据,可能已损坏。", + "remux.out_of_resources": "Cobalt 设备资源不足,无法继续处理。这与您的浏览器限制有关。请刷新或重新打开应用并重试。某些设备只能处理较小的文件。", + "tunnel.probe": "无法验证您是否可以下载此文件。请稍后再试!", + "captcha_ongoing": "仍在检查您是否不是机器人。等待加载图标消失后再试。\n\n如果等待时间过长,请告知我们!我们使用 Cloudflare Turnstile 进行机器人保护,有时会错误阻止用户。", + "api.auth.jwt.missing": "无法确认您是否是人类,因为处理服务器没有收到人类访问令牌。请稍后重试或刷新页面!", + "api.auth.jwt.invalid": "无法确认您是否是人类,因为您的访问令牌已过期且未续期。请稍后重试或刷新页面!", + "api.auth.turnstile.missing": "无法确认您是否是人类,因为处理服务器没有收到人类访问令牌。请稍后重试或刷新页面!", + "api.auth.turnstile.invalid": "无法确认您是否是人类,因为您的访问令牌已过期且未续期。请稍后重试或刷新页面!", + "api.unreachable": "无法连接到处理服务器。请检查您的网络连接并重试。", + "api.timed_out": "处理服务器响应时间过长。可能当前服务器负载较大,请稍后重试!", + "api.rate_exceeded": "请求频率过高。请稍后再试!" +} diff --git a/web/i18n/zh-cn/general.json b/web/i18n/zh-cn/general.json new file mode 100644 index 00000000..3c057e99 --- /dev/null +++ b/web/i18n/zh-cn/general.json @@ -0,0 +1,6 @@ +{ + "cobalt": "免费下载视频 - YouTube、TikTok、Bilibili、Instagram、Facebook、Twitter", + "meowbalt": "喵巴特", + "beta": "测试版", + "embed.description": "从YouTube、TikTok、Bilibili、Instagram、Facebook和Twitter免费下载视频。无需注册。快速简单的视频下载。" +} diff --git a/web/i18n/zh-cn/notification.json b/web/i18n/zh-cn/notification.json new file mode 100644 index 00000000..fbefe539 --- /dev/null +++ b/web/i18n/zh-cn/notification.json @@ -0,0 +1,4 @@ +{ + "update.title": "有更新可用!", + "update.subtext": "点击重新加载" +} diff --git a/web/i18n/zh-cn/receiver.json b/web/i18n/zh-cn/receiver.json new file mode 100644 index 00000000..4eb97a2a --- /dev/null +++ b/web/i18n/zh-cn/receiver.json @@ -0,0 +1,5 @@ +{ + "title": "拖动或选择文件", + "title.drop": "将文件放到这里!", + "accept": "支持的格式:{{ formats }}。" +} diff --git a/web/i18n/zh-cn/remux.json b/web/i18n/zh-cn/remux.json new file mode 100644 index 00000000..404524d8 --- /dev/null +++ b/web/i18n/zh-cn/remux.json @@ -0,0 +1,3 @@ +{ + "description": "混流通常可以解决旧版软件的兼容性问题。它快速、无损,且所有处理都在设备上进行。" +} diff --git a/web/i18n/zh-cn/save.json b/web/i18n/zh-cn/save.json new file mode 100644 index 00000000..eff743d4 --- /dev/null +++ b/web/i18n/zh-cn/save.json @@ -0,0 +1,22 @@ +{ + "paste": "粘贴", + "paste.long": "粘贴并下载", + "auto": "自动", + "audio": "音频", + "mute": "静音", + "input.placeholder": "在此粘贴链接", + "terms.note.agreement": "继续即表示您同意", + "terms.note.link": "使用条款与伦理", + "services.title": "支持的服务", + "services.title_show": "显示支持的服务", + "services.title_hide": "隐藏支持的服务", + "services.disclaimer": "Freesavevideo 不隶属于以上列出的任何服务。", + "tutorial.title": "如何在 iOS 上保存?", + "tutorial.intro": "为了便捷地在 iOS 上保存媒体,您需要在共享菜单中使用 Siri 快捷指令。", + "tutorial.step.1": "添加 Siri 快捷指令:", + "tutorial.step.2": "在 Cobalt 的保存对话框中按下“分享”按钮。", + "tutorial.step.3": "在共享菜单中选择相应的快捷指令。", + "tutorial.outro": "这些快捷指令只能在 Cobalt 应用中使用,从其他应用分享链接将不起作用。", + "tutorial.shortcut.photos": "保存到照片", + "tutorial.shortcut.files": "保存到文件" +} diff --git a/web/i18n/zh-cn/settings.json b/web/i18n/zh-cn/settings.json new file mode 100644 index 00000000..69310b6f --- /dev/null +++ b/web/i18n/zh-cn/settings.json @@ -0,0 +1,122 @@ +{ + "page.appearance": "外观", + "page.privacy": "隐私", + "page.video": "视频", + "page.audio": "音频", + "page.download": "下载", + "page.advanced": "高级", + "page.debug": "调试信息", + "page.instances": "实例", + + "section.general": "常规", + "section.save": "保存", + + "theme": "主题", + "theme.auto": "自动", + "theme.light": "亮色", + "theme.dark": "暗色", + "theme.description": "自动主题会根据设备的显示模式在亮色和暗色主题之间切换。", + + "video.quality": "视频质量", + "video.quality.max": "8k+", + "video.quality.2160": "4k", + "video.quality.1440": "1440p", + "video.quality.1080": "1080p", + "video.quality.720": "720p", + "video.quality.480": "480p", + "video.quality.360": "360p", + "video.quality.240": "240p", + "video.quality.144": "144p", + "video.quality.description": "如果首选的视频质量不可用,则选择下一个最佳选项。", + + "video.youtube.codec": "YouTube 视频编解码器和容器", + "video.youtube.codec.description": "h264:最佳兼容性,平均比特率。最大质量为1080p。\nav1:质量、效率和比特率最佳。支持8k和HDR。\nvp9:与av1质量和比特率相同,但文件大小约为av1的两倍。支持4k和HDR。\n\nav1和vp9的兼容性不如h264。", + + "video.twitter.gif": "Twitter/X", + "video.twitter.gif.title": "将循环视频转换为GIF", + "video.twitter.gif.description": "GIF转换效率低,转换后的文件可能非常大且质量较低。", + + "video.tiktok.h265": "TikTok", + "video.tiktok.h265.title": "优先使用HEVC/H265格式", + "video.tiktok.h265.description": "允许以1080p下载视频,但兼容性较差。", + + "audio.format": "音频格式", + "audio.format.best": "最佳", + "audio.format.mp3": "mp3", + "audio.format.ogg": "ogg", + "audio.format.wav": "wav", + "audio.format.opus": "opus", + "audio.format.description": "除“最佳”格式外,所有格式都会被转换,这意味着会有一些质量损失。只有选择“最佳”格式时,音频不会重新编码。", + + "audio.bitrate": "音频比特率", + "audio.bitrate.kbps": "kb/s", + "audio.bitrate.description": "比特率仅适用于音频转换。Freesavevideo无法提升源音频质量,因此选择超过128kbps的比特率可能会导致文件大小膨胀,但听觉上无差异。感知质量可能因格式而异。", + + "audio.youtube.dub": "YouTube", + "audio.youtube.dub.title": "为配音视频使用浏览器语言", + "audio.youtube.dub.description": "即使Freesavevideo未翻译成您的语言,该功能仍然有效。", + + "audio.tiktok.original": "TikTok", + "audio.tiktok.original.title": "下载原声", + "audio.tiktok.original.description": "Freesavevideo将下载视频中的原声,而不会进行任何更改。", + + "metadata.filename": "文件名样式", + "metadata.filename.classic": "经典", + "metadata.filename.basic": "基础", + "metadata.filename.pretty": "美观", + "metadata.filename.nerdy": "技术风", + "metadata.filename.description": "文件名样式将仅用于Freesavevideo通过隧道传输的文件。某些服务不支持经典样式以外的文件名样式。", + + "metadata.filename.preview.video": "视频标题", + "metadata.filename.preview.audio": "音频标题 - 音频作者", + + "metadata.file": "文件元数据", + "metadata.disable.title": "禁用文件元数据", + "metadata.disable.description": "文件的标题、艺术家及其他信息将不会被添加。", + + "saving.title": "保存方式", + "saving.ask": "询问", + "saving.download": "下载", + "saving.share": "分享", + "saving.copy": "复制", + "saving.description": "首选的文件或链接保存方式。如果首选方式不可用或出错,Freesavevideo将询问您接下来要怎么做。", + + "accessibility": "辅助功能", + "accessibility.transparency.title": "减少视觉透明度", + "accessibility.transparency.description": "减少表面的透明度,并禁用模糊效果。", + "accessibility.motion.title": "减少运动效果", + "accessibility.motion.description": "尽可能禁用动画和过渡效果。", + + "language": "语言", + "language.auto.title": "自动选择", + "language.auto.description": "如果有可用翻译,Freesavevideo将使用浏览器的默认语言。否则,将使用英语。", + + "language.preferred.title": "首选语言", + "language.preferred.description": "当禁用自动选择时,将使用此语言。未翻译的文本将显示为英语。\n\n我们为英语、俄语和捷克语以外的语言使用社区翻译,它们可能不准确或不完整。", + + "privacy.analytics": "匿名流量分析", + "privacy.analytics.title": "不参与分析", + "privacy.analytics.description": "匿名流量分析用于估计Freesavevideo的活跃用户数。不会存储任何关于您的可识别信息。所有处理的数据都是匿名的并经过汇总。\n\n我们使用自托管的Plausible实例,不使用Cookie,完全符合GDPR、CCPA和PECR。", + "privacy.analytics.learnmore": "了解更多关于Plausible的隐私承诺。", + + "privacy.tunnel": "隧道", + "privacy.tunnel.title": "始终通过隧道传输文件", + "privacy.tunnel.description": "Freesavevideo将隐藏您的IP地址、浏览器信息,并绕过本地网络限制。启用后,文件名将可读,而不会是乱码。", + + "advanced.debug": "调试", + "advanced.debug.title": "启用调试功能", + "advanced.debug.description": "为您提供一个包含各种信息的页面,这些信息有助于调试。", + + "advanced.data": "设置数据", + + "processing.override": "默认实例覆盖", + "processing.override.title": "使用实例提供的处理服务器", + "processing.override.description": "如果Web实例提供自己的默认处理服务器,您可以选择使用它而不是主处理服务器。请确保它是您信任的服务器。", + + "processing.community": "社区实例", + + "processing.enable_custom.title": "使用自定义处理服务器", + "processing.enable_custom.description": "如果您选择,Freesavevideo将使用自定义处理服务器。尽管Freesavevideo采取了一些安全措施,但我们不对通过社区实例造成的任何损害负责,因为我们无法控制它们。\n\n请谨慎选择使用哪些实例,并确保它们由您信任的人托管。", + + "processing.custom.placeholder": "自定义实例域名" +} diff --git a/web/i18n/zh-cn/tabs.json b/web/i18n/zh-cn/tabs.json new file mode 100644 index 00000000..8e61eabb --- /dev/null +++ b/web/i18n/zh-cn/tabs.json @@ -0,0 +1,8 @@ +{ + "save": "保存", + "settings": "设置", + "updates": "更新", + "donate": "捐赠", + "about": "关于", + "remux": "混流" +} diff --git a/web/i18n/zh-cn/updates.json b/web/i18n/zh-cn/updates.json new file mode 100644 index 00000000..d1b3112f --- /dev/null +++ b/web/i18n/zh-cn/updates.json @@ -0,0 +1,4 @@ +{ + "button.next": "前往旧的更新日志 ({{ value }})", + "button.previous": "前往新的更新日志 ({{ value }})" +}