aboutsummaryrefslogtreecommitdiffhomepage
path: root/locale/translator.go
diff options
context:
space:
mode:
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)}
}