func Paragraph(p string) string
功能的请使用 v0.16.0 版本或者通过 v0.16.0 中相关代码实现类似的需求。cmd/pinyin/
目录下,现在需要改为使用
go get -u github.com/mozillazg/go-pinyin/cmd/pinyin
来安装命令行工具。-s
参数的值(thanks @wdscxsj via #19):
Normal
改为 zhao
Tone
改为 zh4ao
Tone2
改为 zha4o
Tone3
改为 zhao4
Initials
改为 zh
FirstLetter
改为 z
Finals
改为 ao
FinalsTone
改为 4ao
FinalsTone2
改为 a4o
FinalsTone3
改为 ao4
-s
选项的值(thanks @wdscxsj via #20):NEW 命令行程序支持通过 -s 指定新增的 Tone3
和 FinalsTone3
拼音风格
$ pinyin -s Tone3 请至少输入一个汉字
qing3 zhi4 shao3 shu1 ru4 yi1 ge4 han4 zi4
$ pinyin -s FinalsTone3 请至少输入一个汉字
ing3 i4 ao3 u1 u4 i1 e4 an4 i4
Changed use pinyin-data v0.4.1
0
表示轻声(因为之前并没有正确的实现这个功能, 同时也觉得这个功能没必要)。
顺便修复了 Tone2 中 ü
标轻声的问题(像 侵略 -> qi1n lv0e4
)NEW 新增 Tone3
和 FinalsTone3
拼音风格。
hans := "中国人"
args := pinyin.NewArgs()
args.Style = pinyin.Tone3
fmt.Println("Tone3:", pinyin.Pinyin(hans, args))
// Output: Tone3: [[zhong1] [guo2] [ren2]]
args.Style = pinyin.FinalsTone3
fmt.Println("FinalsTone3:", pinyin.Pinyin(hans, args))
// Output: FinalsTone3: [[ong1] [uo2] [en2]]
func Convert(s string, a *Args) [][]string
func LazyConvert(s string, a *Args) []string
之所以增加这两个函数是希望 a
参数支持 nil
$ pinyin -s Normal 你好
ni hao
Bugfixed 解决韵母 i, u, ü 的问题:根据以下拼音方案,还原出正确的韵母 #8, python-pinyin#26
i 行的韵母,前面没有声母的时候,写成:yi(衣),yɑ(呀),ye(耶), yɑo(腰),you(忧),yɑn(烟),yin(因),yɑnɡ(央),yinɡ(英),yonɡ(雍)。
u 行的韵母,前面没有声母的时候,写成wu(乌),wɑ(蛙),wo(窝), wɑi(歪),wei(威),wɑn(弯),wen(温),wɑnɡ(汪),wenɡ(翁)。
ü行的韵母跟声母j,q,x拼的时候,写成ju(居),qu(区),xu(虚), ü上两点也省略;但是跟声母l,n拼的时候,仍然写成lü(吕),nü(女)。
注意 y
既不是声母也不是韵母。详见 汉语拼音方案
Bugfixed 解决未正确处理鼻音 ḿ, ń, ň, ǹ 的问题:包含鼻音的拼音不应该有声母
$ echo "你好" | pinyin
nǐ hǎo
$ pinyin < hello.txt
nǐ hǎo
Args
结构体新增 field: Fallback func(r rune, a Args) []string
用于处理没有拼音的字符(默认忽略没有拼音的字符):
```go
a := pinyin.NewArgs()
a.Fallback = func(r rune, a pinyin.Args) []string {
return []string{string(r + 1)}
}
fmt.Println(pinyin.Pinyin("中国人abc", a))
// Output: [[zhong] [guo] [ren] [b] [c] [d]]// or pinyin.Fallback = func(r rune, a pinyin.Args) []string {
return []string{string(r)}
} fmt.Println(pinyin.Pinyin("中国人abc", pinyin.NewArgs())) // Output: [[zhong] [guo] [ren] [a] [b] [c]]
## [0.3.0] (2015-12-29)
* fix "当字符串中有非中文的时候,会出现下标越界的情况"(影响 `pinyin.LazyPinyin` 和 `pinyin.Slug` ([#1](https://github.com/mozillazg/go-pinyin/issues/1)))
* 调整对非中文字符的处理:当遇到没有拼音的字符时,直接忽略
```go
// before
fmt.Println(pinyin.Pinyin("中国人abc", pinyin.NewArgs()))
[[zhong] [guo] [ren] [] [] []]
// after
fmt.Println(pinyin.Pinyin("中国人abc", pinyin.NewArgs()))
[[zhong] [guo] [ren]]
yu
, y
, w
不是声母func NewArgs() Args
Args.Separator
无法赋值为 ""
的 BUGNORMAL
-> Normal
TONE
-> Tone
TONE2
-> Tone2
INITIALS
-> Initials
FIRST_LETTER
-> FirstLetter
FINALS
-> Finals
FINALS_TONE
-> FinalsTone
FINALS_TONE2
-> FinalsTone2