From 8e1bf2b628ab9ec3b0ea8442a0e0acd9eaa88294 Mon Sep 17 00:00:00 2001 From: Trevor Slocum Date: Mon, 18 Mar 2024 13:02:58 -0700 Subject: [PATCH] Allow translating server messages --- CHANGELOG | 3 +++ README.md | 2 +- game/client.go | 4 ++-- game/game.go | 7 +++++-- game/locales/pt_BR/pt_BR.po | 8 ++++---- go.mod | 6 +++--- go.sum | 12 ++++++------ 7 files changed, 24 insertions(+), 18 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index f8ce0c5..ef1197f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +1.3.2: +- Allow translating server messages + 1.3.1: - Display doubling cube - Allow flipping opponent space numbers diff --git a/README.md b/README.md index 19ca2de..ac19d8b 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Run `~/go/bin/boxcars` to play. ## Translate -Translation is handled [online](https://hosted.weblate.org/projects/bgammon/boxcars/). +Translation is handled [online](https://hosted.weblate.org/projects/bgammon/). ## Support diff --git a/game/client.go b/game/client.go index cd300e4..ca553c1 100644 --- a/game/client.go +++ b/game/client.go @@ -57,13 +57,13 @@ func (c *Client) logIn() []byte { } else if game.register { c.Username = game.Username c.Password = game.Password - return []byte(fmt.Sprintf("rj %s %s %s %s\nlist\n", AppName, game.Email, game.Username, game.Password)) + return []byte(fmt.Sprintf("rj %s/%s %s %s %s\nlist\n", AppName, AppLanguage, game.Email, game.Username, game.Password)) } loginInfo := strings.ReplaceAll(c.Username, " ", "_") if c.Username != "" && c.Password != "" { loginInfo = fmt.Sprintf("%s %s", strings.ReplaceAll(c.Username, " ", "_"), strings.ReplaceAll(c.Password, " ", "_")) } - return []byte(fmt.Sprintf("lj %s %s\nlist\n", AppName, loginInfo)) + return []byte(fmt.Sprintf("lj %s/%s %s\nlist\n", AppName, AppLanguage, loginInfo)) } func (c *Client) LoggedIn() bool { diff --git a/game/game.go b/game/game.go index de49db2..ebb1870 100644 --- a/game/game.go +++ b/game/game.go @@ -40,7 +40,7 @@ import ( ) const ( - version = "v1.3.1" + version = "v1.3.2" baseButtonHeight = 54 MaxDebug = 2 DefaultServerAddress = "wss://ws.bgammon.org" @@ -48,6 +48,8 @@ const ( var AutoEnableTouchInput bool +var AppLanguage = "en" + var ( anyNumbers = regexp.MustCompile(`[0-9]+`) onlyNumbers = regexp.MustCompile(`^[0-9]+$`) @@ -3086,8 +3088,9 @@ func LoadLocale(forceLanguage *language.Tag) error { po := gotext.NewPo() po.Parse(b) - gotext.GetStorage().AddTranslator("boxcars", po) + + AppLanguage = useLanguageName return nil } diff --git a/game/locales/pt_BR/pt_BR.po b/game/locales/pt_BR/pt_BR.po index 74e5cc2..19e58d6 100644 --- a/game/locales/pt_BR/pt_BR.po +++ b/game/locales/pt_BR/pt_BR.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-01-11 07:32+0000\n" +"PO-Revision-Date: 2024-03-18 10:22+0000\n" "Last-Translator: Iago Emanuel \n" "Language-Team: Portuguese (Brazil) \n" @@ -9,7 +9,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.4-dev\n" +"X-Generator: Weblate 5.5-dev\n" msgid "%s - Free Online Backgammon" msgstr "" @@ -21,10 +21,10 @@ msgid "%s left the match." msgstr "%s saiu da partida." msgid "%s moved %s" -msgstr "" +msgstr "%s moveu %s" msgid "%s rolled %s" -msgstr "" +msgstr "% rolou %" msgid "%s wins!" msgstr "%s venceu!" diff --git a/go.mod b/go.mod index 6e582a6..b68fc94 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module code.rocket9labs.com/tslocum/boxcars go 1.17 require ( - code.rocket9labs.com/tslocum/bgammon v0.0.0-20240315051044-3412f3125003 + code.rocket9labs.com/tslocum/bgammon v0.0.0-20240318195851-b2dc9ed64695 code.rocket9labs.com/tslocum/bgammon-tabula-bot v0.0.0-20240220233735-ac7ec51d806c code.rocket9labs.com/tslocum/etk v0.0.0-20240220192047-d17310185c80 code.rocket9labs.com/tslocum/tabula v0.0.0-20240207195947-691c7a5d5265 @@ -54,8 +54,8 @@ require ( github.com/vanng822/css v1.0.1 // indirect github.com/vanng822/go-premailer v1.20.2 // indirect golang.org/x/crypto v0.21.0 // indirect - golang.org/x/exp/shiny v0.0.0-20240314144324-c7f7c6466f7f // indirect - golang.org/x/mobile v0.0.0-20240213143359-d1f7d3436075 // indirect + golang.org/x/exp/shiny v0.0.0-20240318143956-a85f2c67cd81 // indirect + golang.org/x/mobile v0.0.0-20240318141834-19e4cdff4698 // indirect golang.org/x/net v0.22.0 // indirect golang.org/x/sync v0.6.0 // indirect golang.org/x/sys v0.18.0 // indirect diff --git a/go.sum b/go.sum index ebd8a0d..87baa12 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ code.rocket9labs.com/tslocum/bei v0.0.0-20240108012722-6db380cc190b h1:Y0a14Kf/hSYepSmp4ZfDeE4CZZGBGBS97CNjCbKJm0c= code.rocket9labs.com/tslocum/bei v0.0.0-20240108012722-6db380cc190b/go.mod h1:tS60/VNAJphKvDBkSLQhKALa15msIAuWWfEKNc4oFZc= -code.rocket9labs.com/tslocum/bgammon v0.0.0-20240315051044-3412f3125003 h1:xO0HT8ZAcPmt2ZYRS4NtWG/WncwfBwy7lMDfQ/C4t0w= -code.rocket9labs.com/tslocum/bgammon v0.0.0-20240315051044-3412f3125003/go.mod h1:cmhRMMrLrsMlG3rhcGbfsPdk0VKSEZMfkFtpRMxm/h8= +code.rocket9labs.com/tslocum/bgammon v0.0.0-20240318195851-b2dc9ed64695 h1:fscnV4JCSBpqZdC+fNxbhU6dH/r7Z9YR/ul5314CZLg= +code.rocket9labs.com/tslocum/bgammon v0.0.0-20240318195851-b2dc9ed64695/go.mod h1:NGFAKlapNeIriQfrrayRBAv2jOuxHhhJH3zokKBJ/Gg= code.rocket9labs.com/tslocum/bgammon-tabula-bot v0.0.0-20240220233735-ac7ec51d806c h1:q8nqCi++c3qvSxB0KkCOqlDpOn4G77PdX8U/me5gfA4= code.rocket9labs.com/tslocum/bgammon-tabula-bot v0.0.0-20240220233735-ac7ec51d806c/go.mod h1:WbOquzguDmLic8fYYRiL3n0QFG7+rCsC+PpiXJKfg40= code.rocket9labs.com/tslocum/etk v0.0.0-20240220192047-d17310185c80 h1:QNlTsKggfZMcybp2xNqO6TWg7rjk6t1/jAV/rmxiX9E= @@ -135,12 +135,12 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/exp/shiny v0.0.0-20240314144324-c7f7c6466f7f h1:QBBTwX973JHUNzDH9uI3LJJl3e+1iM5a2MG/i+ZZ/Gg= -golang.org/x/exp/shiny v0.0.0-20240314144324-c7f7c6466f7f/go.mod h1:3F+MieQB7dRYLTmnncoFbb1crS5lfQoTfDgQy6K4N0o= +golang.org/x/exp/shiny v0.0.0-20240318143956-a85f2c67cd81 h1:JfOcDr8A3W1l+tHaR4QMCL3w6UHsfRRr2845M1TQwX4= +golang.org/x/exp/shiny v0.0.0-20240318143956-a85f2c67cd81/go.mod h1:3F+MieQB7dRYLTmnncoFbb1crS5lfQoTfDgQy6K4N0o= golang.org/x/image v0.15.0 h1:kOELfmgrmJlw4Cdb7g/QGuB3CvDrXbqEIww/pNtNBm8= golang.org/x/image v0.15.0/go.mod h1:HUYqC05R2ZcZ3ejNQsIHQDQiwWM4JBqmm6MKANTp4LE= -golang.org/x/mobile v0.0.0-20240213143359-d1f7d3436075 h1:iZzqyDd8gFkJZpsJNzveyScRBcQlsveheh6Q77LzhPY= -golang.org/x/mobile v0.0.0-20240213143359-d1f7d3436075/go.mod h1:Y8Bnziw2dX69ZhYuqQB8Ihyjks1Q6fMmbg17j9+ISNA= +golang.org/x/mobile v0.0.0-20240318141834-19e4cdff4698 h1:/slKdBHO/PBcLIwn/elJ1AZYyEAvo9oeIQugV3VUo8Y= +golang.org/x/mobile v0.0.0-20240318141834-19e4cdff4698/go.mod h1:Y8Bnziw2dX69ZhYuqQB8Ihyjks1Q6fMmbg17j9+ISNA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=