9 Commits

Author SHA1 Message Date
pokamest e20bacac0f Bump version to 1.0.1
Signed-off-by: pokamest <pokamest@gmail.com>
2025-05-26 17:11:53 +01:00
Nethius 0a0e995735 Merge pull request #51 from RomikB/lang_select
Select the display language from windows registry
2025-04-08 10:04:53 +07:00
RomikB 0ed31be796 simplify UserKeyString 2025-04-07 21:38:33 +02:00
RomikB 301b4cc067 update docs with supported list, fix language check 2025-04-07 10:33:11 +02:00
Nethius 1eec79f681 Merge pull request #54 from RomikB/awg-windows-update
update amneziawg-windows dependency to 0.1.4
2025-04-07 09:01:42 +07:00
RomikB 26ccea78a4 update amneziawg-windows dependency to 0.1.4 2025-04-06 18:20:19 +02:00
RomikB fb42168fbb select the language from registry 2025-03-13 19:44:10 +02:00
Roman Zakharchuk a9cee076bc Merge pull request #50 from RomikB/loc_gen
regenerate localization after adding amneziavpn banner
2025-03-11 19:16:18 +07:00
Nethius d8c67fab86 Merge pull request #49 from amnezia-vpn/sync-fixes
sync fixes
2025-03-11 12:10:36 +07:00
8 changed files with 4645 additions and 3303 deletions
+1
View File
@@ -18,6 +18,7 @@ In addition to this [`README.md`](README.md), the following documents are also a
- [`buildrun.md`](docs/buildrun.md) &ndash; Instructions on building, localizing, running, and developing for this repository.
- [`enterprise.md`](docs/enterprise.md) &ndash; A summary of various features and tips for making the application usable in enterprise settings.
- [`netquirk.md`](docs/netquirk.md) &ndash; A description of various networking quirks and "kill-switch" semantics.
- [`userregistry.md`](docs/userregistry.md) &ndash; A list of registry keys settable by the user for changing the behavior of the application.
## License
+10
View File
@@ -0,0 +1,10 @@
# Registry Keys for Users
#### `HKCU\Software\AmneziaWG\Language`
When this key is set, the UI will try to use the specified language as display language.
Supported languages: "ca", "cs", "de", "en", "es_ES", "et", "fa", "fi", "fr", "id", "it", "ja", "ko", "nl", "pa_IN", "pl", "pt_BR", "ro", "ru", "si_LK", "sk", "sl", "sv_SE", "tr", "uk", "vi", "zh_CN", "zh_TW".
```
> reg add HKCU\Software\AmneziaWG /v Language /t REG_SZ /d "en" /f
```
+1 -1
View File
@@ -4,7 +4,7 @@ go 1.22.3
require (
github.com/amnezia-vpn/amneziawg-go v0.2.12
github.com/amnezia-vpn/amneziawg-windows v0.1.4-0.20240526104134-db18f2297e5e
github.com/amnezia-vpn/amneziawg-windows v0.1.4
github.com/lxn/walk v0.0.0-20210112085537-c389da54e794
github.com/lxn/win v0.0.0-20210218163916-a377121e959e
golang.org/x/crypto v0.21.0
+2 -2
View File
@@ -1,7 +1,7 @@
github.com/amnezia-vpn/amneziawg-go v0.2.12 h1:CxIQETy5kZ0ip/dFBpmnDxAcS/KuIQaJkOxDv5OQhVI=
github.com/amnezia-vpn/amneziawg-go v0.2.12/go.mod h1:d7WpNfzCRLy7ufGElJBYpD58WRmNjyLyt3IDHPY8AmM=
github.com/amnezia-vpn/amneziawg-windows v0.1.4-0.20240526104134-db18f2297e5e h1:pLoZBHiMDKdGScjrcX6q/yIwm8JDzCVo805H33+8Crg=
github.com/amnezia-vpn/amneziawg-windows v0.1.4-0.20240526104134-db18f2297e5e/go.mod h1:3lkvRI7XTPifPvnAyNoI8eLjSSpKXyrnUu7KlnWlCnA=
github.com/amnezia-vpn/amneziawg-windows v0.1.4 h1:D2T689FS6pFge+EA49fLXToEgQGO0VrQfLE3Sjmx52w=
github.com/amnezia-vpn/amneziawg-windows v0.1.4/go.mod h1:yYNGWzB5ec+cpTIo4khP0EW/dm02B4XEPLW1j2gnGsA=
github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
github.com/tevino/abool/v2 v2.1.0 h1:7w+Vf9f/5gmKT4m4qkayb33/92M+Um45F2BkHOR+L/c=
+14
View File
@@ -8,11 +8,16 @@ package l18n
import (
"sync"
"github.com/amnezia-vpn/amneziawg-windows-client/services"
"golang.org/x/sys/windows"
"golang.org/x/text/language"
"golang.org/x/text/message"
)
const (
LanguageUserKey = "Language"
)
var (
printer *message.Printer
printerLock sync.Mutex
@@ -35,6 +40,15 @@ func prn() *message.Printer {
// lang returns the user preferred UI language we have most confident translation in the default catalog available.
func lang() (tag language.Tag) {
keyString := services.UserKeyString(LanguageUserKey)
parseTag, err := language.Parse(keyString)
if err == nil {
matchTag := message.MatchLanguage(keyString)
if parseTag == matchTag {
tag = parseTag
return
}
}
tag = language.English
confidence := language.No
languages, err := windows.GetUserPreferredUILanguages(windows.MUI_LANGUAGE_NAME)
+65
View File
@@ -0,0 +1,65 @@
package services
import (
"golang.org/x/sys/windows/registry"
)
const userRegKey = `Software\AmneziaWG`
var userKey registry.Key
func openUserKey() (registry.Key, error) {
if userKey != 0 {
return userKey, nil
}
var err error
userKey, err = registry.OpenKey(registry.CURRENT_USER, userRegKey, registry.QUERY_VALUE)
if err != nil {
return 0, err
}
return userKey, nil
}
func createUserKey() (registry.Key, error) {
closeUserKey()
var err error
userKey, _, err = registry.CreateKey(registry.CURRENT_USER, userRegKey, registry.SET_VALUE)
if err != nil {
return 0, err
}
return userKey, nil
}
func closeUserKey() {
if userKey == 0 {
return
}
userKey.Close()
userKey = 0
}
func UserKeyString(name string) string {
key, err := openUserKey()
if err != nil {
return ""
}
val, _, err := key.GetStringValue(name)
if err != nil {
return ""
}
return val
}
func SetUserKeyString(name string, value string) error {
key, err := createUserKey()
if err != nil {
return err
}
defer closeUserKey()
err = key.SetStringValue(name, value)
if err != nil {
return err
}
return nil
}
+1 -1
View File
@@ -6,5 +6,5 @@
package version
const (
Number = "1.0.0"
Number = "1.0.1"
)
+4551 -3299
View File
File diff suppressed because it is too large Load Diff