[docs/zh] Update zh docs: synced to 6c879186 (#4117)

# Description

This PR updates the Chinese documentation to 6c879186 (the latest commit at present).

It also fixed a small typo in the original docs. Since the change is so minor, I didn't make a separate PR.

Last docs/zh update PR: #3884

## Checklist

Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]`

If this is a documentation change, only the first checkbox must be filled (you can delete the others if you want).

- [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md).

Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4117
Co-authored-by: cdn0x12 <git@cdn0x12.dev>
Co-committed-by: cdn0x12 <git@cdn0x12.dev>
This commit is contained in:
cdn0x12 2025-05-03 09:28:16 +00:00 committed by tobi
commit 4d6408015b
18 changed files with 817 additions and 115 deletions

View file

@ -41,11 +41,11 @@
## 错误报告与功能请求
目前,我们使用 Github 的问题追踪系统来管理错误报告与功能请求。
目前,我们使用 Codeberg 的问题追踪系统来管理错误报告与功能请求。
你可以在[此处](https://codeberg.org/superseriousbusiness/gotosocial/issues "GoToSocial 的 Github 问题页")查看所有开放的问题。
你可以在[此处](https://codeberg.org/superseriousbusiness/gotosocial/issues "GoToSocial 的 Codeberg 问题追踪页")查看所有开放的问题。
在创建新问题之前,不论是错误还是功能请求,**请现仔细搜索所有仍处于打开状态和已被关闭的问题,以确保它尚未被解决过**。你可以使用 Github 的关键字搜索来进行此操作。如果你的问题与已有问题重复,它将被关闭。
在创建新问题之前,不论是错误还是功能请求,**请现仔细搜索所有仍处于打开状态和已被关闭的问题,以确保它尚未被解决过**。你可以使用 Codeberg 的关键字搜索来进行此操作。如果你的问题与已有问题重复,它将被关闭。
在打开功能请求之前,请考虑以下几点:
@ -121,16 +121,14 @@ conda env export -n gotosocial-docs --from-history --override-channels -c conda-
### Golang 的分支特点
Golang 的一个特点是,它所依赖的源代码管理路径与 `go.mod` 中使用的路径以及各 Go 文件中的包导入路径相同。这使得使用分支有些棘手。
正确的解决方案是先派生存储库,然后克隆上游存储库,并将上游存储库的 `origin` 设置为你分支的源。
Golang 的一个特点是,它所依赖的源代码管理路径与 `go.mod` 中使用的路径以及各 Go 文件中的包导入路径相同。这使得使用分支版本变得有些棘手。这个问题的解决方案是先派生存储库,然后克隆上游存储库,并将上游存储库的 `origin` 设置为你派生的存储库的源。
有关更多细节,请参阅[这篇博客](https://blog.sgmansfield.com/2016/06/working-with-forks-in-go/)。
为防此文章消失,此处是步骤(有轻微修改):
>
> 在 GitHub 上派生存储库或设置任何其他远程 git 存储库。在这种情况下,我会转到 GitHub 并分支存储库。
> 在 Codeberg 上派生存储库或设置任何其他远端 git 存储库。在这种情形下,我会转到 Codeberg 并派生存储库。
>
> 现在克隆上游存储库(而非派生的存储库):
>
@ -155,9 +153,9 @@ Golang 的一个特点是,它所依赖的源代码管理路径与 `go.mod` 中
#### 二进制文件
要开始构建,你需要先安装 Go。GtS 目前使用 Go 1.21,因此你也应该使用这个版本。安装指南见[此处](https://golang.org/doc/install)。
要开始构建,你首先需要安装 Go。你可以在顶层目录的 `go.mod` 文件中查看需要安装的 Go 版本,然后按照[此处](https://golang.org/doc/install)的指引进行安装
安装 go 后,将此存储库克隆到你的 Go 路径中。通常,此路径为 `~/go/src/code.superseriousbusiness.org/gotosocial`
安装 Go 后,将此存储库克隆到你的 Go 路径中。通常,此路径为 `~/go/src/code.superseriousbusiness.org/gotosocial`
安装完上述环境与依赖后,可以尝试构建项目:`./scripts/build.sh`。此命令将构建 `gotosocial` 二进制文件。
@ -185,8 +183,6 @@ GoReleaser 还被 GoToSocial 用于构建和推送 Docker 镜像。
为此,首先[安装 GoReleaser](https://goreleaser.com/install/)。
然后按照[Swagger 部分](#更新-swagger-文档)的说明安装 GoSwagger。
接着按[样式表 / Web开发](#样式表--web开发)的说明安装 Node 和 Yarn。
最后,创建快照构建,执行:
@ -199,7 +195,7 @@ goreleaser release --clean --snapshot
##### 手动构建
如果你更喜欢以简单方法构建 Docker 容器,使用更少的依赖(go-swagger, Node, Yarn也可以这样构建
如果你更喜欢以简单方法构建 Docker 容器使用更少的依赖Node, Yarn也可以这样构建
```bash
./scripts/build.sh && docker buildx build -t superseriousbusiness/gotosocial:latest .
@ -207,6 +203,8 @@ goreleaser release --clean --snapshot
上述命令首先构建 `gotosocial` 二进制文件,然后调用 Docker buildx 构建容器镜像。
如果在构建过程中出现错误,提示 `"/web/assets/swagger.yaml": not found`,则需要(重新)生成 Swagger 文档,参见 [更新 Swagger 文档](#更新-swagger-文档)。
如果想为不同 CPU 架构构建 docker 镜像而不设置 buildx例如 ARMv7 aka 32-bit ARM首先需要通过添加以下几行到 Dockerfile 顶部来修改 Dockerfile但不要提交此更改
```dockerfile
@ -481,64 +479,24 @@ GTS_DB_TYPE="postgres" GTS_DB_ADDRESS="localhost" go test -p 1 ./...
GoToSocial 使用 [go-swagger](https://goswagger.io) 根据代码注释生成 Swagger API 文档。
你可以遵循 [此处](https://goswagger.io/go-swagger/install/) 的说明安装 go-swagger。
如果你更改了任何 API 路径上的 Swagger 注释,可以通过运行以下命令在 `./docs/api/swagger.yaml` 生成一个新的 Swagger 文件:
如果你修改了任何 API 端点上的 Swagger 注释,你可以通过运行以下命令在 `./docs/api/swagger.yaml` 生成一个新的 Swagger 文件,并通过以下命令将该文件复制到 web 资源目录中:
```bash
go run github.com/go-swagger/go-swagger/cmd/swagger generate spec --scan-models --exclude-deps --output docs/api/swagger.yaml
go run ./vendor/github.com/go-swagger/go-swagger/cmd/swagger \
generate spec --scan-models --exclude-deps -o docs/api/swagger.yaml \
&& cp docs/api/swagger.yaml web/assets/swagger.yaml
```
你无需安装 go-swagger 来运行此命令,因为 `vendor` 目录中已经包含了 go-swagger。
### CI/CD 配置
GoToSocial 使用 [Drone](https://www.drone.io/) 进行 CI/CD 任务,如运行测试、代码检查和构建 Docker 容器。
GoToSocial 使用 [Woodpecker CI](https://woodpecker-ci.org/) 进行 CI/CD 任务,如运行测试、代码检查和构建 Docker 容器。
这些运行与 GitHub 集成,在打开拉取请求或合并到主干时执行。
这些运行与 Codeberg 集成,在打开拉取请求或合并到主干时执行。
GoToSocial 的 Drone 实例在 [此处](https://drone.superseriousbusiness.org/superseriousbusiness/gotosocial)
`woodpecker` 流水线文件在 [此处](../../../../.woodpecker) —— 它们定义了 Woodpecker 如何运行及何时运行
`drone.yml` 文件在 [此处](../../../../.drone.yml) —— 它定义了 Drone 如何运行及何时运行。Drone 的文档在 [此处](https://docs.drone.io/)。
GoToSocial 的 Woodpecker 实例地址在 [此处](https://woodpecker.superseriousbusiness.org/repos/2).
值得注意的是,`drone.yml` 文件必须由 Drone 管理员帐户签名后才被视为有效。每次修改该文件时都必须这样做。这是为了防止篡改和劫持 Drone 实例。请参阅 [此处](https://docs.drone.io/signature/)。
要签署文件,请首先安装并设置 [drone cli 工具](https://docs.drone.io/cli/install/)。然后,运行:
```bash
drone -t PUT_YOUR_DRONE_ADMIN_TOKEN_HERE -s https://drone.superseriousbusiness.org sign superseriousbusiness/gotosocial --save
```
### 发布检查清单
首先:如果这是一个安全修复,我们可能会加急处理此清单,并在几天后发布包含此修复的版本。
现在,解决完安全问题后,此处是我们的清单。
GoToSocial 遵循 [语义化版本控制](https://semver.org/)。
因此,清单上的首要问题是:
- 我们正在发布哪个版本?
接下来我们需要检查:
- 这些资源是否需要重新构建并提交到存储库。
- Swagger 文档是否需要重新生成?
在项目管理方面:
- 是否有需要移动到其他里程碑的问题?
- [路线图](./ROADMAP.md) 上是否有可以勾掉的事情?
一旦我们对清单满意,我们就可以创建标签并推送它。
剩下的事情 [是自动化](../../../../.drone.yml)。
然后我们可以前往 GitHub为发布说明增添个性。
最后,我们在所有渠道上发布公告,宣布发布已完成!
#### 如果出问题了怎么办?
有时事情会出错。
我们发布了有 Bug 的版本,或者忘记了什么重要的东西。
如果该版本不可用,甚至对很大一部分用户而言是危险的,我们可以删除标签。
无论怎样,一旦我们解决了问题,我们就重新开始这个清单。版本号并不昂贵,可以随意更改。
Woodpecker 的文档参见 [此处](https://woodpecker-ci.org/docs/intro).

View file

@ -3,7 +3,7 @@
**有关企业赞助的更新:我们欢迎与符合我们价值观的组织建立赞助关系;请查看下述条件**
GoToSocial 是一个用 Golang 编写的 [ActivityPub](https://activitypub.rocks/) 社交网络服务端。
🏳️‍🌈 GoToSocial 是一个用 Golang 编写的 [ActivityPub](https://activitypub.rocks/) 社交网络服务端。 🏳️‍⚧️
通过 GoToSocial你可以与朋友保持联系发帖、阅读和分享图片及文章且不会被追踪或广告打扰
@ -40,6 +40,7 @@ GoToSocial 是一个用 Golang 编写的 [ActivityPub](https://activitypub.rocks
- [多种联合模式](#多种联合模式)
- [OIDC 集成](#oidc-集成)
- [后端优先设计](#后端优先设计)
- [替代实现](#替代实现)
- [已知问题](#已知问题)
- [安装 GoToSocial](#安装-gotosocial)
- [支持的平台](#支持的平台)
@ -231,6 +232,7 @@ GoToSocial 仅需约 250-350MiB 的 RAM并且只要求极少的 CPU 频率,
- [导入/导出](https://docs.gotosocial.org/zh-cn/latest/admin/settings/#导入导出) 社区创建的域名允许和域名阻止列表,并[订阅](https://docs.gotosocial.org/zh-cn/latest/admin/domain_permission_subscriptions)这些列表。
- HTTP 签名认证GoToSocial 在发送和接收消息时要求 [HTTP 签名](https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures-12),以确保消息不能被篡改,身份不能被伪造。
- 内置 [Let's Encrypt](https://letsencrypt.org/) 的自动使用 HTTPS 支持。
- 支持基于时间的一次性双因素认证代码Google 认证器LastPass 认证器等)。
### 多种联合模式
@ -256,9 +258,21 @@ GoToSocial 支持 [OpenID Connect (OIDC)](https://openid.net/connect/) 身份提
---
## 替代实现
不喜欢 GtS 但还是想搭建联邦宇宙服务?喜欢 GtS 但不想用测试版软件?有很多替代实现可能更适合你!这里列出一些我们知道的使用效果不错的实现(按字母顺序排列):
- [Akkoma](https://akkoma.social/):功能齐全的 ActivityPub 微博客支持表情反应和引用贴文Elixir
- [Honk](https://humungus.tedunangst.com/r/honk/m/activitypub.7)极简、有特点的微博客服务端特点是“没有点赞、没有收藏、没有投票、没有加星、没有鼓掌、没有互动计数”Go
- [Iceshrimp.net](https://iceshrimp.dev/iceshrimp/Iceshrimp.NET)Iceshrimp 的全新重写版本(.Net
- [Mastodon](https://joinmastodon.org/):积极开发、广为人知、可扩展的 ActivityPub 微博客服务端Ruby
- [Snac2](https://codeberg.org/grunfink/snac2):简约、最小化的实例,系统要求非常低(可移植 C
---
## 已知问题
由于 GoToSocial 仍处于测试阶段,存在很多错误。我们使用 [GitHub issues](https://codeberg.org/superseriousbusiness/gotosocial/issues?q=is%3Aissue+is%3Aopen+label%3Abug) 跟踪这些问题。
由于 GoToSocial 仍处于测试阶段,存在很多错误。我们使用 [Codeberg issues](https://codeberg.org/superseriousbusiness/gotosocial/issues?q=is%3Aissue+is%3Aopen+label%3Abug) 跟踪这些问题。
由于每个 ActivityPub 服务端实现对协议的解释略有不同,有些服务端尚未与 GoToSocial 正常联合。我们在 [这个项目](https://codeberg.org/superseriousbusiness/gotosocial/projects/4) 中跟踪这些问题。最终,我们希望确保任何可以与 Mastodon 正确联合的 ActivityPub 实现也能够与 GoToSocial 联合。
@ -294,13 +308,13 @@ GoToSocial 支持 [OpenID Connect (OIDC)](https://openid.net/connect/) 身份提
#### 64位
64位平台需要以下(现在很常见的)CPU指令:
对 64 位 CPU 的特性要求注释:
- x86-64需要SSE4.1(用于媒体解码和WASM SQLite)
- x86_64 需要支持 SSE4.1 指令集 (自2010年左右起生产的CPU大多支持)
- Armv8需要ARM64大型系统扩展(ARM64 Large System Extensions)(特别是在使用WASM SQLite时)
- ARM64 没有特定指令集要求, ARMv8 CPU及后续版本已支持全部所需特性。
如果没有这些指令,性能将会受到影响。在这些情况下,您可以尝试使用完全**不受支持、实验性的**[nowasm](https://docs.gotosocial.org/en/latest/advanced/builds/nowasm/)标签自行构建二进制文件。
如果没有这些指令媒体处理性能将会受到影响多数情况下SQLite性能也会收到影响。在这些情况下,您可以尝试使用完全**不受支持、实验性的**[nowasm](https://docs.gotosocial.org/zh-cn/latest/advanced/builds/nowasm/)标签自行构建二进制文件。
#### BSD系
@ -340,7 +354,7 @@ Docker 镜像 `superseriousbusiness/gotosocial:latest` 始终对应于最新稳
要使用二进制发布从主分支运行,请从我们的 [自托管 Minio S3 仓库](https://minio.s3.superseriousbusiness.org/browser/gotosocial-snapshots)下载适合你架构的 .tar.gz 文件。
S3 存储桶中的快照版二进制发布由 Github 提交哈希控制。要获取最新的,请按上次修改时间排序,或者查看 [这里的提交列表](https://codeberg.org/superseriousbusiness/gotosocial/commits/main),复制最新的 SHA并在 Minio 控制台过滤器中粘贴。快照二进制发布会在 28 天后过期,以降低我们的托管成本。
S3 存储桶中的快照版二进制发布由代码提交哈希控制。要获取最新的,请按上次修改时间排序,或者查看 [这里的提交列表](https://codeberg.org/superseriousbusiness/gotosocial/commits/main),复制最新的 SHA并在 Minio 控制台过滤器中粘贴。快照二进制发布会在 28 天后过期,以降低我们的托管成本。
### 从源代码构建
@ -428,15 +442,16 @@ GoToSocial 使用以下开源库、框架和工具,在此声明并致谢 💕
- [mvdan.cc/xurls](https://github.com/mvdan/xurls); URL 解析正则表达式。 [BSD-3-Clause 许可证](https://spdx.org/licenses/BSD-3-Clause.html)。
- [oklog/ulid](https://github.com/oklog/ulid); 顺序友好的数据库 ID 生成。 [Apache-2.0 许可证](https://spdx.org/licenses/Apache-2.0.html)。
- [open-telemetry/opentelemetry-go](https://github.com/open-telemetry/opentelemetry-go); OpenTelemetry API + SDK。 [Apache-2.0 许可证](https://spdx.org/licenses/Apache-2.0.html)。
- [pquerna/otp](https://github.com/pquerna/otp); 一次性代码工具。 [Apache-2.0 许可证](https://spdx.org/licenses/Apache-2.0.html)。
- spf13:
- [spf13/cobra](https://github.com/spf13/cobra); 命令行工具。 [Apache-2.0 许可证](https://spdx.org/licenses/Apache-2.0.html)。
- [spf13/viper](https://github.com/spf13/viper); 配置管理。 [Apache-2.0 许可证](https://spdx.org/licenses/Apache-2.0.html)。
- [stretchr/testify](https://github.com/stretchr/testify); 测试框架。 [MIT 许可证](https://spdx.org/licenses/MIT.html)。
- superseriousbusiness:
- [superseriousbusiness/activity](https://codeberg.org/superseriousbusiness/activity) 从 [go-fed/activity](https://github.com/go-fed/activity) 派生; Golang ActivityPub/ActivityStreams 库。 [BSD-3-Clause 许可证](https://spdx.org/licenses/BSD-3-Clause.html)。
- [superseriousbusiness/exif-terminator](https://codeberg.org/superseriousbusiness/exif-terminator); EXIF 数据擦除。 [GNU AGPL v3 许可证](https://spdx.org/licenses/AGPL-3.0-or-later.html)。
- [superseriousbusiness/httpsig](https://codeberg.org/superseriousbusiness/httpsig) 从 [go-fed/httpsig](https://github.com/go-fed/httpsig) 派生; 安全 HTTP 签名库。 [BSD-3-Clause 许可证](https://spdx.org/licenses/BSD-3-Clause.html)。
- [superseriousbusiness/oauth2](https://codeberg.org/superseriousbusiness/oauth2) 从 [go-oauth2/oauth2](https://github.com/go-oauth2/oauth2) 派生; OAuth 服务器框架和令牌处理。 [MIT 许可证](https://spdx.org/licenses/MIT.html)。
- [superseriousbusiness/activity](https://code.superseriousbusiness.org/activity) 从 [go-fed/activity](https://github.com/go-fed/activity) 派生; Golang ActivityPub/ActivityStreams 库。 [BSD-3-Clause 许可证](https://spdx.org/licenses/BSD-3-Clause.html)。
- [superseriousbusiness/exif-terminator](https://code.superseriousbusiness.org/exif-terminator); EXIF 数据擦除。 [GNU AGPL v3 许可证](https://spdx.org/licenses/AGPL-3.0-or-later.html)。
- [superseriousbusiness/httpsig](https://code.superseriousbusiness.org/httpsig) 从 [go-fed/httpsig](https://github.com/go-fed/httpsig) 派生; 安全 HTTP 签名库。 [BSD-3-Clause 许可证](https://spdx.org/licenses/BSD-3-Clause.html)。
- [superseriousbusiness/oauth2](https://code.superseriousbusiness.org/oauth2) 从 [go-oauth2/oauth2](https://github.com/go-oauth2/oauth2) 派生; OAuth 服务器框架和令牌处理。 [MIT 许可证](https://spdx.org/licenses/MIT.html)。
- [temoto/robotstxt](https://github.com/temoto/robotstxt); robots.txt 解析。 [MIT 许可证](https://spdx.org/licenses/MIT.html)。
- [tdewolff/minify](https://github.com/tdewolff/minify); Markdown 帖文的 HTML 压缩。 [MIT 许可证](https://spdx.org/licenses/MIT.html)。
- [uber-go/automaxprocs](https://github.com/uber-go/automaxprocs); GOMAXPROCS 自动化。 [MIT 许可证](https://spdx.org/licenses/MIT.html)。

View file

@ -73,10 +73,10 @@
- [x] **无评论区的帖文** -- 设计无评论区帖文的相关逻辑,让用户创建无评论区的帖文。
- [x] **屏蔽/允许列表订阅** -- 允许实例管理员为其实例订阅屏蔽/允许列表。
- [x] **私信对话视图** -- 让用户能够轻松浏览他们参与的所有私信对话。
- [ ] **Oauth 令牌管理** -- 通过设置面板创建/查看/吊销 OAuth 令牌。
- [ ] **贴文编辑支持** -- 编辑已创建的贴文,而无需删除并重新编辑。并正确地将编辑传播出去。
- [x] **Oauth 令牌管理** -- 通过设置面板创建/查看/吊销 OAuth 令牌。
- [x] **贴文编辑支持** -- 编辑已创建的贴文,而无需删除并重新编辑。并正确地将编辑传播出去。
- [ ] **Fediverse 中继支持** -- 与中继通信,发布和接收帖文。
- [ ] **两步验证 (2fa)** -- 允许用户通过设置面板为其账户启用 2FA并在登录时实施 2FA。
- [x] **两步验证 (2fa)** -- 允许用户通过设置面板为其账户启用 2FA并在登录时实施 2FA。
- [ ] **管理:附加内容警告/将所有内容标记为敏感内容**
更多内容待定!

View file

@ -0,0 +1 @@
请将安全问题反馈发送至admin@gotosocial.org