Add init functions to transliterators
This commit is contained in:
parent
3274eb6acf
commit
fe4b0ec203
@ -12,7 +12,7 @@
|
||||
### Features
|
||||
|
||||
- Notification relay
|
||||
- Notificstion transliteration
|
||||
- Notification transliteration
|
||||
- Music control
|
||||
- Get info from watch (HRM, Battery level, Firmware version)
|
||||
- Set current time
|
||||
|
@ -120,7 +120,7 @@ var armenianMap = []string{
|
||||
"ւ", "",
|
||||
}
|
||||
|
||||
func init() {
|
||||
func (at *ArmenianTranslit) Init() {
|
||||
lower := armenianMap
|
||||
for i, val := range lower {
|
||||
if i%2 == 1 {
|
||||
|
@ -12,6 +12,8 @@ import (
|
||||
// conversion library.
|
||||
type ChineseTranslit struct{}
|
||||
|
||||
func (ChineseTranslit) Init() {}
|
||||
|
||||
func (ct *ChineseTranslit) Transliterate(s string) string {
|
||||
// Create buffer for final output
|
||||
outBuf := &bytes.Buffer{}
|
||||
|
@ -39,6 +39,8 @@ var compatJamoBlock = &unicode.RangeTable{
|
||||
// This was translated to Go from the code in https://codeberg.org/Freeyourgadget/Gadgetbridge
|
||||
type KoreanTranslit struct{}
|
||||
|
||||
func (KoreanTranslit) Init() {}
|
||||
|
||||
// User input consisting of isolated jamo is usually mapped to the KS X 1001 compatibility
|
||||
// block, but jamo resulting from decomposed syllables are mapped to the modern one. This
|
||||
// function maps compat jamo to modern ones where possible and returns all other characters
|
||||
|
@ -9,9 +9,9 @@ func Transliterate(s string, useMaps ...string) string {
|
||||
// Create variable to store modified string
|
||||
out := s
|
||||
// If custom map exists
|
||||
if customMap, ok := Transliterators["custom"]; ok {
|
||||
if custom, ok := Transliterators["custom"]; ok {
|
||||
// Perform transliteration with it
|
||||
out = customMap.Transliterate(out)
|
||||
out = custom.Transliterate(out)
|
||||
}
|
||||
// For every map to use
|
||||
for _, useMap := range useMaps {
|
||||
@ -20,12 +20,13 @@ func Transliterate(s string, useMaps ...string) string {
|
||||
continue
|
||||
}
|
||||
// Get requested map
|
||||
translitMap, ok := Transliterators[useMap]
|
||||
transliterator, ok := Transliterators[useMap]
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
transliterator.Init()
|
||||
// Perform transliteration
|
||||
out = translitMap.Transliterate(out)
|
||||
out = transliterator.Transliterate(out)
|
||||
}
|
||||
// Return result
|
||||
return out
|
||||
@ -36,6 +37,7 @@ func Transliterate(s string, useMaps ...string) string {
|
||||
// and returns the resulting string.
|
||||
type Transliterator interface {
|
||||
Transliterate(string) string
|
||||
Init()
|
||||
}
|
||||
|
||||
// Map implements Transliterator using a slice where
|
||||
@ -47,6 +49,8 @@ func (mt Map) Transliterate(s string) string {
|
||||
return strings.NewReplacer(mt...).Replace(s)
|
||||
}
|
||||
|
||||
func (Map) Init() {}
|
||||
|
||||
// Transliterators stores transliterator implementations for each supported language.
|
||||
// Some of these were sourced from https://codeberg.org/Freeyourgadget/Gadgetbridge
|
||||
var Transliterators = map[string]Transliterator{
|
||||
|
Loading…
Reference in New Issue
Block a user