From cc5c8b2f23854c7c787d553242818d4aaea0da71 Mon Sep 17 00:00:00 2001 From: nytpu Date: Tue, 11 May 2021 11:16:26 -0600 Subject: [PATCH] add getLang() to parse language --- comitium.go | 21 +++++++++++++++++++++ go.mod | 2 +- go.sum | 8 ++------ 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/comitium.go b/comitium.go index 41cd616..681b6fb 100644 --- a/comitium.go +++ b/comitium.go @@ -13,11 +13,17 @@ import ( "path/filepath" "github.com/mitchellh/go-homedir" + "golang.nytpu.com/comitium/localizations" + "golang.org/x/text/language" "golang.nytpu.com/comitium/core" "golang.nytpu.com/comitium/fetch" ) +var supportedLangs = []language.Tag{ + language.AmericanEnglish, // en-US (fallback) +} + func main() { argCheck(os.Args, 2, true, "Please provide a command.") @@ -41,6 +47,9 @@ func main() { c.AddFlagSet(globalFs) c.Parse(os.Args[2:]) + // figure out what language to use + localizer := getLang() + // dataPath is the location where all the data (list of subs, cached hashes, // etcetera) are stored dataPath := getDataPath() @@ -152,6 +161,18 @@ func getDataPath() string { return verifyPath("comitium") } +// getLang will return the localizer for the user's lang +func getLang() *localizations.Localizer { + matcher := language.NewMatcher(supportedLangs) + var lang language.Tag + if *langFlag != "" { + lang, _ = language.MatchStrings(matcher, *langFlag) + } else if env := os.Getenv("LANG"); env != "" { + lang, _ = language.MatchStrings(matcher, env) + } + return localizations.New(lang.String(), supportedLangs[0].String()) +} + func usage() { fmt.Fprintf(os.Stderr, "Usage:\n") fmt.Fprintf(os.Stderr, " %v [FLAGS] [ARGUMENTS]\n\n", os.Args[0]) diff --git a/go.mod b/go.mod index c633ee7..425e41b 100644 --- a/go.mod +++ b/go.mod @@ -4,9 +4,9 @@ go 1.13 require ( git.sr.ht/~adnano/go-gemini v0.1.17 - github.com/m1/go-localize v0.0.0-20210411165534-07d5b914f3cd github.com/mitchellh/go-homedir v1.1.0 github.com/mmcdole/gofeed v1.1.0 github.com/prologic/go-gopher v0.0.0-20210114215941-1859ade2470b github.com/spf13/pflag v1.0.5 + golang.org/x/text v0.3.6 ) diff --git a/go.sum b/go.sum index de608b1..3960060 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,5 @@ git.sr.ht/~adnano/go-gemini v0.1.17 h1:CJ3tDaqAJQbOdVXmiPC/iXHt4lF/CRu2nxPNOPjHUBk= git.sr.ht/~adnano/go-gemini v0.1.17/go.mod h1:hQ75Y0i5jSFL+FQ7AzWVAYr5LQsaFC7v3ZviNyj46dY= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/PuerkitoBio/goquery v1.5.1 h1:PSPBGne8NIUWw+/7vFBV+kG2J/5MOjbzc7154OaKCSE= github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= @@ -13,8 +12,6 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/m1/go-localize v0.0.0-20210411165534-07d5b914f3cd h1:y6swOilsqshR8eD/JPntnJAin2bJ/VxQQjDclhjXjmc= -github.com/m1/go-localize v0.0.0-20210411165534-07d5b914f3cd/go.mod h1:eH5LIPfi8y08l9hAmci8sa+jZduTW0iMZM5FW62+RaE= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mmcdole/gofeed v1.1.0 h1:T2WrGLVJRV04PY2qwhEJLHCt9JiCtBhb6SmC8ZvJH08= @@ -50,13 +47,12 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.7 h1:VUgggvou5XRW9mHwD/yXxIYSMtY0zoKQf/v226p2nyo= -gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=