Хоть кода в этой библиотеке и не очень много, но время на нее все-таки было потрачено, т.к. раньше я просто не задумывался о некоторых аспектах работы с транслитерацией.
В общем, как и большинство других аналогичных библиотек, она перебирает все символы в строке и заменяет их по предложенному ей словарю. Отличие только в том, что, с моей точки зрения, она более корректно отрабатывает случаи с чередованием заглавных букв. Например:
"ЧАЩА" -> "CHASCHA"
"ЧаЩа" -> "ChaScha"
"Чаща" -> "Chascha"
"чаЩА" -> "chaSCHA"
Для транслитерации русских букв в ней уже предусмотрен встроенный словарь. Для других языков вы можете задать свой. Все достаточно просто:
import "github.com/mdigger/translit"
tests := []string{
"Проверочная СТРОКА для транслитерации",
"ЧАЩА",
"ЧаЩа",
"Чаща",
"чаЩА",
}
for _, text := range tests {
fmt.Println(translit.Ru(text))
}
// Proverochnaja STROKA dlja transliteracii
// CHASCHA
// ChaScha
// Chascha
// chaSCHA