59 lines
3.0 KiB
Markdown
59 lines
3.0 KiB
Markdown
# Библиотека для транслитерации строк
|
||
|
||
import "github.com/mdigger/translit"
|
||
|
||
Данная библиотека обеспечивает простую транслитерацию. Для этого достаточно
|
||
только описать соответствующую таблицу подстановки символов, в которой буква
|
||
проассоциирована с какой-либо строкой. В частности, такая ассоциация для
|
||
транслитерации русского языка уже определена.
|
||
|
||
Текущая реализация подразумевает только одностороннюю транслитерацию: обратное
|
||
преобразование будет уже не так очевидно.
|
||
|
||
## Использование
|
||
|
||
```go
|
||
var RuTransiltMap = map[rune]string{
|
||
'а': "a",
|
||
'б': "b",
|
||
'в': "v",
|
||
...
|
||
'ю': "ju",
|
||
'я': "ja",
|
||
}
|
||
```
|
||
RuTransiltMap описывает замены русских букв на английские при транслитерации.
|
||
Некоторые буквы заменяются ни на одну, а на две или три буквы латинского
|
||
алфавита. А мягкий знак вообще исчезает. Но такова обычная распространенная
|
||
схема транслитерации.
|
||
|
||
#### func RuTranslit
|
||
|
||
```go
|
||
func RuTranslit(text string) string
|
||
```
|
||
RuTranslit выполняет транслитерацию строки с учетом словаря для русской
|
||
транслитерации.
|
||
|
||
#### func Translit
|
||
|
||
```go
|
||
func Translit(text string, translitMap map[rune]string) string
|
||
```
|
||
Translit выполняет транслитерацию в строке по указанной таблице и возвращает
|
||
новую строку с результатом такого преобразования. Все символы, которые не
|
||
указаны в таблице транслитерации, останутся без изменения.
|
||
|
||
При транслитерировании учитывается, что замена буквы может быть произведена на
|
||
строку произвольной длины и корректно обрабатываются чередования заглавных и
|
||
строчных букв. В частности, производится корректная транслитерация следующих
|
||
случаев при использовании русского словаря:
|
||
|
||
"ЧАЩА" -> "CHASCHA"
|
||
"ЧаЩа" -> "ChaScha"
|
||
"Чаща" -> "Chascha"
|
||
"чаЩА" -> "chaSCHA"
|
||
|
||
При желании, вы можете указать любую таблицу в качестве второго параметра при
|
||
вызове функции, по которой и будет выполнено данное преобразование.
|