Browse Source

l18n: add stub for cross platform

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
master
Jason A. Donenfeld 4 years ago
parent
commit
176e723408
5 changed files with 50 additions and 11 deletions
  1. +3
    -3
      Makefile
  2. +1
    -1
      README.md
  3. +6
    -5
      build.bat
  4. +40
    -0
      gotext.go
  5. +0
    -2
      main.go

+ 3
- 3
Makefile View File

@@ -46,8 +46,8 @@ fmt: export GOARCH := amd64
fmt:
go fmt ./...

generate: export CC := x86_64-w64-mingw32-gcc
generate: export GOARCH := amd64
generate: export GOOS :=
generate: export CGO_ENABLED := 0
generate:
go generate ./...

@@ -58,4 +58,4 @@ deploy: amd64/wireguard.exe
clean:
rm -rf *.syso ui/icon/*.ico x86/ amd64/

.PHONY: deploy clean fmt remaster all
.PHONY: deploy clean fmt remaster generate all

+ 1
- 1
README.md View File

@@ -30,7 +30,7 @@ To translate WireGuard UI to your language:

1. Upgrade `resources.rc` accordingly. Follow the pattern.

2. Add your language ID to the `//go:generate go run golang.org/x/text/cmd/gotext ... -lang=en,<langID>...` line in `main.go`.
2. Add your language ID to the `//go:generate ... -lang=en,<langID>...` line in `gotext.go`.

3. Configure and run `build` to prepare initial `locales\<langID>\messages.gotext.json` file:



+ 6
- 5
build.bat View File

@@ -2,7 +2,7 @@
rem SPDX-License-Identifier: MIT
rem Copyright (C) 2019 WireGuard LLC. All Rights Reserved.

setlocal
setlocal enabledelayedexpansion
set BUILDDIR=%~dp0
set PATH=%BUILDDIR%.deps\go\bin;%BUILDDIR%.deps;%PATH%
set PATHEXT=.exe
@@ -34,6 +34,11 @@ if exist .deps\prepared goto :render
set GOOS=windows
set GOPATH=%BUILDDIR%.deps\gopath
set GOROOT=%BUILDDIR%.deps\go
if "%GoGenerate%"=="yes" (
echo [+] Regenerating files
set PATH=!BUILDDIR!.deps\x86_64-w64-mingw32-native\bin;!PATH!
go generate ./... || exit /b 1
)
set CGO_ENABLED=1
set CGO_CFLAGS=-O3 -Wall -Wno-unused-function -Wno-switch -std=gnu11 -DWINVER=0x0601
set CGO_LDFLAGS=-Wl,--dynamicbase -Wl,--nxcompat -Wl,--export-all-symbols
@@ -70,10 +75,6 @@ if exist .deps\prepared goto :render
mkdir %1 >NUL 2>&1
echo [+] Assembling resources %1
windres -i resources.rc -o resources.syso -O coff || exit /b %errorlevel%
if "%GoGenerate%|%1"=="yes|x86" (
echo [+] Regenerating files
go generate ./... || exit /b 1
)
echo [+] Building program %1
go build -ldflags="-H windowsgui -s -w" -tags walk_use_cgo -trimpath -v -o "%~1\wireguard.exe" || exit /b 1
if not exist "%~1\wg.exe" (


+ 40
- 0
gotext.go View File

@@ -0,0 +1,40 @@
// +build generate
//go:generate go run gotext.go -srclang=en update -out=zgotext.go -lang=en,fr,ja,sl

/* SPDX-License-Identifier: MIT
*
* Copyright (C) 2020 WireGuard LLC. All Rights Reserved.
*/

package main

import (
"io/ioutil"
"os"
"os/exec"
)

func main() {
gotext, err := ioutil.TempFile("", "gotext*.exe")
if err != nil {
panic(err)
}
gotextFilename := gotext.Name()
gotext.Close()
defer os.Remove(gotextFilename)
cmd := exec.Command("go", "build", "-o", gotextFilename, "golang.org/x/text/cmd/gotext")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err = cmd.Run()
if err != nil {
panic(err)
}
cmd = exec.Command(gotextFilename, os.Args[1:]...)
cmd.Env = append(os.Environ(), "GOOS=windows", "GOARCH=amd64", "CGO_ENABLED=1", "CC=x86_64-w64-mingw32-gcc")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err = cmd.Run()
if err != nil {
panic(err)
}
}

+ 0
- 2
main.go View File

@@ -5,8 +5,6 @@

package main

//go:generate go run golang.org/x/text/cmd/gotext -srclang=en update -out=zgotext.go -lang=en,fr,ja,sl

import (
"fmt"
"os"


Loading…
Cancel
Save