(原) Fyne支持多国语言

原创文章,请后转载,并注明出处。

fyne对于多国语言支持也说得要清不楚的,还得自己试出来。

// 翻译,适用于多国语言的应用

package main

import (
	"fmt"
	"image/color"
	"os"

	"fyne.io/fyne/v2"
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/canvas"
	"fyne.io/fyne/v2/container"
	"fyne.io/fyne/v2/lang"
)

func main() {
	myApp := app.New()

	// 多国语言支持
	langFile := fmt.Sprintf("translation/%s.json", lang.SystemLocale().LanguageString())
	// 添加判断文件是否存在
	data, err := os.ReadFile(langFile)
	if err == nil {
		lang.AddTranslationsForLocale(data, fyne.CurrentDevice().Locale())
	}

	myWindow := myApp.NewWindow(lang.L("Demo"))
	green := color.NRGBA{R: 0, G: 180, B: 0, A: 255}

	text1 := canvas.NewText(lang.L("Hello"), green)
	text2 := canvas.NewText(lang.L("There"), green)
	text2.Move(fyne.NewPos(120, 20))
	content := container.NewWithoutLayout(text1, text2)

	myWindow.SetContent(content)
	myWindow.ShowAndRun()
}

将多国语言文件放到了translation目录,例如当前环境zh-CN。

相关文章