Библиотека для транслитерации строк на Go

Хоть кода в этой библиотеке и не очень много, но время на нее все-таки было потрачено, т.к. раньше я просто не задумывался о некоторых аспектах работы с транслитерацией.

В общем, как и большинство других аналогичных библиотек, она перебирает все символы в строке и заменяет их по предложенному ей словарю. Отличие только в том, что, с моей точки зрения, она более корректно отрабатывает случаи с чередованием заглавных букв. Например:

"ЧАЩА" -> "CHASCHA"
"ЧаЩа" -> "ChaScha"
"Чаща" -> "Chascha"
"чаЩА" -> "chaSCHA"

Для транслитерации русских букв в ней уже предусмотрен встроенный словарь. Для других языков вы можете задать свой. Все достаточно просто:

import "github.com/exluap/translit"

tests := []string{
    "Проверочная СТРОКА для транслитерации",
    "ЧАЩА",
    "ЧаЩа",
    "Чаща",
    "чаЩА",
}
for _, text := range tests {
    fmt.Println(translit.Ru(text))
}
// Proverochnaja STROKA dlja transliteracii
// CHASCHA
// ChaScha
// Chascha
// chaSCHA