Update zh tw languages and fix some broken links (#455)

---------

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: silverwind <2021+silverwind@noreply.gitea.com>
Reviewed-on: https://gitea.com/gitea/docs/pulls/455
Reviewed-by: silverwind <2021+silverwind@noreply.gitea.com>
This commit is contained in:
Lunny Xiao
2026-07-09 23:41:46 +00:00
parent c0f8a04185
commit 965c269495
652 changed files with 30864 additions and 30792 deletions

View File

@@ -6,110 +6,110 @@ aliases:
- /zh-tw/mail-templates
---
# 件模板
# 件模板
為了定特定操作的电子邮件主题和内容,可以使用模板来自定义 Gitea。些功能的模板位 [`custom` 目錄](../administration/customizing-gitea.md) 下。
如果有自定义的替代方案Gitea 使用部模板作為默认模板。
為了定特定操作的電子郵件主題和內容,可以使用模板來自訂 Gitea。些功能的模板位 [`custom` 目錄](../administration/customizing-gitea.md) 下。
如果有自的替代方案Gitea 使用部模板作為預設模板。
定义模板在 Gitea 启动时加载。对它们的更改在 Gitea 重新启动之前不会被识别
模板在 Gitea 啟動時加載。對它們的更改在 Gitea 重新啟動之前不會被識別
## 支模板的件通知
## 支模板的件通知
目前,以下通知事件使用模板:
| 操作名稱 | 用途 |
| ---------- | ---------------------------------------------------------------------- |
| `new` | 建立了新的工單或合請求。 |
| `comment` | 在現有工單或合請求中建立了新的评论。 |
| `close` | 关闭了工單或合請求。 |
| `reopen` | 重新打了工單或合請求。 |
| `review` | 在合請求中進行查的首要评论。 |
| `approve` | 对合並請求進行批准的首要评论。 |
| `reject` | 对合並請求提出更改請求的查的首要评论。 |
| `code` | 关于合並請求的代码的單个评论。 |
| `assigned` | 使用者被分配到工單或合請求。 |
| `default` | 未包括在上述类别中的任何操作,或者当对應类别的模板不存在使用的模板。 |
| `new` | 建立了新的工單或合請求。 |
| `comment` | 在現有工單或合請求中建立了新的評論。 |
| `close` | 關閉了工單或合請求。 |
| `reopen` | 重新打了工單或合請求。 |
| `review` | 在合請求中進行查的首要評論。 |
| `approve` | 對合併請求進行批准的首要評論。 |
| `reject` | 對合併請求提出更改請求的查的首要評論。 |
| `code` | 關於合併請求的程式碼的單個評論。 |
| `assigned` | 使用者被分配到工單或合請求。 |
| `default` | 未包括在上述類別中的任何操作,或者當對應類別的模板不存在使用的模板。 |
特定消息類型的模板路為:
特定消息類型的模板路為:
```sh
custom/templates/mail/{操作類型}/{操作名稱}.tmpl
```
其中 `{操作類型}``issue``pull`针对合並請求),`{操作名稱}` 是上述列出的操作名稱之一。
其中 `{操作類型}``issue``pull`針對合併請求),`{操作名稱}` 是上述列出的操作名稱之一。
例如,有关合並請求中的评论的电子邮件的特定模板是:
例如,有關合併請求中的評論的電子郵件的特定模板是:
```sh
custom/templates/mail/pull/comment.tmpl
```
然而,並不需要為每操作類型/名稱合建立模板。
使用回退系统来選择适当的模板。在此列表中,使用 _第一存在的_ 模板:
然而,並不需要為每操作類型/名稱合建立模板。
使用回退系統來選擇適當的模板。在此列表中,使用 _第一存在的_ 模板:
- 所需**操作類型**和**操作名稱**的特定模板。
- 操作類型為 `issue` 和所需**操作名稱**的模板。
- 所需**操作類型**和操作名稱為 `default` 的模板。
- 操作類型為` issue` 和操作名稱為 `default` 的模板。
唯一必需的模板是操作類型為 `issue` 操作名稱為 `default` 的模板,除非使用者在 `custom` 目錄中覆了它。
唯一必需的模板是操作類型為 `issue` 操作名稱為 `default` 的模板,除非使用者在 `custom` 目錄中覆了它。
## 模板
## 模板
件模板是 UTF-8 编码的文本文件,需要遵循以下格式之一:
件模板是 UTF-8 編碼的文本文件,需要遵循以下格式之一:
```
于主题行的文本和宏
於主題行的文本和宏
------------
于邮件正文的文本和宏
於郵件正文的文本和宏
```
或者
```
于邮件正文的文本和宏
於郵件正文的文本和宏
```
指定 __ 部分是可選的(因此也是虚线分隔符)。在使用_主_ 和 _件正文_ 模板之的分隔符需要至少三个虚线;分隔符行中不允使用其他字符。
指定 __ 部分是可選的(因此也是虛線分隔符)。在使用_主_ 和 _件正文_ 模板之的分隔符需要至少三個虛線;分隔符行中不允使用其他字符。
___件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text/template/) 解析,並提供了為每通知组装_数据上下文_。上下文包含以下元素:
___件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text/template/) 解析,並提供了為每通知組裝_資料上下文_。上下文包含以下元素:
| 名稱 | 類型 | 可用性 | 用途 |
| ------------------ | ---------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `.FallbackSubject` | string | 始可用 | 默认主题行。参见下文。 |
| `.Subject` | string | 僅在正文中可用 | 解析__。 |
| `.Body` | string | 始可用 | 工單、合請求或评论的消息, Markdown 解析為 HTML 並進行了清理。請勿 _件正文_ 混淆。 |
| `.Link` | string | 始可用 | 源工單、合請求或评论的地址。 |
| `.Issue` | models.Issue | 始可用 | 生通知的工單(或合請求)。要取特定于合並請求的数据(例如 `HasMerged`),可以使用 `.Issue.PullRequest`,但需要注意,如果工單 _不是_請求,则該字段将`nil`。 |
| `.Comment` | models.Comment | 如果用 | 如果通知是针对添加到工單或合請求的评论,则其中包含有关评论的信息。 |
| `.IsPull` | bool | 始可用 | 如果件通知与合並請求关联(即 `.Issue.PullRequest` 不為 `nil` `true`。 |
| `.Repo` | string | 始可用 | 存放庫的名稱,包括所有者名稱(例如 `mike/stuff` |
| `.User` | models.User | 始可用 | 事件源存放庫的所有者。要取使用者名(例如 `mike`),可以使用 `.User.Name`。 |
| `.Doer` | models.User | 始可用 | 執行触发通知事件的操作的使用者。要取使用者名(例如 `rhonda`),可以使用 `.Doer.Name`。 |
| `.IsMention` | bool | 始可用 | 如果此通知僅是因為在评论中提到了使用者而生成的,並且收件人未订阅源,`true`。如果收件人已订阅工單或存放庫,`false`。 |
| `.SubjectPrefix` | string | 始可用 | 如果通知是关于除工單或合請求建立之外的其他容,`Re`;否為空字符串。 |
| `.ActionType` | string | 始可用 | `"issue"``"pull"`。它将与实际_操作類型_ 應,与選择的模板無。 |
| `.ActionName` | string | 始可用 | 它是上述操作類型之一(`new` `comment` 等),並与選择的模板應。 |
| `.ReviewComments` | []models.Comment | 始可用 | 查中的代码评论列表。评论文本`.RenderedContent` 中,引用的代码将`.Patch` 中。 |
| `.FallbackSubject` | string | 始可用 | 預設主題行。參見下文。 |
| `.Subject` | string | 僅在正文中可用 | 解析__。 |
| `.Body` | string | 始可用 | 工單、合請求或評論的消息, Markdown 解析為 HTML 並進行了清理。請勿 _件正文_ 混淆。 |
| `.Link` | string | 始可用 | 源工單、合請求或評論的地址。 |
| `.Issue` | models.Issue | 始可用 | 生通知的工單(或合請求)。要取特定於合併請求的資料(例如 `HasMerged`),可以使用 `.Issue.PullRequest`,但需要注意,如果工單 _不是_請求,則該欄位將`nil`。 |
| `.Comment` | models.Comment | 如果用 | 如果通知是針對添加到工單或合請求的評論,則其中包含有關評論的資訊。 |
| `.IsPull` | bool | 始可用 | 如果件通知與合併請求關聯(即 `.Issue.PullRequest` 不為 `nil` `true`。 |
| `.Repo` | string | 始可用 | 存放庫的名稱,包括所有者名稱(例如 `mike/stuff` |
| `.User` | models.User | 始可用 | 事件源存放庫的所有者。要取使用者名(例如 `mike`),可以使用 `.User.Name`。 |
| `.Doer` | models.User | 始可用 | 執行觸發通知事件的操作的使用者。要取使用者名(例如 `rhonda`),可以使用 `.Doer.Name`。 |
| `.IsMention` | bool | 始可用 | 如果此通知僅是因為在評論中提到了使用者而生成的,並且收件人未訂閱源,`true`。如果收件人已訂閱工單或存放庫,`false`。 |
| `.SubjectPrefix` | string | 始可用 | 如果通知是關於除工單或合請求建立之外的其他容,`Re`;否為空字符串。 |
| `.ActionType` | string | 始可用 | `"issue"``"pull"`。它將與實際_操作類型_ 應,與選擇的模板無。 |
| `.ActionName` | string | 始可用 | 它是上述操作類型之一(`new` `comment` 等),並與選擇的模板應。 |
| `.ReviewComments` | []models.Comment | 始可用 | 查中的程式碼評論列表。評論文本`.RenderedContent` 中,引用的程式碼將`.Patch` 中。 |
所有名稱分大小
所有名稱分大小
### 模板中的主部分
### 模板中的主部分
于邮件主的模板引擎是 Golang 的 [`text/template`](https://go.dev/pkg/text/template/)。
关语法的详细信息,請参阅链接的文
於郵件主的模板引擎是 Golang 的 [`text/template`](https://go.dev/pkg/text/template/)。
關語法的詳細資訊,請參閱鏈接的文
题构建的步如下:
題構建的步如下:
-通知類型和可用的模板選择一个模板。
- 解析並解析模板(例如, `{{.Issue.Index}}` 转换為工單或合請求的编号)。
- 所有空格字符(例如 `TAB``LF` 等)转换為普通空格。
- 除所有前、尾和多的空格。
- 字符串截為前 256 字母(字符)。
-通知類型和可用的模板選擇一個模板。
- 解析並解析模板(例如, `{{.Issue.Index}}` 轉換為工單或合請求的編號)。
- 所有空格字符(例如 `TAB``LF` 等)轉換為普通空格。
- 除所有前、尾和多的空格。
- 字符串截為前 256 字母(字符)。
如果最终结果為空字符串,**或者**有可用的主模板(即所選模板不包含主部分),使用 Gitea 的**内部默认值**。
如果最終結果為空字符串,**或者**有可用的主模板(即所選模板不包含主部分),使用 Gitea 的**內部預設值**。
内部默认(回退)主题相当于
內部預設(回退)主題相當於
```
{{.SubjectPrefix}}[{{.Repo}}] {{.Issue.Title}} (#{{.Issue.Index}})
@@ -117,31 +117,31 @@ _主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text
例如:`Re: [mike/stuff] New color palette (#38)`
即使存在有效的主模板Gitea 的默认主题也可以在模板的元数据中作為 `.FallbackSubject` 找到。
即使存在有效的主模板Gitea 的預設主題也可以在模板的元資料中作為 `.FallbackSubject` 找到。
### 模板中的件正文部分
### 模板中的件正文部分
于邮件正文的模板引擎是 Golang 的 [`html/template`](https://go.dev/pkg/html/template/)。
关语法的详细信息,請参阅链接的文
於郵件正文的模板引擎是 Golang 的 [`html/template`](https://go.dev/pkg/html/template/)。
關語法的詳細資訊,請參閱鏈接的文
件正文在件主题之后進行解析,因此還有一个额外的 _数据_ 字段,即在考所有情况之后实际呈現的主
件正文在件主題之後進行解析,因此還有一個額外的 _資料_ 欄位,即在考所有情況之後實際呈現的主
期望的果是 HTML包括结构元素,如`<html>``<body>`等)。可以`<style>` `class``style` 性進行样式设置。但是,`html/template` 進行一些 [动转义](https://go.dev/pkg/html/template/#hdr-Contexts),需要考虑这一点
期望的果是 HTML包括結構元素,如`<html>``<body>`等)。可以`<style>` `class``style` 性進行樣式設定。但是,`html/template` 進行一些 [動轉義](https://go.dev/pkg/html/template/#hdr-Contexts),需要考慮這一點
不支附件(例如像或外部式表)。但是,也可以引用其他模板,例如以集中方式提供 `<style>` 元素的容。外部模板必須放置在 `custom/mail` 下,並相對於該目錄引用。例如,可以使用 `{{template styles/base}}` 包含 `custom/mail/styles/base.tmpl`
不支附件(例如像或外部式表)。但是,也可以引用其他模板,例如以集中方式提供 `<style>` 元素的容。外部模板必須放置在 `custom/mail` 下,並相對於該目錄引用。例如,可以使用 `{{template styles/base}}` 包含 `custom/mail/styles/base.tmpl`
件以 `Content-Type: multipart/alternative` 送,因此正文以 HTML 和文本格式送。通過剥离 HTML 标记来获取文本版本。
件以 `Content-Type: multipart/alternative` 送,因此正文以 HTML 和文本格式送。通過剝離 HTML 標記來獲取文本版本。
## 故障排除
件的呈現方式直接取决于邮件應用程的功能。许多邮件客端甚至不支 HTML因此示生成件中包含的文本版本。
件的呈現方式直接取決於郵件應用程的功能。許多郵件客端甚至不支 HTML因此示生成件中包含的文本版本。
如果模板無法呈現,只有在发送邮件时才会注意到。
如果主模板失败,将使用默认主题,如果 _件正文_ 中成功呈現了任何容,则将使用該容,忽略其他容。
如果模板無法呈現,只有在發送郵件時纔會注意到。
如果主模板失敗,將使用預設主題,如果 _件正文_ 中成功呈現了任何容,則將使用該容,忽略其他容。
如果遇到问题,請查 [Gitea 的日](../administration/logging-config.md) 以获取错误消息。
如果遇到問題,請查 [Gitea 的日](../administration/logging-config.md) 以獲取錯誤消息。
##
##
`custom/templates/mail/issue/default.tmpl`:
@@ -150,11 +150,11 @@ _主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text
{{if eq .ActionName "new"}}
建立了
{{else if eq .ActionName "comment"}}
评论
評論
{{else if eq .ActionName "close"}}
关闭
關閉
{{else if eq .ActionName "reopen"}}
重新打
重新打
{{else}}
更新了
{{end}}
@@ -175,7 +175,7 @@ _主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text
<body>
{{if .IsMention}}
<p>
您收到此件是因為 @{{.Doer.Name}} 提到了您。
您收到此件是因為 @{{.Doer.Name}} 提到了您。
</p>
{{end}}
<p>
@@ -187,16 +187,16 @@ _主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text
{{if eq .ActionName "new"}}
建立了
{{else if eq .ActionName "close"}}
关闭
關閉
{{else if eq .ActionName "reopen"}}
重新打
重新打
{{else}}
更新了
{{end}}
<a href="{{.Link}}">{{.Repo}}#{{.Issue.Index}}</a>
</p>
{{if not (eq .Body "")}}
<h3>消息容:</h3>
<h3>消息容:</h3>
<hr>
{{.Body}}
{{end}}
@@ -209,17 +209,17 @@ _主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text
</html>
```
該模板生成以下容:
該模板生成以下容:
### 主
### 主
> [mike/stuff] @rhonda 在合請求 #38 上進行了评论New color palette
> [mike/stuff] @rhonda 在合請求 #38 上進行了評論New color palette
### 件正文
### 件正文
> [@rhonda](#)Rhonda Myers更新了 [mike/stuff#38](#)。
>
> #### 消息
> #### 消息
>
> \_**************\*\*\*\***************\_**************\*\*\*\***************
>
@@ -229,25 +229,25 @@ _主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text
>
> [在 Gitea 上查看](#)。
## 高用法
## 高用法
模板系包含一些函,可用進一步理和格式化消息。以下是其中一些函的列表:
模板系包含一些函,可用進一步理和格式化消息。以下是其中一些函的列表:
| 函名 | 參數 | 可用 | 用法 |
| 函名 | 參數 | 可用 | 用法 |
| ---------------- | ----------- | ---------- | ------------------------------------------------ |
| `AppUrl` | - | 任何地方 | Gitea 的 URL |
| `AppName` | - | 任何地方 | `app.ini`设置,通常為 "Gitea" |
| `AppDomain` | - | 任何地方 | Gitea 的主名 |
| `EllipsisString` | string, int | 任何地方 | 字符串截為指定度;根需要添加省略 |
| `SanitizeHTML` | string | 僅正文部分 | 通過除其中的危 HTML 標籤文本進行清理 |
| `SafeHTML` | string | 僅正文部分 | 将输入作為 HTML 理;可用于输出原始的 HTML 容 |
| `AppName` | - | 任何地方 | `app.ini`設定,通常為 "Gitea" |
| `AppDomain` | - | 任何地方 | Gitea 的主名 |
| `EllipsisString` | string, int | 任何地方 | 字符串截為指定度;根需要添加省略 |
| `SanitizeHTML` | string | 僅正文部分 | 通過除其中的危 HTML 標籤文本進行清理 |
| `SafeHTML` | string | 僅正文部分 | 將輸入作為 HTML 理;可用於輸出原始的 HTML 容 |
些都是 __,而不是元数据,因此必須按以下方式使用:
些都是 __,而不是元資料,因此必須按以下方式使用:
```html
这样使用: {{SanitizeHTML "Escape<my
>text"}} 或者这样使用: {{"Escape<my
>text" | SanitizeHTML}} 或者这样使用: {{AppUrl}} 但不要像这样使用:
這樣使用: {{SanitizeHTML "Escape<my
>text"}} 或者這樣使用: {{"Escape<my
>text" | SanitizeHTML}} 或者這樣使用: {{AppUrl}} 但不要像這樣使用:
{{.AppUrl}}</my
></my
>