summaryrefslogtreecommitdiffstats
path: root/i18n/translationProvider.go
diff options
context:
space:
mode:
Diffstat (limited to 'i18n/translationProvider.go')
-rw-r--r--i18n/translationProvider.go20
1 files changed, 17 insertions, 3 deletions
diff --git a/i18n/translationProvider.go b/i18n/translationProvider.go
index e0eb89134..52aada8bd 100644
--- a/i18n/translationProvider.go
+++ b/i18n/translationProvider.go
@@ -17,6 +17,8 @@ import (
"errors"
"fmt"
+ "github.com/gohugoio/hugo/helpers"
+
"github.com/gohugoio/hugo/deps"
"github.com/gohugoio/hugo/source"
"github.com/nicksnyder/go-i18n/i18n/bundle"
@@ -73,9 +75,8 @@ func (tp *TranslationProvider) Update(d *deps.Deps) error {
for _, currentSource := range sources {
for _, r := range currentSource.Files() {
- err := i18nBundle.ParseTranslationFileBytes(r.LogicalName(), r.Bytes())
- if err != nil {
- return fmt.Errorf("Failed to load translations in file %q: %s", r.LogicalName(), err)
+ if err := addTranslationFile(i18nBundle, r); err != nil {
+ return err
}
}
}
@@ -88,6 +89,19 @@ func (tp *TranslationProvider) Update(d *deps.Deps) error {
}
+func addTranslationFile(bundle *bundle.Bundle, r source.ReadableFile) error {
+ f, err := r.Open()
+ if err != nil {
+ return fmt.Errorf("Failed to open translations file %q: %s", r.LogicalName(), err)
+ }
+ defer f.Close()
+ err = bundle.ParseTranslationFileBytes(r.LogicalName(), helpers.ReaderToBytes(f))
+ if err != nil {
+ return fmt.Errorf("Failed to load translations in file %q: %s", r.LogicalName(), err)
+ }
+ return nil
+}
+
// Clone sets the language func for the new language.
func (tp *TranslationProvider) Clone(d *deps.Deps) error {
d.Translate = tp.t.Func(d.Language.Lang)