aboutsummaryrefslogtreecommitdiffhomepage
path: root/locale/translator.go
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2018-09-21 18:53:29 -0700
committerGravatar Frédéric Guillot <fred@miniflux.net>2018-09-21 22:23:23 -0700
commitbeb7a0cfcb6a5a76d680707a4c458eee51d87c07 (patch)
treef6e23ffbffcdd58f8438e2d2711acb4fa86bb83b /locale/translator.go
parentf244df62936eea307a5fc3f27fb9968527d402ac (diff)
Use unique translation IDs instead of English text as key
Diffstat (limited to 'locale/translator.go')
-rw-r--r--locale/translator.go23
1 files changed, 5 insertions, 18 deletions
diff --git a/locale/translator.go b/locale/translator.go
index dff8b2c..0c38c56 100644
--- a/locale/translator.go
+++ b/locale/translator.go
@@ -4,28 +4,15 @@
package locale // import "miniflux.app/locale"
-import (
- "encoding/json"
- "fmt"
- "strings"
-)
-
// Translator manage supported locales.
type Translator struct {
- locales Locales
+ locales catalog
}
// AddLanguage loads a new language into the system.
-func (t *Translator) AddLanguage(language, translations string) error {
- var decodedTranslations Translation
-
- decoder := json.NewDecoder(strings.NewReader(translations))
- if err := decoder.Decode(&decodedTranslations); err != nil {
- return fmt.Errorf("Invalid JSON file: %v", err)
- }
-
- t.locales[language] = decodedTranslations
- return nil
+func (t *Translator) AddLanguage(language, data string) (err error) {
+ t.locales[language], err = parseCatalogMessages(data)
+ return err
}
// GetLanguage returns the given language handler.
@@ -40,5 +27,5 @@ func (t *Translator) GetLanguage(language string) *Language {
// NewTranslator creates a new Translator.
func NewTranslator() *Translator {
- return &Translator{locales: make(Locales)}
+ return &Translator{locales: make(catalog)}
}