Esempio n. 1
0
func (ru *russianLanguage) Hyphenate(mb *util.MarkupBuilder, start int, length int, shy string) {
	if isAcronym(mb, start, length) {
		return
	}

	limit := start + length

	for i := 0; i < length; i++ {
		at := start + i

		if IsVowel(mb.RuneAt(at)) {
			if ru.isShyAllowed1(mb, start, at, limit) {
				mb.AppendStringAt(at, shy)
			} else if ru.isShyAllowed2(mb, start, at, limit) {
				mb.AppendStringAt(at+1, shy)
			} else if ru.isShyAllowed3(mb, start, at, limit) {
				mb.AppendStringAt(at+2, shy)
			}
		}
	}
}