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