2
0
Files
translit/README.md
T
2014-08-17 02:04:19 +04:00

59 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Библиотека для транслитерации строк
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"
При желании, вы можете указать любую таблицу в качестве второго параметра при
вызове функции, по которой и будет выполнено данное преобразование.