diff options
Diffstat (limited to 'src/i18n.go')
-rw-r--r-- | src/i18n.go | 90 |
1 files changed, 54 insertions, 36 deletions
diff --git a/src/i18n.go b/src/i18n.go index 017dbf7..cb54e28 100644 --- a/src/i18n.go +++ b/src/i18n.go @@ -1,7 +1,7 @@ -//go:generate gotext -srclang=en -dir=rosetta extract -lang=bg,el,en,nl . +//go:generate go tool gotext -srclang=en -dir=rosetta update -lang=bg,el,en,nl . //go:generate ../exttmpl -package src +package app import ( "fmt" @@ -23,10 +23,12 @@ type Printer struct { type locale struct { Bcp, Name string Eurozone, Enabled bool - dateFmt, moneyFmt string + dateFmt string } var ( + /* To determine the correct date format to use, use the ‘datefmt’ script in + the repository root */ Locales = [...]locale{ { Bcp: "ca", @@ -92,6 +94,13 @@ var ( Enabled: false, }, { + Bcp: "hr", + Name: "hrvatski", + dateFmt: "02. 01. 2006.", + Eurozone: true, + Enabled: false, + }, + { Bcp: "it", Name: "italiano", dateFmt: "02/01/2006", @@ -141,20 +150,6 @@ var ( Enabled: false, }, { - Bcp: "sh", - Name: "srpskohrvatski", - dateFmt: "02. 01. 2006.", - Eurozone: true, - Enabled: false, - }, - { - Bcp: "sh-Cyrl", - Name: "српскохрватски", - dateFmt: "02. 01. 2006.", - Eurozone: true, - Enabled: false, - }, - { Bcp: "sk", Name: "slovenčina", dateFmt: "2. 1. 2006", @@ -168,16 +163,30 @@ var ( Eurozone: true, Enabled: false, }, + { + Bcp: "sv", + Name: "svenska", + dateFmt: "2006-01-02", + Eurozone: true, + Enabled: false, + }, /* Non-Eurozone locales */ { Bcp: "bg", Name: "български", dateFmt: "2.01.2006 г.", - Eurozone: false, + Eurozone: false, /* TODO(2026): Set to true */ Enabled: true, }, { + Bcp: "da", + Name: "dansk", + dateFmt: "02.01.2006", + Eurozone: false, + Enabled: false, + }, + { Bcp: "en-US", Name: "English (US)", dateFmt: "1/2/2006", @@ -185,16 +194,23 @@ var ( Enabled: false, }, { - Bcp: "ro", - Name: "română", - dateFmt: "02.01.2006", + Bcp: "hu", + Name: "magyar", + dateFmt: "2006. 01. 02.", Eurozone: false, Enabled: false, }, { - Bcp: "sq", - Name: "Shqip", - dateFmt: "2.1.2006", + Bcp: "pl", + Name: "polski", + dateFmt: "2.01.2006", + Eurozone: false, + Enabled: false, + }, + { + Bcp: "ro", + Name: "română", + dateFmt: "02.01.2006", Eurozone: false, Enabled: false, }, @@ -226,15 +242,7 @@ func init() { defaultPrinter = printers["en"] } -func (p Printer) T(fmt string, args ...any) string { - return p.inner.Sprintf(fmt, args...) -} - -func (p Printer) N(n int) string { - return p.inner.Sprint(n) -} - -func (p Printer) Date(d time.Time) string { +func (p Printer) D(d time.Time) string { return d.Format(p.Locale.dateFmt) } @@ -251,9 +259,11 @@ func (p Printer) M(val any) string { case float64: vstr = f("%.2f", val) default: - if err := email.ServerError(badMType{"TODO"}); err != nil { - log.Print(err) - } + go func() { + if err := email.ServerError(badMType{"TODO"}); err != nil { + log.Println(err) + } + }() /* Hopefully this never happens */ vstr = "ERROR" } @@ -271,6 +281,14 @@ func (p Printer) M(val any) string { } } +func (p Printer) N(n int) string { + return p.inner.Sprint(n) +} + +func (p Printer) T(fmt string, args ...any) string { + return p.inner.Sprintf(fmt, args...) +} + /* Transform ‘en-US’ to ‘en’ */ func (l locale) Language() string { return l.Bcp[:2] |