gobuffalo/flect

GitHub: gobuffalo/flect

Flect 是一个 Go 语言英语名词词形变化引擎,为 Web 开发中的单复数转换、命名格式化等字符串处理需求提供模块化且可自定义的解决方案。

Stars: 104 | Forks: 34

# Flect [![Go Reference](https://pkg.go.dev/badge/github.com/gobuffalo/flect.svg)](https://pkg.go.dev/github.com/gobuffalo/flect) [![Standard Test](https://static.pigsec.cn/wp-content/uploads/repos/cas/f2/f2b84069ea185c2c39a7a2290a27f4091275e42744849f6e57d59b07b4f142fb.svg)](https://github.com/gobuffalo/flect/actions/workflows/standard-go-test.yml) [![Go Report Card](https://goreportcard.com/badge/github.com/gobuffalo/flect)](https://goreportcard.com/report/github.com/gobuffalo/flect) 这是一个全新的词形变化引擎,旨在取代 [https://github.com/markbates/inflect](https://github.com/markbates/inflect)。它的设计更加模块化、更具可读性,并且比原版更容易修复问题。 Flect 提供了诸如 `Singularize` 和 `Pluralize` 等针对英语名词的词形变化功能, 以及诸如 `Camelize`、`Capitalize`、 `Humanize` 等文本实用功能。 由于英语名词词形变化具有高度的灵活性与复杂性,几乎 不可能涵盖所有的例外情况(例如相同/不规则复数形式)。 基于此原因,以及 Flect 的主要目的(即让使用 Go 开发 Web 应用变得 更加容易),Flect 在其自身规则上存在一定的局限性。 * 它涵盖了常规规则(在词尾添加 -s 或 -es) * 它涵盖了常见的不规则规则(例如 -is 变为 -es、-f 变为 -ves 等) * https://en.wiktionary.org/wiki/Appendix:English_irregular_nouns#Rules * 它涵盖了常见的不规则单词(例如 children、men 等) * 如果一个单词像 milk 或 time 一样既可数又不可数,它将被 视为可数。 * 如果一个单词有多种复数形式,这意味着它至少有一种 不规则复数形式,我们会尽量找出最常用的一种。(选定的复数 可能让你觉得奇怪,如有异议,请随时带上数据支持提交一个 issue) * 例如,我们选择了 "stadiums" 而不是 "stadia",选择了 "dwarfs" 而不是 "dwarves" * 我们使用 en.wiktionary.org、britannica.com 和 trends.google.com 中的一个或多个组合来检查近期的使用趋势。 * 然而,我们无法涵盖所有情况,其中某些情况可能不适用于 您的场景。您可以使用 `InsertPlural()`、`InsertSingular()` 或 `LoadInfrections()` 等函数来覆盖默认设置。 * 如果在您的应用根目录下有一个名为 `inflections.json` 的 JSON 文件, 该文件将被自动加载为您的自定义词形变化字典。 ## 安装说明 ``` $ go get github.com/gobuffalo/flect ``` ## 包 ### `github.com/gobuffalo/flect` `github.com/gobuffalo/flect` 包含“基本”的词形变化工具,例如复数化、单数化等... #### `Ident` 类型 除了接收 `string` 并返回 `string` 的实用方法外,还有一个 `Ident` 类型可用于创建全新的、自定义的词形变化规则。 `Ident` 类型包含两个字段。 * `Original` - 这是用于创建 `Ident` 的原始 `string` * `Parts` - 这是一个 `[]string`,表示字符串的所有“部分”,这些部分被拆分开来,使得这些片段更易于处理 使用 `Ident` 创建新词形变化规则的示例可以在 `github.com/gobuffalo/flect/name` 包中找到。 ### `github.com/gobuffalo/flect/name` `github.com/gobuffalo/flect/name` 包含更多“业务”相关的词形变化规则,例如创建专有名称、表名等...
标签:EVTX分析, 日志审计