don't use bad locale
This commit is contained in:
		@@ -1,13 +1,13 @@
 | 
			
		||||
package srnd
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"github.com/majestrate/configparser"
 | 
			
		||||
	"golang.org/x/text/language"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"log"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"errors"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type I18N struct {
 | 
			
		||||
@@ -36,6 +36,9 @@ func InitI18n(locale, dir string) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewI18n(locale, dir string) (*I18N, error) {
 | 
			
		||||
	if locale == "und" {
 | 
			
		||||
		locale = "en"
 | 
			
		||||
	}
 | 
			
		||||
	log.Println("get locale", locale)
 | 
			
		||||
	pref := language.Make(locale) // falls back to en-US on parse error
 | 
			
		||||
	files, err := ioutil.ReadDir(dir)
 | 
			
		||||
@@ -43,7 +46,7 @@ func NewI18n(locale, dir string) (*I18N, error) {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	found:= false
 | 
			
		||||
	found := false
 | 
			
		||||
	serverLangs := make([]language.Tag, 1)
 | 
			
		||||
	//	serverLangs[0] = language.AmericanEnglish // en-US fallback
 | 
			
		||||
	for _, file := range files {
 | 
			
		||||
@@ -52,14 +55,14 @@ func NewI18n(locale, dir string) (*I18N, error) {
 | 
			
		||||
			tag, err := language.Parse(name)
 | 
			
		||||
			if err == nil {
 | 
			
		||||
				serverLangs = append(serverLangs, tag)
 | 
			
		||||
				found = true;
 | 
			
		||||
				found = true
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if !found {
 | 
			
		||||
		return nil, ErrNoLang
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	matcher := language.NewMatcher(serverLangs)
 | 
			
		||||
	tag, _, _ := matcher.Match(pref)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user