From 94fb3bb853d13d99aaf649e6038a6b34359cbf3d Mon Sep 17 00:00:00 2001 From: bdim Date: Wed, 15 May 2024 01:36:47 +0800 Subject: [PATCH 01/16] Update Readme.md add zh-cn in Readme --- docs/Readme.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/Readme.md b/docs/Readme.md index 19b46866..b46fafdc 100644 --- a/docs/Readme.md +++ b/docs/Readme.md @@ -12,6 +12,9 @@

Znasz 🇵🇱? Przejdź tutaj.

+

+ 简体中文,请点击这里. +

From 313a02aa863e06866dc41f4175af29ba83ff0648 Mon Sep 17 00:00:00 2001 From: bdim Date: Wed, 15 May 2024 02:00:24 +0800 Subject: [PATCH 02/16] Create Readme.md for Chinese --- docs/zh/Readme.md | 129 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 docs/zh/Readme.md diff --git a/docs/zh/Readme.md b/docs/zh/Readme.md new file mode 100644 index 00000000..aec95ce8 --- /dev/null +++ b/docs/zh/Readme.md @@ -0,0 +1,129 @@ + + + + + +
🚧️ + 客户端正在进行重大重写! 这意味着,围绕WebCord的大多数工作将保持在最低限度——在现有代码之上可能不会有耗时和重大的更新。然而,WebCord仍应收到维护更新,以及不需要投入我太多时间的新功能或改进。 +
+

+ EnglishHere。 +

