shithub: hugo

Download patch

ref: b88a105a7c9255ce50d4e97f8986b92e2b749332
parent: b3443b3d0c537c7c82b5df55a0a9d91288d1d56a
author: Bjørn Erik Pedersen <[email protected]>
date: Sun Nov 5 05:20:39 EST 2017

Revert "i18n: Allow custom language codes"

This reverts commit bb04010cbfd92837685f98c3e0f5362ba00ce487.

--- a/i18n/i18n_test.go
+++ b/i18n/i18n_test.go
@@ -23,11 +23,9 @@
 
 	"github.com/gohugoio/hugo/config"
 	"github.com/nicksnyder/go-i18n/i18n/bundle"
-	"github.com/nicksnyder/go-i18n/i18n/language"
 	jww "github.com/spf13/jwalterweatherman"
 	"github.com/spf13/viper"
 	"github.com/stretchr/testify/require"
-	"strings"
 )
 
 var logger = jww.NewNotepad(jww.LevelError, jww.LevelError, os.Stdout, ioutil.Discard, "", log.Ldate|log.Ltime)
@@ -139,29 +137,10 @@
 		expected:     "hello",
 		expectedFlag: "[i18n] hello",
 	},
-	// Non Unicode CLDR language code
-	{
-		data: map[string][]byte{
-			"dk.toml": []byte("[hello]\nother = \"hej\""),
-		},
-		args:         nil,
-		lang:         "dk",
-		id:           "hello",
-		expected:     "hej",
-		expectedFlag: "hej",
-	},
 }
 
 func doTestI18nTranslate(t *testing.T, test i18nTest, cfg config.Provider) string {
 	i18nBundle := bundle.New()
-	ids := []string{}
-
-	for file := range test.data {
-		id := strings.TrimSuffix(file, ".toml")
-		ids = append(ids, id)
-	}
-
-	language.RegisterPluralSpec(ids, &language.PluralSpec{})
 
 	for file, content := range test.data {
 		err := i18nBundle.ParseTranslationFileBytes(file, content)
--- a/i18n/translationProvider.go
+++ b/i18n/translationProvider.go
@@ -15,18 +15,12 @@
 
 import (
 	"fmt"
-	"sync"
 
 	"github.com/gohugoio/hugo/deps"
 	"github.com/gohugoio/hugo/source"
 	"github.com/nicksnyder/go-i18n/i18n/bundle"
-	"github.com/nicksnyder/go-i18n/i18n/language"
 )
 
-// Unfortunately this needs to be global, see
-// https://github.com/nicksnyder/go-i18n/issues/82
-var tpMu sync.Mutex
-
 // TranslationProvider provides translation handling, i.e. loading
 // of bundles etc.
 type TranslationProvider struct {
@@ -40,9 +34,6 @@
 
 // Update updates the i18n func in the provided Deps.
 func (tp *TranslationProvider) Update(d *deps.Deps) error {
-	tpMu.Lock()
-	defer tpMu.Unlock()
-
 	dir := d.PathSpec.AbsPathify(d.Cfg.GetString("i18nDir"))
 	sp := source.NewSourceSpec(d.Cfg, d.Fs)
 	sources := []source.Input{sp.NewFilesystem(dir)}
@@ -56,17 +47,6 @@
 	d.Log.DEBUG.Printf("Load I18n from %q", sources)
 
 	i18nBundle := bundle.New()
-
-	langs := []string{}
-	for _, currentSource := range sources {
-		for _, r := range currentSource.Files() {
-			langs = append(langs, r.BaseFileName())
-		}
-	}
-	// We need to register all language codes as "plural spec" to prevent errors with unknown language codes.
-	// see https://github.com/gohugoio/hugo/issues/3564
-	ps := &language.PluralSpec{}
-	language.RegisterPluralSpec(langs, ps)
 
 	for _, currentSource := range sources {
 		for _, r := range currentSource.Files() {