From bb9b8c2585fd4596ff898a7111f55ba2c504e5fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20Fr=C3=B6hle?= Date: Wed, 29 Jul 2020 16:47:49 +0200 Subject: [PATCH] fix path on different OS --- gotext.go | 42 +++++++++++++++++++++--------------------- gotext_test.go | 23 +++++++++++------------ locale.go | 13 ++++++------- locale_test.go | 14 +++++++------- 4 files changed, 45 insertions(+), 47 deletions(-) diff --git a/gotext.go b/gotext.go index 8d8fd37..2e00b06 100644 --- a/gotext.go +++ b/gotext.go @@ -1,25 +1,25 @@ /* -* Package gotext implements GNU gettext utilities. -* -* For quick/simple translations you can use the package level functions directly. -* -* import ( -* "fmt" -* "git.deineagentur.com/DeineAgenturUG/gotext" -* ) -* -* func main() { -* // Configure package -* gotext.Configure("/path/to/locales/root/dir", "en_UK", "domain-name") -* -* // Translate text from default domain -* fmt.Println(gotext.Get("My text on 'domain-name' domain")) -* -* // Translate text from a different domain without reconfigure -* fmt.Println(gotext.GetD("domain2", "Another text on a different domain")) -* } -* - */ + Package gotext implements GNU gettext utilities. + + For quick/simple translations you can use the package level functions directly. + + import ( + "fmt" + "git.deineagentur.com/DeineAgenturUG/gotext" + ) + + func main() { + // Configure package + gotext.Configure("/path/to/locales/root/dir", "en_UK", "domain-name") + + // Translate text from default domain + fmt.Println(gotext.Get("My text on 'domain-name' domain")) + + // Translate text from a different domain without reconfigure + fmt.Println(gotext.GetD("domain2", "Another text on a different domain")) + } + +*/ package gotext import ( diff --git a/gotext_test.go b/gotext_test.go index e02cd44..234bb24 100644 --- a/gotext_test.go +++ b/gotext_test.go @@ -2,7 +2,6 @@ package gotext import ( "os" - "path" "path/filepath" "sync" "testing" @@ -99,14 +98,14 @@ msgstr "Another text on another domain" ` // Create Locales directory on default location - dirname := path.Join("/tmp", "en_US") + dirname := filepath.Join("/tmp", "en_US") err := os.MkdirAll(dirname, os.ModePerm) if err != nil { t.Fatalf("Can't create test directory: %s", err.Error()) } // Write PO content to default domain file - filename := path.Join(dirname, "default.po") + filename := filepath.Join(dirname, "default.po") f, err := os.Create(filename) if err != nil { @@ -118,7 +117,7 @@ msgstr "Another text on another domain" t.Fatalf("Can't write to test file: %s", err.Error()) } - anotherFilename := path.Join(dirname, "another.po") + anotherFilename := filepath.Join(dirname, "another.po") af, err := os.Create(anotherFilename) if err != nil { @@ -198,14 +197,14 @@ msgstr[1] "" ` // Create Locales directory on default location - dirname := path.Join("/tmp", "en_US") + dirname := filepath.Join("/tmp", "en_US") err := os.MkdirAll(dirname, os.ModePerm) if err != nil { t.Fatalf("Can't create test directory: %s", err.Error()) } // Write PO content to default domain file - filename := path.Join(dirname, "default.po") + filename := filepath.Join(dirname, "default.po") f, err := os.Create(filename) if err != nil { @@ -318,19 +317,19 @@ msgstr[1] "Custom ctx translations" ` // Create Locales directory and files on temp location - dirname := path.Join("/tmp", "en_US") + dirname := filepath.Join("/tmp", "en_US") err := os.MkdirAll(dirname, os.ModePerm) if err != nil { t.Fatalf("Can't create test directory: %s", err.Error()) } - fDefault, err := os.Create(path.Join(dirname, "default.po")) + fDefault, err := os.Create(filepath.Join(dirname, "default.po")) if err != nil { t.Fatalf("Can't create test file: %s", err.Error()) } defer fDefault.Close() - fCustom, err := os.Create(path.Join(dirname, "custom.po")) + fCustom, err := os.Create(filepath.Join(dirname, "custom.po")) if err != nil { t.Fatalf("Can't create test file: %s", err.Error()) } @@ -408,14 +407,14 @@ msgstr "Some random Translation in a context" ` // Create Locales directory on default location - dirname := path.Join("/tmp", "en_US") + dirname := filepath.Join("/tmp", "en_US") err := os.MkdirAll(dirname, os.ModePerm) if err != nil { t.Fatalf("Can't create test directory: %s", err.Error()) } // Write PO content to default domain file - filename := path.Join("/tmp", GetDomain()+".po") + filename := filepath.Join("/tmp", GetDomain()+".po") f, err := os.Create(filename) if err != nil { @@ -437,7 +436,7 @@ msgstr "Some random Translation in a context" defer wg.Done() GetLibrary() - SetLibrary(path.Join("/tmp", "gotextlib")) + SetLibrary(filepath.Join("/tmp", "gotextlib")) GetDomain() SetDomain("default") GetLanguage() diff --git a/locale.go b/locale.go index 30f3434..fd265f7 100644 --- a/locale.go +++ b/locale.go @@ -9,11 +9,11 @@ import ( "bytes" "encoding/gob" "os" - "path" + "path/filepath" "sync" ) -/** +/* Locale wraps the entire i18n collection for a single language (locale) It's used by the package functions, but it can also be used independently to handle multiple languages at the same time by working with this object. @@ -44,7 +44,6 @@ Example: fmt.Println(l.GetD("extras", "Translate this")) } */ - type Locale struct { // Path to locale files. path string @@ -73,25 +72,25 @@ func NewLocale(p, l string) *Locale { } func (l *Locale) findExt(dom, ext string) string { - filename := path.Join(l.path, l.lang, "LC_MESSAGES", dom+"."+ext) + filename := filepath.Join(l.path, l.lang, "LC_MESSAGES", dom+"."+ext) if _, err := os.Stat(filename); err == nil { return filename } if len(l.lang) > 2 { - filename = path.Join(l.path, l.lang[:2], "LC_MESSAGES", dom+"."+ext) + filename = filepath.Join(l.path, l.lang[:2], "LC_MESSAGES", dom+"."+ext) if _, err := os.Stat(filename); err == nil { return filename } } - filename = path.Join(l.path, l.lang, dom+"."+ext) + filename = filepath.Join(l.path, l.lang, dom+"."+ext) if _, err := os.Stat(filename); err == nil { return filename } if len(l.lang) > 2 { - filename = path.Join(l.path, l.lang[:2], dom+"."+ext) + filename = filepath.Join(l.path, l.lang[:2], dom+"."+ext) if _, err := os.Stat(filename); err == nil { return filename } diff --git a/locale_test.go b/locale_test.go index 9ceeb74..fb5f623 100644 --- a/locale_test.go +++ b/locale_test.go @@ -7,7 +7,7 @@ package gotext import ( "os" - "path" + "path/filepath" "testing" ) @@ -62,14 +62,14 @@ msgstr "More Translation" ` // Create Locales directory with simplified language code - dirname := path.Join("/tmp", "en", "LC_MESSAGES") + dirname := filepath.Join("/tmp", "en", "LC_MESSAGES") err := os.MkdirAll(dirname, os.ModePerm) if err != nil { t.Fatalf("Can't create test directory: %s", err.Error()) } // Write PO content to file - filename := path.Join(dirname, "my_domain.po") + filename := filepath.Join(dirname, "my_domain.po") f, err := os.Create(filename) if err != nil { @@ -192,14 +192,14 @@ msgstr "More Translation" ` // Create Locales directory with simplified language code - dirname := path.Join("/tmp", "en", "LC_MESSAGES") + dirname := filepath.Join("/tmp", "en", "LC_MESSAGES") err := os.MkdirAll(dirname, os.ModePerm) if err != nil { t.Fatalf("Can't create test directory: %s", err.Error()) } // Write PO content to file - filename := path.Join(dirname, "my_domain.po") + filename := filepath.Join(dirname, "my_domain.po") f, err := os.Create(filename) if err != nil { @@ -425,14 +425,14 @@ msgstr[2] "And this is the second plural form: %s" ` // Create Locales directory with simplified language code - dirname := path.Join("/tmp", "es") + dirname := filepath.Join("/tmp", "es") err := os.MkdirAll(dirname, os.ModePerm) if err != nil { t.Fatalf("Can't create test directory: %s", err.Error()) } // Write PO content to file - filename := path.Join(dirname, "race.po") + filename := filepath.Join(dirname, "race.po") f, err := os.Create(filename) if err != nil {