Skip to content

Commit

Permalink
Tune the Chinese version of README (#303)
Browse files Browse the repository at this point in the history
  • Loading branch information
tengqm authored Oct 5, 2023
1 parent 381afe6 commit 8b7b3cb
Showing 1 changed file with 28 additions and 25 deletions.
53 changes: 28 additions & 25 deletions .github/README.zh-Hans.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
# go-i18n ![Build status](https://github.com/nicksnyder/go-i18n/workflows/Build/badge.svg) [![Report card](https://goreportcard.com/badge/github.com/nicksnyder/go-i18n)](https://goreportcard.com/report/github.com/nicksnyder/go-i18n) [![codecov](https://codecov.io/gh/nicksnyder/go-i18n/branch/master/graph/badge.svg)](https://codecov.io/gh/nicksnyder/go-i18n) [![Sourcegraph](https://sourcegraph.com/github.com/nicksnyder/go-i18n/-/badge.svg)](https://sourcegraph.com/github.com/nicksnyder/go-i18n?badge)

go-i18n 是一个帮助您将 Go 程序翻译成多种语言的 Go [](#package-i18n)[命令](#command-goi18n)
go-i18n 是一个帮助您将 Go 程序翻译成多种语言的 Go [](#package-i18n)[命令](#command-goi18n)

- 支持 [Unicode Common Locale Data Repository (CLDR)](https://www.unicode.org/cldr/charts/28/supplemental/language_plural_rules.html) 中所有 200 多种语言的 [复数字符](http://cldr.unicode.org/index/cldr-spec/plural-rules)
- 代码和测试是从 [CLDR 数据](http://cldr.unicode.org/index/downloads)[自动生成](https://github.com/nicksnyder/go-i18n/tree/main/v2/internal/plural/codegen) 的。
- 支持 [Unicode Common Locale Data Repository (CLDR)](https://www.unicode.org/cldr/charts/28/supplemental/language_plural_rules.html)
中所有 200 多种语言的[复数字符串](http://cldr.unicode.org/index/cldr-spec/plural-rules)
- 代码和测试是基于 [CLDR 数据](http://cldr.unicode.org/index/downloads)[自动生成](https://github.com/nicksnyder/go-i18n/tree/main/v2/internal/plural/codegen)的。
- 使用 [text/template](http://golang.org/pkg/text/template/) 语法支持带有命名变量的字符串。
- 支持任何格式的消息文件(例如:JSON、TOML、YAML)。
- 支持所有格式的消息文件(例如:JSON、TOML、YAML)。

<strong align="center">
<samp>
Expand All @@ -15,11 +16,11 @@ go-i18n 是一个帮助您将 Go 程序翻译成多种语言的 Go [包](#packag
</samp>
</strong>

## Package i18n
## i18n

[![GoDoc](https://godoc.org/github.com/nicksnyder/go-i18n?status.svg)](https://godoc.org/github.com/nicksnyder/go-i18n/v2/i18n)

i18n 包支持根据一组语言环境首选项查找消息
i18n 包支持根据一组语言环境首选项来查找消息

```go
import "github.com/nicksnyder/go-i18n/v2/i18n"
Expand All @@ -31,7 +32,7 @@ import "github.com/nicksnyder/go-i18n/v2/i18n"
bundle := i18n.NewBundle(language.English)
```

在初始化期间将翻译加载到您的 bundle 中。
在初始化时,将翻译加载到你的 Bundle 中。

```go
bundle.RegisterUnmarshalFunc("toml", toml.Unmarshal)
Expand All @@ -47,7 +48,7 @@ bundle.RegisterUnmarshalFunc("toml", toml.Unmarshal)
bundle.LoadMessageFileFS(LocaleFS, "locale.es.toml")
```

创建一个 Localizer 以用于一组语言首选项
创建一个 Localizer 以便用于一组首选语言

```go
func(w http.ResponseWriter, r *http.Request) {
Expand All @@ -57,7 +58,7 @@ func(w http.ResponseWriter, r *http.Request) {
}
```

使用 Localizer 查找消息。
使用此 Localizer 查找消息。

```go
localizer.Localize(&i18n.LocalizeConfig{
Expand All @@ -71,14 +72,14 @@ localizer.Localize(&i18n.LocalizeConfig{
"Count": 2,
},
PluralCount: 2,
}) // Nick has 2 cats.
}) // Nick 有两只猫
```

## goi18n 命令

[![GoDoc](https://godoc.org/github.com/nicksnyder/go-i18n?status.svg)](https://godoc.org/github.com/nicksnyder/go-i18n/v2/goi18n)

goi18n 命令管理 i18n 包使用的消息文件
goi18n 命令管理 i18n 包所使用的消息文件

```
go install -v github.com/nicksnyder/go-i18n/v2/goi18n@latest
Expand All @@ -87,7 +88,7 @@ goi18n -help

### 提取消息

使用 `goi18n extract` 将 Go 源文件中的所有 i18n.Message 结构文字提取到消息文件中以进行翻译
使用 `goi18n extract` 将 Go 源文件中的所有 i18n.Message 结构中的文字提取到消息文件中以进行翻译

```toml
# active.en.toml
Expand All @@ -99,8 +100,8 @@ other = "{{.Name}} has {{.Count}} cats."

### 翻译一种新语言

1. 为您要添加的语言创建一个空消息文件(例如:`translate.es.toml`)。
2. 运行 `goi18n merge active.en.toml translate.es.toml` 以填充 `translate.es.toml` 要翻译的消息
1. 为你要添加的语言创建一个空的消息文件(例如:`translate.es.toml`)。
2. 运行 `goi18n merge active.en.toml translate.es.toml` 以将要翻译的消息填充到 `translate.es.toml`

```toml
# translate.es.toml
Expand All @@ -109,7 +110,7 @@ other = "{{.Name}} has {{.Count}} cats."
other = "Hello {{.Name}}"
```

3. 翻译完成 `translate.es.toml` ,将其重命名为 `active.es.toml``。
3. 完成 `translate.es.toml` 的翻译之后,将其重命名为 `active.es.toml`

```toml
# active.es.toml
Expand All @@ -118,7 +119,7 @@ other = "{{.Name}} has {{.Count}} cats."
other = "Hola {{.Name}}"
```

4. 加载 `active.es.toml` 到您的 bundle 中。
4. 加载 `active.es.toml` 到你的 Bundle 中。

```go
bundle.RegisterUnmarshalFunc("toml", toml.Unmarshal)
Expand All @@ -127,19 +128,21 @@ other = "{{.Name}} has {{.Count}} cats."

### 翻译新消息

如果您在程序中添加了新消息
如果你在程序中添加了新消息

1. 运行 `goi18n extract` 以使用新消息更新 `active.en.toml`
2. 运行 `goi18n merge active.*.toml` 以生成更新的 `translate.*.toml` 文件。
1. 运行 `goi18n extract` 以将新的消息更新到 `active.en.toml`
2. 运行 `goi18n merge active.*.toml` 以生成更新后的 `translate.*.toml` 文件。
3. 翻译 `translate.*.toml` 文件中的所有消息。
4. 运行 `goi18n merge active.*.toml translate.*.toml` 将翻译后的消息合并到 active 消息文件中。
4. 运行 `goi18n merge active.*.toml translate.*.toml` 将翻译后的消息合并到活跃消息文件
(Active Message Files)中。

## 有关更多信息和示例
## 进一步的信息和示例

- 阅读 [文档](https://godoc.org/github.com/nicksnyder/go-i18n/v2)
- 查看 [代码示例](https://github.com/nicksnyder/go-i18n/blob/main/v2/i18n/example_test.go)[测试](https://github.com/nicksnyder/go-i18n/blob/main/v2/i18n/localizer_test.go)
- 查看一个示例 [程序](https://github.com/nicksnyder/go-i18n/tree/main/v2/example)
- 阅读[文档](https://godoc.org/github.com/nicksnyder/go-i18n/v2)
- 查看[代码示例](https://github.com/nicksnyder/go-i18n/blob/main/v2/i18n/example_test.go)
[测试](https://github.com/nicksnyder/go-i18n/blob/main/v2/i18n/localizer_test.go)
- 查看示例[程序](https://github.com/nicksnyder/go-i18n/tree/main/v2/example)

## 许可证

go-i18n MIT 许可下可用。有关更多信息,请参阅 [许可证](LICENSE) 文件。
go-i18n 使用在 MIT 许可来提供。更多的相关信息,请参 [LICENSE](LICENSE) 文件。

0 comments on commit 8b7b3cb

Please sign in to comment.