amuse.git

commit 4bfa20dcbc1d3e61f73a81ecc65c5b4dcc432f03

Author: Adam <git@apiote.tk>

not panic when default language is not a symbolic link

 front/html.go | 7 +++++--
 i18n/i18n.go | 14 ++++++++++----


diff --git a/front/html.go b/front/html.go
index ba3a5538dbd09c060afbd05140f8b5eebb5248a2..8ecadc229e582d56b28df4fc288246c8cb2a2857 100644
--- a/front/html.go
+++ b/front/html.go
@@ -59,10 +59,13 @@ 	user accounts.User
 }
 
 func render(languages []language.Tag, data RenderData, file string) string {
-	i18n.LoadServerLangs()
+	err := i18n.LoadServerLangs()
+	if err != nil {
+		// todo return http:500
+	}
 	language, err := i18n.Match(languages)
 	if err != nil {
-		// todo show warning
+		// todo return http:500
 	}
 	strings, err := i18n.LoadStrings(language)
 	if err != nil {




diff --git a/i18n/i18n.go b/i18n/i18n.go
index 99e12f7f787c02ae60cf4ca82b0a035c0eb4a56f..9c0247a81bc6601743d1bae9f063924d4399dd35 100644
--- a/i18n/i18n.go
+++ b/i18n/i18n.go
@@ -43,17 +43,19 @@ }
 
 var serverLangs []language.Tag
 
-func LoadServerLangs() {
+func LoadServerLangs() error {
 	var tags []string
 	var defaultLocale string
 	defaultLocaleIndex := -1
-	filepath.Walk(config.DataHome+"/i18n", func(path string, info os.FileInfo, err error) error {
+	err := filepath.Walk(config.DataHome+"/i18n", func(path string, info os.FileInfo, err error) error {
 		if !info.IsDir() {
 			if filepath.Ext(path) == ".toml" {
 				tag := strings.Replace(filepath.Base(path), ".toml", "", 1)
 				if tag == "default" {
-					// todo if is a link
-					p, _ := os.Readlink(path)
+					p, err := os.Readlink(path)
+					if err != nil {
+						return err
+					}
 					defaultLocale = strings.Replace(filepath.Base(p), ".toml", "", 1)
 				} else {
 					tags = append(tags, tag)
@@ -62,6 +64,9 @@ 			}
 		}
 		return nil
 	})
+	if err != nil {
+		return err
+	}
 
 	for i, tag := range tags {
 		if tag == defaultLocale {
@@ -73,6 +78,7 @@
 	for _, tag := range tags {
 		serverLangs = append(serverLangs, language.Make(tag))
 	}
+	return nil
 }
 
 func Match(acceptLanguages []language.Tag) (language.Tag, error) {