+
+ + + + WebCord标志 + + + + + +# WebCord + +[![CodeQL][codeql-badge]][codeql-url] [![构建][build-badge]][build-url] +[![Weblate徽章][l10nbadge]][l10n] [![GitHub下载][dlbadge]][downloads] +[![Discord服务器][discord-badge]][discord-url] + +一个直接实现的Discord和[Spacebar]客户端,没有使用[Discord API][discordapi]。 +使用🇵🇱的[Electron][electron]框架制作。 + +
+ +## 理念 / 主要特点 + +如今,WebCord是一个相当复杂的项目;它可以被概括为一包安全和隐私加固、Discord功能重新实现、Electron/Chromium/Discord漏洞解决方法、样式表、内部页面和封装的页面,旨在尽可能符合服务条款(或者隐藏可能违反它的更改,以避免Discord的注意)。所有功能,请查看[Features.md](Features.md)。 + + - 🕵️ **为隐私而加固** + +WebCord做了很多工作来提高用户的隐私。它阻止了已知的追踪和指纹识别方法,但这并不是它的终点。它还管理对相机或麦克风等敏感API的权限,将其自己的用户代理设置为Chromium浏览器中出现的一个,并欺骗Web API修改,以防止将其与真实的Chrome/Chromium浏览器区分开来。 + +- 🛡️ **遵循最佳安全实践** + +WebCord非常关心您的安全。它完全用TypeScript编写,带来了静态类型的威力,有助于在不需要在运行时测试应用程序的情况下帮助检测常见错误。所有这些都通过ESLint得到了加强,ESLint禁止了一些TypeScript实践,如使用`any`类型,并强制执行代码的一些外观方面,以保持它的更加一致。 + +与官方Discord客户端不同,WebCord关于Electron的政策也使其使用当前支持和可用的最新主要版本。这使得WebCord使用更更新的Electron版本,拥有更近期的Chromium引擎。 + +建立在Electron和Chromium之上,WebCord的安全也高度依赖于Chrome的[vulnerability rewards program][chromiumbounty],这可能是在比较不同流行浏览器引擎选择时最知名的此类程序之一。Electron也对加载远程内容做好了充分准备,利用它们的进程模型的优势,以及不同的Chromium沙箱技术来分离Node.js和浏览器脚本。WebCord也尽力遵循[Electron#Security]的实践。 + +- 🛠️ **可定制的** + +WebCord可以根据您的需求和偏好进行配置——您可以通过在内容安全策略设置中阻止不必要的第三方网站来进一步加固它,通过阻止输入指示器来提高您的隐私等!此外,对自定义样式表的支持也在路上,允许您按照您喜欢的方式为主题WebCord! + +- 📱 **支持ARM和Linux移动设备** + +尽管Electron不是为移动设备设计的,WebCord尽力即使在具有较小屏幕和触摸屏的设备上也能响应。虽然还不是理想的,但应该可以用于基本的Discord使用。然而,我计划有一天专注于它,使其外观和工作更接近官方的Discord Android客户端。 + +## 文档 (部分未提供翻译): + +对于新来者,我建议至少阅读[FAQ](FAQ.md)(以解决常见问题,而不是将它们报告为*错误*)。您也可以阅读[Features](Features.md)以了解哪些功能已经实现并得到支持。强烈建议阅读[应用程序许可证](../LICENSE)。 + +- [WebCord的功能列表](Features.md) +- [社区维护的提供WebCord的仓库](Repos.md) +- [常见问题](FAQ.md) + - *[我应该下载哪个文件?](FAQ.md#1-which-file-i-should-download)* + - *[内容加载不正确...](FAQ.md#2-imagevideocontent-does-not-load-properly-is-there-anything-i-can-do-about-it)* + - *[如何授权麦克风?](FAQ.md#3-how-to-get-a-microphone-permission-for-webcord)* + - *[为什么选择Electron?](FAQ.md#4-why-electron)* + - *[关于服务条款?](FAQ.md#5-is-this-project-violating-discords-terms-of-service)* +- [命令行 / 构建标志](Flags.md) + - [命令行(运行时)标志](Flags.md#command-line-runtime-flags) + - [构建标志](Flags.md#build-flags) +- [参与应用程序开发](Contributing.md) +- [构建、打包和测试源代码](Build.md) + - [安装应用程序依赖项](Build.md#install-app-dependencies) + - [编译和直接运行代码](Build.md#compile-code-and-run-app-directly-without-packaging) + - [Linting和验证代码](Build.md#run-linter-and-validate-the-code) + - [打包和创建分发文件](Build.md#packaging-creating-distributables) +- [源代码目录结构](Files.md) +- [翻译](Contributing.md#how-to-translate-webcord) +- [支持的平台](Support.md) +- [许可证](../LICENSE) +- [隐私政策](Privacy.md) + +## 历史 + +最初,这个项目是[Discord-Electron]的一个分支,但后来最终被我重写为*Electron Discord Web App*项目,现在被称为*WebCord*。 + +在早期,它有一个非常简单的概念:至少在功能方面,比Nativefier更好的Web应用程序实现。由于我太年轻,无法理解如何保持事物的私密性和安全性,因此这个项目的代码充满了缺陷。它就是这样,直到`1.x.y`,当代码的隐私和安全性逐渐形成,`1.2.0`是一个重大的进步,因为开始采用TypeScript。后来,我为项目文档添加了默认的linter,并为其配置了规则,并专注于子窗口设计,这为Discord页面添加了*文档*、*设置*和*关于*窗口。然后我意识到当前的屏幕共享对话框存在一个严重问题——它被注入到页面中,这意味着Discord技术上可以访问窗口的缩略图并*模拟*鼠标点击事件,即使没有任何交互,也能触发共享屏幕。这个缺陷幸运地在更现代的WebCord版本中通过BrowserViews得到了修复。 + +随着代码质量、新理念和目标的形成,这个项目——现在它接近于包装Discord网站并为其开发自己的UI(待办事项),主要用于基于Discord API的非Discord实例(可能有一天决定WebCord也支持其他API)。有了这个,我想以一种真正自由和开源软件(FOSS)客户端的方式重新实现Discord,没有任何风险,用户会因为违反服务条款或因可疑地使用Discord REST API而被检测为自机器人而被禁止。这就是WebCord目前主要致力于实现的。 + +应该说,在我了解Electron的工作原理之前,[**@GyozaGuy**](https://github.com/GyozaGuy)的项目帮助我开始了自己的开发Discord webapp。没有他的工作,我不知道我是否会开始开发WebCord。 + +## Wiki页面 + +由于这个项目的**GitHub Wiki页面**打算由社区维护,它们应该被视为潜在的恶意或误导信息来源。建议在阅读社区维护的Wiki页面之前,先阅读官方文档。 + +## 许可证 +本项目根据**[MIT许可证][license]**的条款重新分发: + + 特此免费授予任何获得本软件和相关文档文件(以下简称“软件”)副本的人处理软件的权利,包括但不限于使用、复制、修改、合并、出版、分发、再许可和/或出售软件副本的权利,并允许向软件提供的人这样做,但须遵守以下条件: + + 上述版权声明和本许可声明应包含在所有软件副本或实质性部分中。 + + 软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权的保证。在任何情况下,无论因合同、侵权行为或其他原因,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是直接的、间接的还是与之相关的,因软件或软件的使用或其他交易而引起的。 + +## 想要为我的项目做出贡献吗? + +请查看[`Contributing.md`](./Contributing.md)——它描述了更多关于如何帮助提高WebCord质量的方法。对于一些任务,您甚至不需要熟悉编程! + +[dlbadge]: https://img.shields.io/github/downloads/SpacingBat3/WebCord/total.svg?label=下载&color=%236586B3 +[downloads]: https://github.com/SpacingBat3/WebCord/releases "发布" +[build-badge]: https://img.shields.io/github/actions/workflow/status/SpacingBat3/WebCord/build.yml?label=构建&logo=github&branch=master&event=push +[build-url]: https://github.com/SpacingBat3/WebCord/actions/workflows/build.yml "构建状态" +[l10nbadge]: https://hosted.weblate.org/widgets/webcord/-/svg-badge.svg +[l10n]: https://hosted.weblate.org/engage/webcord/ "帮助WebCord的本地化" +[Sentry]: https://sentry.io "应用性能监控和错误跟踪软件" +[Discord-Electron]: https://github.com/GyozaGuy/Discord-Electron "为Linux系统设计的Electron Discord应用。" +[electron]: https://www.electronjs.org/ "使用JavaScript, HTML和CSS构建跨平台桌面应用。" +[electron-forge]: https://www.electronforge.io/ "创建、发布和安装现代Electron应用程序的完整工具。" +[license]: ../LICENSE "WebCord许可证" +[Spacebar]: https://spacebar.chat "免费、开源且可自行托管的与Discord兼容的聊天、语音和视频平台。" +[discordapi]: https://discord.com/developers/docs/reference "官方Discord REST API文档" +[chromiumbounty]: https://bughunters.google.com/about/rules/5745167867576320/chrome-vulnerability-reward-program-rules "Chrome漏洞奖励计划规则" +[Electron#Security]: https://www.electronjs.org/docs/latest/tutorial/security "安全 | Electron文档" +[codeql-badge]: https://img.shields.io/github/actions/workflow/status/SpacingBat3/WebCord/codeql-analysis.yml?label=分析&logo=github&logoColor=white&branch=master&event=push +[codeql-url]: https://github.com/SpacingBat3/WebCord/actions/workflows/codeql-analysis.yml "CodeQL分析状态" +[discord-badge]: https://img.shields.io/discord/972965161721811026?color=%2349a4d3&label=支持&logo=discord&logoColor=white +[discord-url]: https://discord.gg/aw7WbDMua5 "Discord上的官方支持服务器!" From c61d18f97412b8a3b6732ec56d6aed6ca25a37f1 Mon Sep 17 00:00:00 2001 From: bdim Date: Wed, 15 May 2024 02:02:34 +0800 Subject: [PATCH 03/16] Create Build.md for Chinese --- docs/zh/Build.md | 83 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 docs/zh/Build.md diff --git a/docs/zh/Build.md b/docs/zh/Build.md new file mode 100644 index 00000000..feadfac0 --- /dev/null +++ b/docs/zh/Build.md @@ -0,0 +1,83 @@ +# 处理源代码 + +当处理WebCord时,你可能需要使用许多工具来能够将其从TypeScript编译成JavaScript,打包成可分发格式,运行linter等。本节将描述你可能需要知道的命令,以便继续其开发或自行从源代码打包。 + + + + + + +
ℹ️ + 为了简化文档,下面只显示了npm命令语法。如果你更喜欢使用另一个包管理器,你完全可以这样做,因为在我的理念中,你不应该受到维护者使用的工具集的限制,并且有权选择你自己的工具。 +
+ + + + + +
⚠️ + WebCord带有package-lock.json作为锁文件格式,你偏好的包管理器可能无法与之配合使用。你仍然可以安装最新的依赖项,但是在依赖项破坏发生时,创建的锁文件将不会被用来重现测试环境。 +
+ +## 安装应用程序依赖项。 + +这是你需要执行的第一个命令——没有它,你将无法继续进行应用程序测试和运行`package.json`中列出的大多数命令。 +```sh +npm ci +``` + +这个命令使用`package-lock.json`,它包含了更快的包安装的解析包树。虽然`package-lock.json`包含了过去确认工作的依赖树,或者在发布的情况下也可以用于重现构建,你可能想要选择最新的*非破坏性*(根据`semver`规范)依赖项,这些依赖项可能包含错误修复和安全补丁。这通常不会引起任何破坏,如果出现任何问题,你仍然可以使用`git`回到以前的状态。 + +要更新依赖项到最新版本: + +``` +npm update +``` + +请注意,`npm ci`也会安装开发依赖项。**这** **可能是你想要的**,因为这些依赖项包括了编译、linting和打包WebCord所需的所有推荐包。然而,如果你只想安装生产依赖项(例如,你想使用你自己的工具集或已经使用`npm i -g`全局安装了它们),你可以使用以下命令: + +``` +npm i --only=prod +``` + +## 编译代码并直接运行应用程序(无需打包)。 + +在你安装了所有必需的`dependencies`和`devDependencies`之后,你可以使用以下命令逐步将WebCord的源代码从TypeScript编译成JavaScript: +``` +npm run build +``` + +在打包之前编译代码并启动应用程序: +``` +npm start +``` + +## 运行linter并验证代码。 + +在开发过程中,你可能想要检查你的代码质量是否足够被接受为WebCord项目的一部分。为此,你可能想要编译它(以确保没有编译错误)并运行linter(以检查其他问题)。为此,你可以使用下面的命令: +``` +npm test +``` + +如果你不想编译代码,也可以只运行linter: +``` +npm run lint +``` + +## 打包 / 创建可分发物。 + +如果你想与某人分享你打包的应用程序的二进制文件,或者只是想在没有源代码和开发包的情况下安装和/或使用它,你可以使用以下命令为你的平台生成所有有效的可分发文件: +``` +npm run make +``` + +你也可以创建一个包含打包应用程序的目录。这个目录没有适应特定的分发格式,但它包含了带有编译应用程序的Electron二进制文件,如果你想要在你的操作系统中安装它,需要手动设置。要打包应用程序而不将其打包为可分发物,执行以下命令: +``` +npm run package +``` + +这将为你当前的平台打包应用程序。 + +## 构建环境变量。 + +在使用`npm run make`制作应用程序可分发物时,你可以使用一些环境变量,这些变量将在应用程序打包之前生效。有关更多信息,请参见[`Flags.md`](./Flags.md#1-in-electron-forge)。 From c8f4e8cf5ed4ba23da51d6e19154d2dc00453d01 Mon Sep 17 00:00:00 2001 From: bdim Date: Wed, 15 May 2024 02:05:33 +0800 Subject: [PATCH 04/16] Create Contributing.md for Chinese --- docs/zh/Contributing.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 docs/zh/Contributing.md diff --git a/docs/zh/Contributing.md b/docs/zh/Contributing.md new file mode 100644 index 00000000..13f973dd --- /dev/null +++ b/docs/zh/Contributing.md @@ -0,0 +1,38 @@ +# 如何参与项目贡献? + +本文件描述了参与项目贡献的方法。 + +## 如何报告错误或请求新功能? + +你可以通过应用程序的菜单栏或托盘菜单来完成。应用程序将生成一个链接到新的GitHub问题的链接,其中包含关于你的操作系统的预填详细信息(你仍需描述问题,它不会自动为你发送错误报告)。你也可以通过项目的GitHub仓库来报告问题。 + +在创建GitHub问题时,请查看: + + - 是否有任何类似的问题(包括已关闭的);如果是,请尝试在该问题下描述你的问题或要求重新打开它以引起我的注意; + + - 如果你的问题可以在Web版本中重现——修复Discord的bug目前不是这个项目的优先事项,并且可能会在网站更新时造成可能的破坏; + +## 如何在应用开发中工作并创建拉取请求? + +在处理WebCord的源代码时,我建议阅读有关[每个文件][Files.md]的文档以及它们在WebCord中的作用,以了解您应该将代码放置在现有文件的哪个位置。我也鼓励阅读以下部分的文档: + +- [`Build.md`],以了解更多关于当前WebCord的开发脚本语法,包括如何编译、测试和打包源文件。 + +- [`Flags.md`],以了解更多关于当前构建标志的实现。 + +## 如何翻译WebCord? + +目前,WebCord已将其翻译移至其[Weblate实例][weblate]。 +它包括翻译项目的现状、说明和限制。你可以自由地以*旧方式*(通过做PR)翻译它,然而Weblate的更改可能会更早地被拉取,以避免在Weblate方面产生冲突。 + +## 其他贡献方式: + +你还可以通过以下方式帮助维护本项目: + - 参与/回答GitHub讨论, + - 帮助我解决问题, + - 更新/处理文档, + - 查看WebCord的源代码或拉取请求并建议更改。 + +[`Build.md`]: Build.md +[`Flags.md`]: Flags.md +[weblate]: https://hosted.weblate.org/projects/spacingbat3-webcord From 99dd8fe5e32b161de0f44cea472a96f439cd7430 Mon Sep 17 00:00:00 2001 From: bdim Date: Wed, 15 May 2024 02:07:37 +0800 Subject: [PATCH 05/16] Create FAQ.md for Chinese --- docs/zh/FAQ.md | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 docs/zh/FAQ.md diff --git a/docs/zh/FAQ.md b/docs/zh/FAQ.md new file mode 100644 index 00000000..75552ba2 --- /dev/null +++ b/docs/zh/FAQ.md @@ -0,0 +1,71 @@ +# 常见问题解答 +由于许多Linux新手或Windows/MacOS用户甚至在安装我的应用程序时都遇到很多问题,我决定编写一个简短的FAQ,回答我在Discord上看到的问题或问题。 + +## 1. 我应该下载哪个文件? + +如果您在确定应该在您的平台上安装哪个文件时遇到困难,这里是按平台分组的完整平台列表和推荐的分发名称列表: + +
+ +### Windows + +|
架构
|
存档名称
| +| :------------------------------------- | :------------------------------------- | +| 64位 (Intel/AMD) | `webcord-win32-x64-{version}.zip` | +| 32位 (Intel/AMD) | `webcord-win32-ia32-{version}.zip` | +| 64位 ARM | `webcord-win32-arm64-{version}.zip` | + +### macOS + +|
架构
|
存档名称
| +| :------------------------------------- | :------------------------------------- | +| 64位 X86 (常规Mac电脑) | `webcord-darwin-x64-{version}.zip` | +| 64位 ARM (Apple M1电脑) | `webcord-darwin-arm64-{version}.zip` | + +### Linux + +|
发行版
|
推荐包
| +| :------------------------------------------ | :-------------------------------------------------- | +| Debian / Ubuntu 64位 (AMD或Intel) | `webcord_{version}_amd64.deb` | +| Debian / Ubuntu 32位 (AMD或Intel)* | `webcord_{version}_i386.deb` | +| Debian / Ubuntu ARM 64位 | `webcord_{version}_arm64.deb` | +| Debian / Ubuntu ARM 32位 | `webcord_{version}_armhf.deb` | +| Arch Linux / Manjaro (任何架构) | [Arch用户仓库(官方)](https://aur.archlinux.org/packages/webcord-git/) | +| Fedora / Red Hat Linux 64位 (Intel / AMD) | `webcord-{version}.x86_64.rpm` | +| Fedora / Red Hat Linux 32位 (Intel / AMD)*| `webcord-{version}.i386.rpm` | +| Fedora / Red Hat Linux ARM 64位 | `webcord-{version}.arm64.rpm` | +| Fedora / Red Hat Linux ARM 32位 | `webcord-{version}.armv7hl.rpm` | +| Linux 64位 (Intel / AMD) 发行版 | `webcord-{version}-x64.AppImage` | +| Linux 32位 (Intel / AMD) 发行版* | `webcord-{version}-ia32.AppImage` | +| Linux ARM 64位 发行版 | `webcord-{version}-arm64.AppImage` | +| Linux ARM 32位 发行版 | `webcord-{version}-armv7l.AppImage` | + +
* 被Electron弃用的平台。
+ +在[`Repos.md`]中还有社区维护的WebCord包的列表。 + +## 2. 图片/视频/内容加载不正确,我能做些什么吗? +是的,这可能是由于内容安全策略头没有包含所有允许加载的URL的问题。你可以在WebCord设置中禁用它作为一个解决方案。 + +## 3. 如何为WebCord获取麦克风权限? +如果您通过应用程序设置授予了权限,这个警告可能表明您的系统音频设置中配置错误——由于某些原因,当没有默认/回退设备设置时,Electron似乎无法访问麦克风。要解决这个问题,请在您的系统音频设置中将您的麦克风设置为默认/回退,并重新启动应用程序——确保它已正确关闭,并且托盘中没有图标,也没有Electron/WebCord进程在后台运行! + +目前,这个bug可能在Linux上遇到,其他平台的状态未知。 + +## 4. 为什么选择Electron? + +我看到了很多关于Electron的批评性讨论,尽管我认为它不是完美的软件,但我认为它目前对我来说是最好的,因为对于基于Web的软件开发——它旨在在连接到互联网站点时保持安全,与其他一些解决方案不同。它也是我发现的唯一支持ARM设备解决方案。对于无法为每个平台开发每个应用程序并维护它的初学者来说,Electron是一个简单的解决方案,它只是维护多平台应用程序更加耗时,因为不同的GUI界面使用了不同的库。例如,如果我想使用`node-gtk`为GTK3/4 WebView重写WebCord,我将不得不在Windows上使用不同的API,因为`node-gtk`目前在Windows平台上不起作用。对于认为QT可以作为本地实现解决方案的人来说,我不认为QT总是与每个主题很好地集成(即*它非常丑陋!*)或者可以轻松主题化。 + +截至接近Electron的替代品,唯一似乎有希望的软件是NW.js,但它更多地设计用于渲染本地站点,并且不会像Electron那样采取相同的安全方法,这让我更担心开发代码,以免泄露太多对系统文件的访问权限给站点。 + +请注意,我设计WebCord的哲学是不使用Discord API,使其免于被轻易检测为非官方Discord客户端和/或冒险用户,这些用户在使用API的某些部分时可能被视为自机器人。即使在今天,我仍然不鼓励进行请求,也许最安全的方法将是让客户端首先分析站点所做的请求,以制作安全API端点列表,或者实际上捕获Discord网站所做的请求,并将它们暴露给客户端的某些功能。 + +此外,你实际上可以在不同的应用程序中重用Electron二进制文件——实际上,一些Linux发行版,如Arch Linux,对于大多数不依赖任何特定Electron版本/二进制的基于Electron的应用程序都是这样做的。这种做法将节省磁盘空间和其他资源,因为没有必要同时运行多个具有不同Chromium引擎版本的Electron二进制文件。 + +## 5. 这个项目是否违反了Discord的服务条款? + +在当前状态下,它通过CSS注入和JavaScript调整修改了页面的风格,所以我相信**是的**。然而,我专注于WebCord在隐藏所有修改方面进行欺骗,Discord无法确定做了什么以及如何进行修改(例如,样式表是在没有HTML的情况下注入的,因此它们无法通过`MutationObserver`以编程方式捕获),所以即使WebCord进行了任何修改,包括注入自定义样式表,**你应该都是安全的**。 + +在我看来,WebCord是您应该期望因违反Discord的服务条款而被禁止使用的最后一个客户端。我认为使用直接通过API向Discord发送请求的客户端存在更大的风险,因为可以很容易地检测到这些客户端发送的异常请求,特别是当官方客户端的API版本升级,或者官方客户端修改通常不隐藏它们修改的事实,甚至有时在不通知用户的情况下直接使用API。 + +[`Repos.md`]: ./Repos.md "提供WebCord的社区维护软件仓库列表。" From b4115978cbc75ab6b94278e0bda9a2d6a3e2477d Mon Sep 17 00:00:00 2001 From: bdim Date: Wed, 15 May 2024 02:09:38 +0800 Subject: [PATCH 06/16] Create Features.md for Chinese --- docs/zh/Features.md | 79 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 docs/zh/Features.md diff --git a/docs/zh/Features.md b/docs/zh/Features.md new file mode 100644 index 00000000..903982f4 --- /dev/null +++ b/docs/zh/Features.md @@ -0,0 +1,79 @@ +## WebCord当前实现(和计划中)的功能列表 + +由于WebCord基于Discord网站(与官方客户端和客户端mod不同),它不使用任何Discord的专有Node.js C++原生模块,也不假装自己是官方Discord客户端(而是作为Chromium浏览器),因此它具有类似Discord Web应用程序的功能和限制。然而,WebCord客户端能够对其进行一些调整,实现了以下功能列表: + +| 名称 | 描述 | 状态/备注 | +| --- | --- | --- | +| 托盘图标 | 隐藏托盘中的应用程序。 | ✅️ 完成 | +| 红点提示(托盘) | 在托盘图标上显示DM或提及的指示器。 | ✅️ 完成 | +| 自定义CSP | 允许用户修改CSP以阻止不必要的网站。 | ✅️ 完成 | +| 提及时闪烁窗口 | 即使托盘被禁用,也通过闪烁窗口按钮在视觉上指示提及或私信。 | ✅️ 完成 | +| 自定义字典语言 | 自定义自动完成功能使用的语言集 | ❌️ **待办** | +| 翻译 | WebCord的多语言本地化支持。 | ✅️ 完成 | +| 隐藏Discord侧边栏 | 切换包含频道列表的侧边栏的可见性状态。这使得WebCord可以在像PinePhone智能手机这样的小屏幕设备上工作。 | ✅️ 完成 | +| 基于Node.js的WebCord扩展支持 | WebCord特定插件实现,允许使用Node依赖项。 | ❌️ **待办** | +| 基于Chromium的扩展支持 | Chromium浏览器插件支持。 | 1️⃣ ***Alpha***(实验性实现) | +| 插件权限管理 | 出于安全原因限制插件的权限。 | ❌️ **待办** | +| 推到说话全局快捷键 | 使PTT快捷键全局可用。 | ❌️ **待办** | +| 阻止`/science`和`/tracing` API端点 | 实施阻止Discord中一些已知跟踪方法。 | ✅️ 完成 | +| 阻止`/typing` API端点 | 可选择性阻止输入指示器。 | ✅️ 完成 | +| 端到端消息加密。 | 允许在发送前加密消息框中的消息。 | ❌️ **待办** | +| 基于HTML的设置菜单 | 基于Web的设置菜单,而不是GTK(菜单栏)菜单。 | 2️⃣ ***Beta***(正在积极改进) | +| 命令行标志解析 | 提供对命令行参数的处理支持,包括像`--help`这样的常见标志。 | ✅️ 完成 | +| WebCord更新通知 | 每当新版本的WebCord发布时通知用户 | ✅️ 完成 | +| 错误报告生成 | 根据操作系统配置自动生成错误报告 | ✅️ 完成 | +| `buildInfo.json` | 实现生成和解析包含发布信息和构建标志的JSON配置文件。 | ✅️ 完成 | +| 应用内文档浏览器 | 内置的Markdown阅读器,用于离线文档文件。 | ✅️ 完成 | +| 加载时的启动画面 | 在加载Discord之前显示动画启动画面。 | ✅️ 完成 | +| 权限管理 | 允许您决定Discord可以做什么,不可以做什么。 | ✅️ 完成 | +| 自定义Discord实例 | 允许使用不同的Discord实例,例如Fosscord。 | 1️⃣ ***Alpha*** | +| 隐藏下载按钮/弹出窗口 | 隐藏指向官方Discord客户端下载链接的元素 | ✅️ 完成 | +| 基于HTML的*关于*面板 | 显示应用程序信息的非本地窗口,如许可证、版本或致谢。 | 2️⃣ ***Beta***(正在积极改进) | +| 自定义Discord和WebCord样式 | 允许使用自己的主题样式Discord和WebCord。 | 1️⃣ ***Alpha***(目前只能样式化Discord) | +| 响应邀请URL | 响应公会邀请链接(像官方Discord客户端一样)。 | ✅️ 完成 | +| 使用外部Web浏览器导航 | 通过WebSocket处理导航请求 | ✅️ 完成 | +| 应用数据加密 | 加密应用文件,防止第三方软件篡改。 | 2️⃣️ ***Beta***(计划改进) | + + **注意:** 请为上述列出的功能报告错误。如果您的问题描述了不在列表中的功能,您可能需要提出一个**功能请求**。如果一些已实现的应用程序功能缺失,请在*问题*或*讨论*中告知我。如果您足够有才华,您也可以自己实现它们并进行拉取请求。 + +### 状态图例: + +- ❌️ **待办** – 这个功能**可能**或**可能不**在未来实现。它处于*概念*状态——关于它的实现还没有任何内容,它可能不会很快实现,即使它计划被完成。 + +- ⚠️ **将做** – 关于这个功能的代码还没有任何实现,但它被计划为下一个要处理的特性。 + +- 1️⃣ ***Alpha*** – 实现这个功能的工作已经开始,但它仍然远未完成。 + +- ️2️⃣️ ***Beta*** – 这个功能已经大部分实现,但在被标记为*完成*之前仍需要进行润色。这表明这个功能将被积极改进以适应新的变化,找到更好的实现方式等。 + +- ✅️ **完成** – 这个功能已经完全实现,无需积极工作。 + +- ⛔️ **损坏** – 这个功能之前可以工作,但由于某些Discord和/或WebCord更新,它最近停止工作了。 + +- 🚧️ ***施工中*** – 正在进行重大重写以改进它。 + +--- + +### 实验性功能 + +以下是一些尚未明显实现且远非*用户友好*的功能的说明。这里的意思是可能会破坏,所以不要指望您能够按预期使用它们。 + +#### 1. 自定义Discord样式 + +从版本`3.0.0`开始,WebCord能够样式化Discord页面——与Stylus等浏览器扩展不同,它在不注入任何HTML元素到页面的情况下做到这一点,更难检测到修改。另一方面,注入的样式表可以被Discord CSS轻松覆盖某些属性,这可以通过`!important`规则来防止。此外,使用`@import`关键字引用另一个CSS样式表根本不起作用,需要在注入前解决。这就是为什么WebCord到`3.1.3`的实现如此问题重重,并且与大多数现成的Discord主题不兼容的原因。 + +然而,自从`3.1.4`发布以来,它已经大大改进——大多数不依赖于远程内容(如图像和字体)的主题现在应该大部分功能正常,因为WebCord目前能够解析`@import`语句,并在运行时修复主题,以使Chromium正确渲染它们。现在唯一的问题是允许样式提供自己的内容安全策略,以允许加载脚本正常工作所需的远程内容。 + +目前,WebCord在它们以`.theme.css`扩展名结尾时从`{userData}/Themes/`目录加载CSS主题,就像大多数BetterDiscord主题一样。 + +然而,未来的版本中WebCord将使用`safeStorage`加密主题,以防止在添加到WebCord后被第三方软件篡改,以提高安全性,特别是在计划允许主题以某种方式修改其CSP的未来版本中。这破坏了通过`.theme.css`文件加载主题,并添加了`--add-css-theme`标志作为替代。 + +#### 2. Chrome扩展 + +从版本`3.0.0`开始,WebCord可以使用Electron的[Chrome扩展支持][chrome-ext]加载未打包的Chrome扩展。由于Electron实现的Chrome扩展与Chromium中的扩展相去甚远(这是由于Electron在Chromium的代码中移除了很多浏览器特定代码),许多扩展可能无法完全功能或根本不起作用。 + +这就是为什么考虑在未来实现WebCord特定的扩展实现,这种情况下Chromium扩展可能会被弃用和/或删除。 + +你可以通过从`.crx`归档中提取它们到`{userData}/Extensions/Chrome/{extension name}/`文件夹来加载Chromium扩展。 + +[chrome-ext]: https://www.electronjs.org/docs/latest/api/extensions "Chrome Extension Support | Electron的在线文档" From 52b508d78e81b65532c8872612393ac4fb1a5de8 Mon Sep 17 00:00:00 2001 From: bdim Date: Wed, 15 May 2024 02:12:01 +0800 Subject: [PATCH 07/16] Create Files.md for Chinese --- docs/zh/Files.md | 139 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 docs/zh/Files.md diff --git a/docs/zh/Files.md b/docs/zh/Files.md new file mode 100644 index 00000000..666eafef --- /dev/null +++ b/docs/zh/Files.md @@ -0,0 +1,139 @@ +# 源代码树 +WebCord包含许多源代码和资产,用于其各自的功能——这可能会导致开发者感到困惑,他们不知道应该在哪里放置他们的代码,以及在哪里找到特定功能的部分。 + +## 顶级目录和配置文件 + +WebCord的本地仓库通常具有以下顶级文件夹: + +- `sources` – 这是WebCord仓库最重要的部分,因为它包含所有源代码文件和资产(包括编译成JavaScript的代码)。 + +- `docs` – 这是本文档所在的位置。它可能包含不同语言版本的文档翻译的子文件夹。 + +- `node_modules` – 这是NPM生成的文件夹,用于存储WebCord的依赖项。它不应被推送到远程仓库,但如果出于某种原因它在那里,请尽快创建一个新的问题。 + +- `out` – 这个文件夹包含打包的WebCord版本及其*分发物*(即Debian的`*.deb`,Fedora的`*.rpm`,Linux通用的`*.AppImage`和Windows和MacOS的`*.zip`)。 + +此外,您还可以在WebCord仓库的副本中找到这些顶级文件: + +- `package.json` – 这个文件包含`npm`和`electron`使用的元数据,如WebCord的依赖项、主脚本路径、Forge配置路径,甚至是*WebCord就是WebCord*。 + +- `package-lock.json` – `npm`生成的文件,用于锁定依赖项到各种版本。由于WebCord在主版本中的发布模型倾向于始终使用尽可能多的更新的依赖项版本,大多数依赖项没有锁定,并且出于这个原因没有将锁定文件发布到仓库中(如果您想更改这一点,请查看`.gitignore`)。 + +- `yarn.lock` – 类似于`package-lock.json`的锁定文件,但它由`yarn`包管理器使用。 + +- `tsconfig.json` – 包含元数据的JSON with Comments配置文件。 + +- `.eslintrc.json` – 一个linter配置(ESLint)。 + +## `sources`文件夹内的目录和文件 + +为了使代码浏览更加容易,代码和资产根据其类型分组在以下文件夹中: + +- `code` – 包含TypeScript格式的应用程序代码。由于WebCord的代码现在已经相当大,代码被分离到不同文件中的以下文件夹: + + - `main` – 包含WebCord特定的代码部分,不能被任何其他软件在不做代码修改的情况下重用。 + + - `modules` – 包括以这样一种方式制作的脚本,它们可以被不同的软件在不做任何代码修改的情况下重用。将来,我将把它们托管在Node.js注册表上,允许其他人在他们自己的软件中将它们作为模块使用。 + + - `build` – 包含与构建配置相关的脚本的文件夹;目前它仅用于Electron Forge(`forge.ts`)。 + +- `assets` – 包含作为WebCord软件一部分的所有资产。此文件夹中的资产按以下子文件夹分组: + + - `icons` – 包含WebCord使用的所有图标(包括应用程序图标和托盘图标)。 + + - `translations` – 包含对WebCord制作的官方翻译的目录。 + + - `web` – HTML内部网页及其内容(CSS/JSON文件)的文件夹,由WebCord使用。 + +- `app` – 包含编译成JavaScript语言的应用程序代码,删除了注释以节省一些空间。我不建议您弄乱这些文件,因为它们无论如何都会被`tsc`覆盖,除非您想找出TypeScript在编译期间是否搞砸了什么(这不太可能发生,至少对于稳定的特性是这样)。它与`code`文件夹具有相同的结构。 + +## 包含WebCord代码的源文件 + +自初始发布以来,WebCord已经发生了巨大变化,其代码变得太大,无法在单个文件中舒适地开发。这也需要命名方案。因此,总的来说,WebCord的源代码文件是根据以下命名方案命名并放置在文件夹中的: +``` +{processOrBuild}/[type]/{functionality}.ts +``` + +- `{processOrBuild}`指示这个脚本属于哪个进程。WebCord目前包含三个代表该文件夹的文件夹:`main`、`renderer`和`global`(适用于属于多个进程的脚本)。该规则的例外是`build`目录,其中包含WebCord的Electron Forge构建配置。 + +- `[type]`子文件夹按其目的对代码进行分组。它可以意味着与`BrowserWindows`相关的脚本(`windows`)、窗口的`preload`s或依赖于其他脚本的`modules`。还有一些不属于这些类别的脚本——它们直接放在适当的`{process}`文件夹中。 + +- `{functionality}`直接显示这个脚本实现的功能。例如,`about.ts`表示实现*关于*窗口功能的脚本。 + +以下是对上述内容的更详细描述: + +--- + +### 跨进程脚本(`global/`): + + - `main.ts` – 主要负责从其他文件加载代码的其他部分,并将它们组合成一个程序的脚本。它还处理命令行标志(由于某些标志作为应用程序的独立部分工作)并实现为创建的`webContents`的默认属性(主要是为了加强应用程序的安全性)。 + + - `global.ts` – 包含在多个进程(即主进程和渲染器进程脚本)之间使用的简单模块声明的脚本。 + +--- + +### 与窗口相关的脚本: + +#### 窗口声明(`main/windows/`): + + - `about.ts` – 定义*关于*窗口,显示有关应用程序本身(版本、贡献者、许可证等)的信息。 + + - `docs.ts` – 定义WebCord的文档浏览器,使用[`marked`](https://www.npmjs.com/package/marked)引擎进行markdown渲染。 + + - `main.ts` – 包含WebCord主窗口的声明,即包含Discord界面的窗口。 + + - `settings.ts` – 用于WebCord新的基于HTML的配置面板的窗口定义。 + +#### 窗口特定的`preload`脚本(`renderer/preload/`): + + - `main.ts` – `mainWindow`的预加载脚本,基本上加载了下面几节中描述的`capturer.ts`和`cosmetic.ts`脚本。 + + - `settings.ts` – WebCord设置管理器的前端脚本;它通过IPC通信以从网站加载和获取配置。 + + - `docs.ts` – 提供WebCord的markdown文档阅读器的功能。 + + - `about.ts` – 负责根据翻译文件和预定义的HTML文件结构加载*关于*窗口的内容。 + + - `capturer.ts` – 与屏幕捕获BrowserView通信,显示窗口列表,并将选定的源通过IPC发送回Discord。 + +--- + +### 应用程序模块(`*/modules/`): + +#### 跨进程模块(`global/modules/`): + + - `user.ts` – 一个模拟WebCord的用户代理的模块,通过使用当前Electron版本中的Chromium引擎版本生成它。 + + - `l10n.ts` – 定义WebCord中的本地化支持。 + + - `package.ts` – 包含用于加载和验证`package.json`文件的类和函数。一旦它被设计为支持所有`package.json`属性,根据[NPM文档](https://docs.npmjs.com/cli/v8/configuring-npm/package-json),它可能会在未来发布在WebCord的源代码之外(作为一个独立的NPM包)。 + +#### 渲染器进程模块(`renderer/modules/`) + + - `capturer.ts` – 使用IPC向`main.ts`发送请求并等待它响应选定的源。 + + - `cosmetic.ts` – 对Discord网站进行一些美化更改,删除其中一些不必要的内容,如应用程序下载弹出窗口。 + +#### 主进程模块(`main/modules/`): + + - `bug.ts` – 一个生成新GitHub问题URL的模块,该URL是一个预填了一些Electron可用的操作系统详细信息的`bug`模板的URL。当前(截至WebCord)的实现 + + - `error.ts` – 处理`uncaughtException`s,允许在某些情况下进行更漂亮的输出,以及显示错误消息和简化的错误栈的`dialog` GUI窗口。 + + - `menus.ts` – 包括声明各种(OS原生)菜单的模块,以及一些通过它调用的功能的实现。 + + - `config.ts` – 包含用于读取和修改WebCord中各种配置文件的类和类型。 + + - `csp.ts` – 定义内容安全策略信息,将由WebCord用于覆盖原始CSP标头,允许阻止一些对Discord工作不必要的第三方网站。 + + - `client.ts` – 包含WebCord主进程中一些全局使用的属性。它包含一些在`package.json`中不可用的元数据,如Discord网站的URL。 + + - `update.ts` – 用于实现WebCord中更新通知功能的模块。 + +--- + +### 构建配置(即Electron Forge): + + - `build/forge.ts` – 包含应用程序的Electron Forge配置。 + + - `build/forge.d.ts` – 包括Electron Forge配置的类型定义。 From f64c294a48f4a0ee365120d790a55b971767ecee Mon Sep 17 00:00:00 2001 From: bdim Date: Wed, 15 May 2024 02:13:22 +0800 Subject: [PATCH 08/16] Create Flags.md for Chinese --- docs/zh/Flags.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs/zh/Flags.md diff --git a/docs/zh/Flags.md b/docs/zh/Flags.md new file mode 100644 index 00000000..55bbb51c --- /dev/null +++ b/docs/zh/Flags.md @@ -0,0 +1,46 @@ +# 命令行(运行时)标志 + +WebCord能够解析一些Chromium标志和以下特定于应用程序的标志: + +- **`--start-minimized` 或 `-m`** – 在托盘中最小化启动WebCord;在系统启动时运行WebCord时很有用; + +- **`--version` 或 `-V`** – 显示应用程序版本并在*应用程序准备好之前*退出。 + +- **`--help`, `-?` 或 `-h`** – 显示有关应用程序的帮助信息。 + +- **`--export-l10n={dir}`** – 将当前加载的翻译导出为一组JSON文件到**`{dir}`**目录。 + +- **`--verbose` 或 `-v`** – 显示调试消息。 + +- **`--gpu-info=basic|complete`** – 以JavaScript对象的形式显示Chromium的原始GPU信息。 + +# 构建标志: + +## 1. 在Electron Forge中 + +在使用Electron Forge打包应用程序时,WebCord支持以下构建环境变量来设置构建特定标志: + +- `WEBCORD_BUILD={release,stable,devel}` – 如果设置为`release`或`stable`,WebCord将被构建为稳定版本,其中一些实验性功能将被禁用,这些功能不适用于生产构建。默认构建类型为`devel`。 + +- `WEBCORD_ASAR={true,false}` – 如果设置为`false`,WebCord将不会被打包到`asar`归档中。默认为`true`。 + +- `WEBCORD_UPDATE_NOTIFICATIONS={true,false}` – 如果设置为`false`,新更新将不会显示通知;此功能旨在供包维护者使用,以便他们可以为用户禁用通知,并让包管理器处理更新通知。 + +- `WEBCORD_WIN32_APPID=[string]` *(仅限Windows)* – 替换`ApplicationUserModelID`,用作唯一的应用程序标识符。默认为`SpacingBat3.WebCord`。如果您想要区分您的构建与官方构建,例如,如果您要发布自己的Windows WebCord包,并带有您自己的补丁,并希望允许它与官方WebCord可执行文件共存,则应将其替换。 + +- `WEBCORD_FLATPAK_ID=[string]` *(仅限Linux)* – 在Flatpak清单文件中用作唯一的应用程序标识符。对于社区构建,应将其设置为其他内容。默认为`io.github.spacingbat3.webcord` + +## 2. 其他工具 + +如果您自己打包应用程序,您可以直接创建一个`buildInfo.json`文件,该文件由WebCord内部使用以确定构建环境标志的状态(除了`asar`打包,这是您需要使用自己的Electron打包软件实现或配置的)。 +`buildInfo.json`文件应放置在应用程序的根目录中(即与`package.json`相邻)并包含以下属性: + +- `"type": "devel"/"release"` – 类似于`WEBCORD_BUILD`,这控制此构建是否用于生产用途或开发目的。如果未设置,WebCord的构建类型将设置为`devel`。 + +- `"commit": [hash]` – 这个属性将保存有关构建提交的信息;对于`release`构建类型,它将被忽略。 + +- `AppUserModelId: [string]` *(仅限Windows)* – 定义WebCord构建的`ApplicationUserModelId`,这在Windows分发物中应该始终存在。 + +- `"features": [Object]` – 这是控制一些特性的对象;目前它可以包含这些可选属性: + + - `"updateNotifications": true/false` – 是否在新版本发布时显示通知;这不禁用更新检查器在控制台打印其当前状态(即如果版本过时)。 From 99b0f4a3809530ae6063be0a2ad3336e3162c668 Mon Sep 17 00:00:00 2001 From: bdim Date: Wed, 15 May 2024 02:15:02 +0800 Subject: [PATCH 09/16] Create Privacy.md for Chinese --- docs/zh/Privacy.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 docs/zh/Privacy.md diff --git a/docs/zh/Privacy.md b/docs/zh/Privacy.md new file mode 100644 index 00000000..e0adf1a5 --- /dev/null +++ b/docs/zh/Privacy.md @@ -0,0 +1,3 @@ +## 隐私政策 + +这款软件**不会**与其所有者/维护者共享任何数据——用户配置、会话详情和cookies都保存在本地。但是,因为这款软件连接到[Discord网站](https://discord.com/app)以及Fosscord实例(取决于用户选择),根据WebCord的配置,该应用程序可能会共享一些数据或甚至跟踪您。默认情况下,WebCord尝试保护用户隐私,并且不会授予敏感权限,同时通过阻止客户端自身所做的一些不必要的请求来减轻追踪。 From 8380712a2e14705b5ad8ca19341580aeb9ea0b49 Mon Sep 17 00:00:00 2001 From: bdim Date: Wed, 15 May 2024 02:22:41 +0800 Subject: [PATCH 10/16] Create Repos.md for Chinese --- docs/zh/Repos.md | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 docs/zh/Repos.md diff --git a/docs/zh/Repos.md b/docs/zh/Repos.md new file mode 100644 index 00000000..96181ecc --- /dev/null +++ b/docs/zh/Repos.md @@ -0,0 +1,43 @@ +## 社区维护的WebCord仓库 + +大多数GitHub发布之外的WebCord构建实际上是由社区提供的! + +下面的表格包括了已知的仓库及其维护者。 + +| 名称 | 维护者 | 平台 | 主页 | 徽章 (WebCord版本) | +| ------------------ | --------------------- | -------------------- | ---------------------------- | ------------------------------------------------- | +| Pi-Apps | [Botspot] | RPiOS/Debian (ARM) | [pi-apps.io][pi-apps-home] | [![Pi-Apps][pi-apps-badge]][pi-apps] | +| Pi-Ware | [oxmc] | Linux (ARM) | [pi-ware.ml][pi-ware-home] | [![Pi-Ware][pi-ware-badge]][pi-ware] | +| Debian仓库 | [Itai] | Debian (x86,ARM) | [itai-nelken.github.io][deb] | [![非官方APT仓库][debian-badge]][deb] | +| Flathub仓库 | [Multiple][fc] | Linux (x86,ARM) | [(FlatHub页面)][flathub] | (无,详见[网站][flathub]以获取版本信息) | +| Scoop/Extras | [lukesampson] | Windows (x86) | [scoop.sh] | (无) | +| AUR/`webcord` | [Hanabishi] | Arch Linux (x86,ARM) | [(AUR页面)][src-aur] | (无,详见[AUR][src-aur]以获取版本信息) | +| AUR/`webcord-bin` | [Hanabishi] | Arch Linux (x86,ARM) | [(AUR页面)][bin-aur] | (无,详见[AUR][src-aur]以获取版本信息) | +| CachyOS/`cachyos` | [CachyOS] | Arch Linux (x86) | [cachyos.org][cachyos-repo] | (无) | +| Raspbian Addons | [Raspbian Addons][ra] | RPiOS/Debian (ARM) | [raspbian-addons.org][ra-h] | (无,详见[仓库][ra-repo]以获取版本信息) | + + + +[pi-apps]: https://github.com/Botspot/pi-apps "适用于Raspberry Pi OS的开源软件应用中心。(GitHub)" +[pi-apps-home]: https://pi-apps.io/ "适用于Raspberry Pi OS的开源软件应用中心。(主页)" +[pi-apps-badge]: https://img.shields.io/endpoint?url=https%3A%2F%2Fwebcord-pi-apps-badge-a4fc5umlta6t.runkit.sh%2F +[pi-ware]: https://github.com/piware14/pi-ware "Pi-Apps的替代商店。(GitHub)" +[pi-ware-home]: https://pi-ware.ml "Pi-Apps的替代商店。(主页)" +[pi-ware-badge]: https://img.shields.io/endpoint?url=https%3A%2F%2Fwebcord-pi-apps-badge-a4fc5umlta6t.runkit.sh%2F%3Fbadge%3Dpi-ware&logo=data:image/png;base64,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 +[debian-badge]: https://img.shields.io/endpoint?url=https%3A%2F%2Fwebcord-debian-badge-toklg87kjpyo.runkit.sh%2F +[deb]: https://itai-nelken.github.io/Webcord_debian-repo/ "非官方Debian仓库(主页)" +[fc]: https://github.com/flathub/io.github.spacingbat3.webcord/graphs/contributors +[flathub]: https://flathub.org/apps/details/io.github.spacingbat3.webcord "社区维护的Flathub仓库。" +[src-aur]: https://aur.archlinux.org/packages/webcord "为'稳定'版本构建的源代码的PKGBUILD。" +[bin-aur]: https://aur.archlinux.org/packages/webcord-bin "为'稳定'版本重新打包的二进制文件的PKGBUILD。" +[Botspot]: https://github.com/Botspot +[Itai]: https://github.com/Itai-Nelken +[oxmc]: https://github.com/oxmc +[lukesampson]: https://github.com/lukesampson +[Hanabishi]: https://github.com/HanabishiRecca +[scoop.sh]: https://scoop.sh/ +[CachyOS]: https://github.com/CachyOS/ "专注于性能优化并提供一些不被Arch Linux开发者采纳的流行软件包的Arch衍生版。" +[cachyos-repo]: https://wiki.cachyos.org/en/home/Repo "CachyOS Wiki – 添加仓库" +[ra]: https://github.com/raspbian-addons "主要为Raspberry Pi计算机提供ARM软件的社区维护APT仓库" +[ra-h]: https://raspbian-addons.org "Raspbian Addons (主页)" +[ra-repo]: https://apt.raspbian-addons.org/debian/pool/main/w/webcord/ "Raspbian Addons (仓库)" From 094bfcb4e5e5f9b7285bcc96f3c8c84b7659f153 Mon Sep 17 00:00:00 2001 From: bdim Date: Wed, 15 May 2024 02:24:34 +0800 Subject: [PATCH 11/16] Create Support.md for Chinese --- docs/zh/Support.md | 47 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 docs/zh/Support.md diff --git a/docs/zh/Support.md b/docs/zh/Support.md new file mode 100644 index 00000000..2d18c318 --- /dev/null +++ b/docs/zh/Support.md @@ -0,0 +1,47 @@ +## 支持的平台信息 + +### GNU/Linux + +这是我正在为我的应用开发当前平台的地方。 +无论您在什么架构或Linux发行版上安装我的应用程序,它都完全受到我的支持——无论是ARM还是X86计算机都受到支持。请注意,Electron弃用了32位X86架构,因此我也可能放弃对它的支持。 + +### Windows + +这是我可能给予一些关注并能够测试我的应用程序在该平台上的工作情况的另一个平台。它的支持可能仍然不如Linux上的支持那么好,但我将尽力修复特定于Windows的大多数或所有问题。 + +### MacOS + +因为我没有任何macOS设备,我无法为这个平台提供官方支持。这并不意味着应用程序在macOS上根本不起作用——我将为其提供二进制文件,并尝试通过不编写任何可能导致与苹果设备不兼容的平台特定代码,至少使软件在macOS计算机上可用。然而,我可能不会修复任何我无法在其他平台上重现的报告问题。 + +### 基于`musl` `libc`的Linux发行版 + +不幸的是,没有官方的Electron版本是在`musl` `libc`下构建的,尽管可能可以编译它,至少对于某些Electron版本是这样。有关更多详细信息,请参阅[`electron/electron #9662`][issue9662]。 + +一些Linux发行版似乎提供了Electron软件包,如果是这种情况,那么应该可以在它们上面无问题地运行WebCord。此外,您甚至可以尝试从这些发行版提取或重新打包Electron,以适用于任何其他基于`musl` `libc`的Linux发行版,如果您愿意的话。目前,[Void Linux `x86-64`似乎为其提供了一个版本][void-electron]。 + +### FreeBSD + +目前Electron在FreeBSD上并不受官方支持(见[`electron/electron #3797`][issue3797])。然而,社区提供了[适用于`x64` FreeBSD操作系统的预构建Electron二进制文件][freebsd],这些文件应该与WebCord兼容。由于FreeBSD使用的库与Linux类似,WebCord的代码不包含任何`process.platform === "linux"`检查,而是更喜欢排除一些由Electron支持且不支持Linux API的平台(即Windows和macOS)的存在。这样,WebCord与FreeBSD以及其他基于BSD的发行版,甚至与BSD操作系统家族以外的其他*nix操作系统的兼容性。 + +WebCord过去已经被我这个项目的作者在FreeBSD上确认过可以工作。它应该不会破坏,但如果它确实破坏了,我可能会也可能不会为其工作在任何修复上。但只要提供的Electron构建运行正确,FreeBSD上的WebCord应该与Linux共享大多数错误。 + +在您安装了特定的Electron软件包(例如`electron19`)之后,您可以从任何分发版(最有可能来自Windows或Linux)中提取`app.asar`,并在安装了系统范围的Electron的终端中运行它: +```sh +electron$v $path +``` +*(将`$v`和`$path`替换为实际的版本号和提取的* +*`app.asar`的路径。)* + +## 支持的环境 + +### Wayland上的*nix + +目前,Wayland的支持情况参差不齐,这将极大地依赖于Electron/Chromium或`xdg-desktop-portals`实现(在屏幕共享的情况下)中的软件错误,或一些不一致性。此外,许多浏览器默认在XWayland上运行——在Chromium和Firefox中,原生Wayland似乎被视为一个实验性功能,您将不得不通过命令行标志或一些隐藏的、*高级*配置来选择加入它,如`chrome://flags`或`about:config`。WebCord也是如此:您将不得不放置任何启用Chromium上Wayland的标志,如`--ozone-platform=wayland`、`--ozone-hint=auto`或`--ozone-hint=wayland`。第一个将被推荐,因为它还启用了WebCord中完成的一些集成(其他两个标志在WebCord `3.8.5`或更新版本中也可能得到支持)。 + +因此,虽然上游Wayland支持各不相同,但在WebCord方面,然而,我相信我做了我能做的最多的事情,使其在Wayland上工作得很好。与许多Electron应用程序不同,它与原生门户和Wayland和XWayland上的`PipeWireCapturer`进行屏幕共享(即X11,带有`XDG_SESSION=wayland`或`WAYLAND_DESKTOP`环境被设置为任何值)默认集成得很好。我还实现了一些代码,用于加速VA-API解码/编码,并在用户选择实验标志时自动启用OpenGL或GLES(这在非Nvidia桌面上至少在`3.8.5`发布之前是破坏的)。 + +[repo]: https://github.com/SpacingBat3/WebCord "GitHub: SpacingBat3/WebCord" +[issue3797]: https://github.com/electron/electron/issues/3797 "Add FreeBSD support to electron • Issue #3797 • electron/electron" +[issue9662]: https://github.com/electron/electron/issues/9662 "musl libc support • Issue #9662 • electron/electron" +[freebsd]: https://github.com/tagattie/FreeBSD-Electron/releases "Releases • FreeBSD-Electron: Electron port for FreeBSD" +[void-electron]: https://voidlinux.org/packages/?arch=x86_64-musl&q=electron "Electron query search in Void Linux package list." From df3685327602b3e90ac889ac842552c7000558ff Mon Sep 17 00:00:00 2001 From: bdim Date: Wed, 15 May 2024 02:33:42 +0800 Subject: [PATCH 12/16] Create client.json for Chinese --- sources/translations/zh/client.json | 125 ++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 sources/translations/zh/client.json diff --git a/sources/translations/zh/client.json b/sources/translations/zh/client.json new file mode 100644 index 00000000..d450952a --- /dev/null +++ b/sources/translations/zh/client.json @@ -0,0 +1,125 @@ +{ + "tray": { + "toggle": "切换", + "quit": "退出", + "mention": { + "one": "提及", + "other": "提及", + "zero": "", + "two": "", + "few": "", + "many": "" + } + }, + "context": { + "copy": "复制", + "paste": "粘贴", + "cut": "剪切", + "dictionaryAdd": "添加到本地字典", + "copyURL": "复制链接地址", + "copyURLText": "复制链接文本", + "copyImage": "复制图片", + "copyImageURL": "复制图片链接", + "inspectElement": "检查" + }, + "menubar": { + "enabled": "已启用", + "file": { + "groupName": "文件", + "quit": "退出", + "relaunch": "重新启动", + "addon": { + "groupName": "扩展", + "loadNode": "加载Node扩展", + "loadChrome": "加载Chrome扩展" + } + }, + "edit": { + "groupName": "编辑", + "undo": "撤销", + "redo": "重做", + "selectAll": "全选" + }, + "view": { + "groupName": "视图", + "reload": "重新加载", + "forceReload": "强制重新加载", + "devTools": "切换开发者工具", + "resetZoom": "实际大小", + "zoomIn": "放大", + "zoomOut": "缩小", + "fullScreen": "切换全屏" + }, + "window": { + "groupName": "窗口", + "mobileMode": "隐藏侧边栏" + } + }, + "windows": { + "settings": "设置", + "about": "关于", + "docs": "文档", + "invite": "邀请" + }, + "dialog": { + "common": { + "error": "错误", + "warning": "警告", + "continue": "&继续", + "yes": "&是", + "no": "&否", + "source": "来源" + }, + "ver": { + "updateBadge": "[更新]", + "updateTitle": "可用更新!", + "update": "新应用版本可用!", + "recent": "应用是最新的!", + "devel": "您正在使用非生产构建。", + "downgrade": "您的生产构建比稳定版还要新!" + }, + "permission": { + "request": { + "denied": "%s: 拒绝访问%s的权限请求。" + }, + "check": { + "denied": "%s: 拒绝检查%s的权限。" + }, + "question": { + "title": "权限请求处理", + "message": "您是否要授予Discord访问%s的权限?", + "video": "摄像头", + "audio": "麦克风", + "notifications": "通知" + } + }, + "mod": { + "nodeExt": "WebCord Node.js插件", + "crx": "Chrome/Chromium扩展" + }, + "externalApp": { + "title": "在外部应用中打开链接", + "message": "一个网站试图将链接重定向到具有不同来源的外部应用。无论如何继续?" + }, + "screenShare": { + "close": "关闭", + "sound": { + "unavailable": "在该平台上无法共享音频。", + "system": "与设备音频共享。" + }, + "source": { + "entire": "计算机屏幕", + "screen": "屏幕" + } + } + }, + "help": { + "groupName": "帮助", + "repo": "仓库", + "bugs": "报告错误" + }, + "log": { + "singleInstance": "切换到现有窗口...", + "listenPort": "在端口%s监听。" + } +} From 32d96cf3aabdf34d1fb0d63c4426698f1a4339e3 Mon Sep 17 00:00:00 2001 From: bdim Date: Wed, 15 May 2024 02:36:06 +0800 Subject: [PATCH 13/16] Create settings.json for Chinese --- sources/translations/zh/settings.json | 118 ++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 sources/translations/zh/settings.json diff --git a/sources/translations/zh/settings.json b/sources/translations/zh/settings.json new file mode 100644 index 00000000..9f6f4353 --- /dev/null +++ b/sources/translations/zh/settings.json @@ -0,0 +1,118 @@ +{ + "$schema": "../../../schemas/localization/settings.json", + "general": { + "name": "常规", + "menuBar": { + "name": "菜单栏", + "description": "更改原生菜单栏的可见性设置。", + "labels": { + "hide": "自动隐藏菜单栏(按ALT键切换可见性)。" + } + }, + "tray": { + "name": "托盘", + "description": "更改系统托盘中图标的可见性。", + "labels": { + "disable": "禁用将窗口隐藏到系统托盘的功能。" + } + }, + "taskbar": { + "name": "任务栏", + "description": "控制WebCord的任务栏条目的行为。", + "labels": { + "flash": "有新消息时闪烁任务栏按钮。" + } + }, + "window": { + "name": "WebCord的主窗口", + "description": "控制显示客户端界面窗口的外观和行为。", + "labels": { + "transparent": "允许半透明窗口背景。", + "hideOnClose": "使用关闭按钮将窗口隐藏到托盘。" + } + } + }, + "privacy": { + "name": "隐私", + "blockApi": { + "name": "Discord API拦截", + "description": "拦截Discord API请求以加强隐私保护。", + "labels": { + "science": "拦截已知的遥测端点(/science/tracing)。", + "typingIndicator": "拦截输入指示器(/typing)。", + "fingerprinting": "拦截已知的指纹识别方法(api.jscdn-cgi)。" + } + }, + "permissions": { + "name": "权限", + "description": "允许或拒绝Discord网站的权限检查和请求。请注意,这里未列出的其他权限将被WebCord自动阻止。", + "labels": { + "video": "摄像头", + "audio": "麦克风", + "fullscreen": "全屏", + "notifications": "通知", + "display-capture": "屏幕捕获", + "background-sync": "后台同步" + } + } + }, + "advanced": { + "name": "高级", + "csp": { + "name": "内容安全策略", + "description": "切换应用程序是否应忽略Discord的内容安全策略头部,并允许客户端为隐私和安全考虑设置自己的CSP。", + "labels": { + "enabled": "使用内置的内容安全策略。" + } + }, + "cspThirdParty": { + "name": "第三方网站", + "description": "设置允许连接或显示内容的第三方网站列表。", + "labels": { + "gif": "GIF提供商" + }, + "info": { + "googleStorageApi": "Discord上文件上传所需的!" + } + }, + "currentInstance": { + "name": "Discord实例", + "description": "选择WebCord应连接到的实例。实验性,因为Fosscord实现尚未完全完成。" + }, + "devel": { + "name": "开发者模式", + "description": "启用访问工具和未完成选项的功能,这些选项可能被视为破坏性或危险的。免责声明:启用此选项后,应用程序维护者不负责任何错误或问题——请不要报告它们!", + "labels": { + "enabled": "启用开发者模式。" + } + }, + "redirection": { + "name": "跨源重定向行为", + "description": "控制跨源重定向上的操作。这影响应用程序的安全性。", + "labels": { + "warn": "始终警告用户关于跨源重定向到外部应用程序。" + } + }, + "optimize": { + "name": "客户端优化", + "description": "尝试检测用户软件和硬件以应用自定义标志到Chromium引擎,这可能会提高Electron的性能或功能。实验性,因为Chromium默认不应用这些标志是有原因的。", + "labels": { + "gpu": "为当前活动的显卡优化客户端。" + } + }, + "webApi": { + "name": "访问JavaScript API", + "description": "控制未特权(DOM)脚本中应允许的API。", + "labels": { + "webGl": "启用WebGL支持。" + } + }, + "unix": { + "name": "Unix/类Unix操作系统的实验性功能", + "description": "启用被Chromium/Blink引擎标记为实验性的功能。自行负责使用它们。", + "labels": { + "autoscroll": "启用中键滚动(即自动滚动)。" + } + } + } +} From 8909747c79c3580a7411c6bd3f1567775991bbe0 Mon Sep 17 00:00:00 2001 From: bdim Date: Wed, 15 May 2024 02:37:48 +0800 Subject: [PATCH 14/16] Create web.json for Chinese --- sources/translations/zh/web.json | 37 ++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 sources/translations/zh/web.json diff --git a/sources/translations/zh/web.json b/sources/translations/zh/web.json new file mode 100644 index 00000000..1e020aa6 --- /dev/null +++ b/sources/translations/zh/web.json @@ -0,0 +1,37 @@ +{ + "offline": { + "title": "无法连接到Discord服务。", + "description": "请确保您已连接到互联网。" + }, + "aboutWindow": { + "nav": { + "about": "关于", + "credits": "致谢", + "licenses": "许可证" + }, + "about": { + "appDescription": "注重隐私特性的Discord和Fosscord网页客户端。", + "appRepo": "GitHub仓库", + "featuresTitle": "构建标志", + "featuresDefault": "默认", + "checksumTitle": "校验和" + }, + "credits": { + "people": { + "author": "作者、维护者和主要开发者。", + "contributors": { + "default": "代码贡献者。" + } + } + }, + "licenses": { + "appLicenseTitle": "应用程序许可证", + "appLicenseBody": "%s是一个免费软件:您可以根据MIT许可证的条款使用、修改和重新分发它,该许可证应随此软件一起分发。", + "showLicense": "显示许可证", + "thirdPartyLicensesTitle": "第三方许可证", + "thirdPartyLicensesBody": "%s依赖于以下第三方软件:", + "licensedUnder": "根据%s许可证", + "packageAuthors": "%s作者" + } + } +} From 292d6d435ec48efb64c11992c546f83603a48f71 Mon Sep 17 00:00:00 2001 From: bdim Date: Wed, 15 May 2024 03:12:54 +0800 Subject: [PATCH 15/16] Update client.json --- sources/translations/zh/client.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/sources/translations/zh/client.json b/sources/translations/zh/client.json index d450952a..b51a8a18 100644 --- a/sources/translations/zh/client.json +++ b/sources/translations/zh/client.json @@ -3,12 +3,12 @@ "toggle": "切换", "quit": "退出", "mention": { - "one": "提及", - "other": "提及", + "one":"提及", + "other":"提及", "zero": "", "two": "", - "few": "", - "many": "" + "few":"", + "many":"" } }, "context": { @@ -30,8 +30,8 @@ "relaunch": "重新启动", "addon": { "groupName": "扩展", - "loadNode": "加载Node扩展", - "loadChrome": "加载Chrome扩展" + "loadNode": "加载 node 扩展", + "loadChrome": "加载 Chrome 扩展" } }, "edit": { @@ -87,15 +87,15 @@ }, "question": { "title": "权限请求处理", - "message": "您是否要授予Discord访问%s的权限?", + "message": "您是否要授予 Discord 访问%s的权限?", "video": "摄像头", "audio": "麦克风", "notifications": "通知" } }, "mod": { - "nodeExt": "WebCord Node.js插件", - "crx": "Chrome/Chromium扩展" + "nodeExt": "WebCord Node.js 插件", + "crx": "Chrome/Chromium 扩展" }, "externalApp": { "title": "在外部应用中打开链接", @@ -120,6 +120,6 @@ }, "log": { "singleInstance": "切换到现有窗口...", - "listenPort": "在端口%s监听。" + "listenPort": "在端口 %s 监听。" } } From 9a9639ee263c24fb557bf6636943151114ce8216 Mon Sep 17 00:00:00 2001 From: bdim Date: Wed, 15 May 2024 18:14:39 +0800 Subject: [PATCH 16/16] Update Readme.md add a disclaimer --- docs/zh/Readme.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/zh/Readme.md b/docs/zh/Readme.md index aec95ce8..5300fbb5 100644 --- a/docs/zh/Readme.md +++ b/docs/zh/Readme.md @@ -4,6 +4,10 @@ 客户端正在进行重大重写! 这意味着,围绕WebCord的大多数工作将保持在最低限度——在现有代码之上可能不会有耗时和重大的更新。然而,WebCord仍应收到维护更新,以及不需要投入我太多时间的新功能或改进。 + 注意 + + 免责声明。这些文档由社区维护,可能已经过时,而且您最好用英语与维护者交流。 +