2021-10-05 16:09:19 +00:00
|
|
|
|
package translit
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"strings"
|
|
|
|
|
)
|
|
|
|
|
|
2021-10-06 20:08:25 +00:00
|
|
|
|
type ArmenianTranslit struct {
|
|
|
|
|
initComplete bool
|
|
|
|
|
}
|
2021-10-05 16:09:19 +00:00
|
|
|
|
|
|
|
|
|
var armenianMap = []string{
|
|
|
|
|
"աու", "au",
|
|
|
|
|
"բու", "bu",
|
|
|
|
|
"գու", "gu",
|
|
|
|
|
"դու", "du",
|
|
|
|
|
"եու", "eu",
|
|
|
|
|
"զու", "zu",
|
|
|
|
|
"էու", "eu",
|
|
|
|
|
"ըու", "yu",
|
|
|
|
|
"թու", "tu",
|
|
|
|
|
"ժու", "ju",
|
|
|
|
|
"իու", "iu",
|
|
|
|
|
"լու", "lu",
|
|
|
|
|
"խու", "xu",
|
|
|
|
|
"ծու", "cu",
|
|
|
|
|
"կու", "ku",
|
|
|
|
|
"հու", "hu",
|
|
|
|
|
"ձու", "dzu",
|
|
|
|
|
"ղու", "xu",
|
|
|
|
|
"ճու", "cu",
|
|
|
|
|
"մու", "mu",
|
|
|
|
|
"յու", "yu",
|
|
|
|
|
"նու", "nu",
|
|
|
|
|
"շու", "shu",
|
|
|
|
|
"չու", "chu",
|
|
|
|
|
"պու", "pu",
|
|
|
|
|
"ջու", "ju",
|
|
|
|
|
"ռու", "ru",
|
|
|
|
|
"սու", "su",
|
|
|
|
|
"վու", "vu",
|
|
|
|
|
"տու", "tu",
|
|
|
|
|
"րու", "ru",
|
|
|
|
|
"ցու", "cu",
|
|
|
|
|
"փու", "pu",
|
|
|
|
|
"քու", "qu",
|
|
|
|
|
"օու", "ou",
|
|
|
|
|
"ևու", "eu",
|
|
|
|
|
"ֆու", "fu",
|
|
|
|
|
"ոու", "vou",
|
|
|
|
|
"ու", "u",
|
|
|
|
|
"բո", "bo",
|
|
|
|
|
"գո", "go",
|
|
|
|
|
"դո", "do",
|
|
|
|
|
"զո", "zo",
|
|
|
|
|
"թո", "to",
|
|
|
|
|
"ժո", "jo",
|
|
|
|
|
"լո", "lo",
|
|
|
|
|
"խո", "xo",
|
|
|
|
|
"ծո", "co",
|
|
|
|
|
"կո", "ko",
|
|
|
|
|
"հո", "ho",
|
|
|
|
|
"ձո", "dzo",
|
|
|
|
|
"ղո", "xo",
|
|
|
|
|
"ճո", "co",
|
|
|
|
|
"մո", "mo",
|
|
|
|
|
"յո", "yo",
|
|
|
|
|
"նո", "no",
|
|
|
|
|
"շո", "so",
|
|
|
|
|
"չո", "co",
|
|
|
|
|
"պո", "po",
|
|
|
|
|
"ջո", "jo",
|
|
|
|
|
"ռո", "ro",
|
|
|
|
|
"սո", "so",
|
|
|
|
|
"վո", "vo",
|
|
|
|
|
"տո", "to",
|
|
|
|
|
"րո", "ro",
|
|
|
|
|
"ցո", "co",
|
|
|
|
|
"փո", "po",
|
|
|
|
|
"քո", "qo",
|
|
|
|
|
"ևո", "eo",
|
|
|
|
|
"ֆո", "fo",
|
|
|
|
|
"ո", "vo",
|
|
|
|
|
"եւ", "ev",
|
|
|
|
|
"եվ", "ev",
|
|
|
|
|
"ա", "a",
|
|
|
|
|
"բ", "b",
|
|
|
|
|
"գ", "g",
|
|
|
|
|
"դ", "d",
|
|
|
|
|
"ե", "e",
|
|
|
|
|
"զ", "z",
|
|
|
|
|
"է", "e",
|
|
|
|
|
"ը", "y",
|
|
|
|
|
"թ", "t",
|
|
|
|
|
"ժ", "j",
|
|
|
|
|
"ի", "i",
|
|
|
|
|
"լ", "l",
|
|
|
|
|
"խ", "x",
|
|
|
|
|
"ծ", "c",
|
|
|
|
|
"կ", "k",
|
|
|
|
|
"հ", "h",
|
|
|
|
|
"ձ", "dz",
|
|
|
|
|
"ղ", "x",
|
|
|
|
|
"ճ", "c",
|
|
|
|
|
"մ", "m",
|
|
|
|
|
"յ", "y",
|
|
|
|
|
"ն", "n",
|
|
|
|
|
"շ", "sh",
|
|
|
|
|
"չ", "ch",
|
|
|
|
|
"պ", "p",
|
|
|
|
|
"ջ", "j",
|
|
|
|
|
"ռ", "r",
|
|
|
|
|
"ս", "s",
|
|
|
|
|
"վ", "v",
|
|
|
|
|
"տ", "t",
|
|
|
|
|
"ր", "r",
|
|
|
|
|
"ց", "c",
|
|
|
|
|
"փ", "p",
|
|
|
|
|
"ք", "q",
|
|
|
|
|
"օ", "o",
|
|
|
|
|
"և", "ev",
|
|
|
|
|
"ֆ", "f",
|
|
|
|
|
"ւ", "",
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-06 16:41:33 +00:00
|
|
|
|
func (at *ArmenianTranslit) Init() {
|
2021-10-06 20:08:25 +00:00
|
|
|
|
if !at.initComplete {
|
2021-10-06 20:26:16 +00:00
|
|
|
|
// Copy map as original will be changed
|
2021-10-06 20:08:25 +00:00
|
|
|
|
lower := armenianMap
|
2021-10-06 20:26:16 +00:00
|
|
|
|
// For every value in copied map
|
2021-10-06 20:08:25 +00:00
|
|
|
|
for i, val := range lower {
|
2021-10-06 20:26:16 +00:00
|
|
|
|
// If index is odd, skip
|
2021-10-06 20:08:25 +00:00
|
|
|
|
if i%2 == 1 {
|
|
|
|
|
continue
|
|
|
|
|
}
|
2021-10-06 20:26:16 +00:00
|
|
|
|
// Capitalize first letter
|
2021-10-06 20:08:25 +00:00
|
|
|
|
capital := strings.Title(val)
|
2021-10-06 20:26:16 +00:00
|
|
|
|
// If capital is not the same as lowercase
|
2021-10-06 20:08:25 +00:00
|
|
|
|
if capital != val {
|
2021-10-06 20:26:16 +00:00
|
|
|
|
// Add capital to map
|
2021-10-06 20:08:25 +00:00
|
|
|
|
armenianMap = append(armenianMap, capital, strings.Title(armenianMap[i+1]))
|
|
|
|
|
}
|
2021-10-05 16:09:19 +00:00
|
|
|
|
}
|
2021-10-06 20:26:16 +00:00
|
|
|
|
// Set init complete to true so it is not run again
|
2021-10-06 20:08:25 +00:00
|
|
|
|
at.initComplete = true
|
2021-10-05 16:09:19 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (at *ArmenianTranslit) Transliterate(s string) string {
|
|
|
|
|
return strings.NewReplacer(armenianMap...).Replace(s)
|
|
|
|
|
}
|