2
0
2014-08-17 02:04:19 +04:00
2014-08-17 02:04:19 +04:00
2014-08-17 02:04:19 +04:00
2014-08-17 02:04:19 +04:00

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

import "github.com/mdigger/translit"

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

Текущая реализация подразумевает только одностороннюю транслитерацию: обратное преобразование будет уже не так очевидно.

Использование

var RuTransiltMap = map[rune]string{
	'а': "a",
	'б': "b",
	'в': "v",
	...
	'ю': "ju",
	'я': "ja",
}

RuTransiltMap описывает замены русских букв на английские при транслитерации. Некоторые буквы заменяются ни на одну, а на две или три буквы латинского алфавита. А мягкий знак вообще исчезает. Но такова обычная распространенная схема транслитерации.

func RuTranslit

func RuTranslit(text string) string

RuTranslit выполняет транслитерацию строки с учетом словаря для русской транслитерации.

func Translit

func Translit(text string, translitMap map[rune]string) string

Translit выполняет транслитерацию в строке по указанной таблице и возвращает новую строку с результатом такого преобразования. Все символы, которые не указаны в таблице транслитерации, останутся без изменения.

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

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

При желании, вы можете указать любую таблицу в качестве второго параметра при вызове функции, по которой и будет выполнено данное преобразование.

S
Description
Russian transliteration
Readme 45 KiB
Languages
Go 100%